X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Fircons.h;h=e28eba6decefcb123055f323ed456353105e6082;hb=a420be62b8532af0986530977a1258e2b39143e6;hp=c6a4484d8702a42ba5ab79548a23f5b3497ecb62;hpb=1ec30d95387eb392ba5a1adc7958ebd91383d59c;p=libfirm diff --git a/include/libfirm/ircons.h b/include/libfirm/ircons.h index c6a4484d8..e28eba6de 100644 --- a/include/libfirm/ircons.h +++ b/include/libfirm/ircons.h @@ -276,10 +276,10 @@ * ir_node *new_Sub (ir_node *op1, ir_node *op2, ir_mode *mode); * ir_node *new_Minus (ir_node *op, ir_mode *mode); * ir_node *new_Mul (ir_node *op1, ir_node *op2, ir_mode *mode); - * ir_node *new_Quot (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); - * ir_node *new_DivMod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); - * ir_node *new_Div (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); - * ir_node *new_Mod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); + * ir_node *new_Quot (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); + * ir_node *new_DivMod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); + * ir_node *new_Div (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); + * ir_node *new_Mod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state; * ir_node *new_Abs (ir_node *op, ir_mode *mode); * ir_node *new_And (ir_node *op1, ir_node *op2, ir_mode *mode); * ir_node *new_Or (ir_node *op1, ir_node *op2, ir_mode *mode); @@ -678,8 +678,8 @@ * * Trivial. * - * ir_node *new_Quot (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode) - * ----------------------------------------------------------------------------- + * ir_node *new_Quot (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state) + * ------------------------------------------------------------------------------------------------- * * Quot performs exact division of floating point numbers. It's mode * is Tuple, the mode of the result must match the Proj mode @@ -691,8 +691,8 @@ * A tuple containing a memory and a execution for modeling exceptions * and the result of the arithmetic operation. * - * ir_node *new_DivMod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode) - * ------------------------------------------------------------------------------- + * ir_node *new_DivMod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state) + * --------------------------------------------------------------------------------------------------- * * Performs Div and Mod on integer values. * @@ -700,13 +700,13 @@ * A tuple containing a memory and a execution for modeling exceptions * and the two result of the arithmetic operations. * - * ir_node *new_Div (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode) - * ---------------------------------------------------------------------------- + * ir_node *new_Div (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state) + * ------------------------------------------------------------------------------------------------ * * Trivial. * - * ir_node *new_Mod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode) - * ---------------------------------------------------------------------------- + * ir_node *new_Mod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state) + * ------------------------------------------------------------------------------------------------ * * Trivial. * @@ -756,7 +756,7 @@ * ir_node *new_Rot (ir_node *op, ir_node *k, ir_mode *mode) * --------------------------------------------------------- * - * Rotates the operand to the (right??) by k bits. + * Rotates the operand to the (right?) by k bits. * * ir_node *new_Carry (ir_node *op1, ir_node *op2, ir_mode *mode) * ------------------------------------------------------------ @@ -1120,7 +1120,6 @@ #include "firm_common.h" #include "irnode.h" #include "irgraph.h" -#include "dbginfo.h" /*-------------------------------------------------------------------------*/ /* The raw interface */ @@ -1452,9 +1451,10 @@ ir_node *new_rd_Mul (dbg_info *db, ir_graph *irg, ir_node *block, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ ir_node *new_rd_Quot (dbg_info *db, ir_graph *irg, ir_node *block, - ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); + ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a DivMod node. * @@ -1465,9 +1465,10 @@ ir_node *new_rd_Quot (dbg_info *db, ir_graph *irg, ir_node *block, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the results. + * @param state The pinned state. */ ir_node *new_rd_DivMod (dbg_info *db, ir_graph *irg, ir_node *block, - ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); + ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Div node. * @@ -1478,9 +1479,10 @@ ir_node *new_rd_DivMod (dbg_info *db, ir_graph *irg, ir_node *block, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ ir_node *new_rd_Div (dbg_info *db, ir_graph *irg, ir_node *block, - ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); + ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Mod node. * @@ -1491,9 +1493,10 @@ ir_node *new_rd_Div (dbg_info *db, ir_graph *irg, ir_node *block, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ ir_node *new_rd_Mod (dbg_info *db, ir_graph *irg, ir_node *block, - ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); + ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Abs node. * @@ -1815,7 +1818,7 @@ ir_node *new_rd_Bad (ir_graph *irg); * Specifies constraints for a value. To support dataflow analyses. * * Example: If the value never exceeds '100' this is expressed by placing a - * Confirm node val = new_d_Confirm(db, val, 100, '<') on the dataflow edge. + * Confirm node val = new_d_Confirm(db, val, 100, '<=') on the dataflow edge. * * @param *irg The ir graph the node belong to. * @param *block The ir block the node belong to. @@ -2271,9 +2274,10 @@ ir_node *new_r_Mul (ir_graph *irg, ir_node *block, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ ir_node *new_r_Quot (ir_graph *irg, ir_node *block, - ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); + ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a DivMod node. * @@ -2283,9 +2287,10 @@ ir_node *new_r_Quot (ir_graph *irg, ir_node *block, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the results. + * @param state The pinned state. */ ir_node *new_r_DivMod (ir_graph *irg, ir_node *block, - ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); + ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Div node. * @@ -2295,9 +2300,10 @@ ir_node *new_r_DivMod (ir_graph *irg, ir_node *block, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ ir_node *new_r_Div (ir_graph *irg, ir_node *block, - ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); + ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Mod node. * @@ -2307,9 +2313,10 @@ ir_node *new_r_Div (ir_graph *irg, ir_node *block, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ ir_node *new_r_Mod (ir_graph *irg, ir_node *block, - ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); + ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Abs node. * @@ -2608,7 +2615,7 @@ ir_node *new_r_Bad (ir_graph *irg); * Specifies constraints for a value. To support dataflow analyses. * * Example: If the value never exceeds '100' this is expressed by placing a - * Confirm node val = new_d_Confirm(db, val, 100, '<') on the dataflow edge. + * Confirm node val = new_d_Confirm(db, val, 100, '<=') on the dataflow edge. * * @param *irg The ir graph the node belong to. * @param *block The ir block the node belong to. @@ -2616,7 +2623,7 @@ ir_node *new_r_Bad (ir_graph *irg); * @param *bound The value to compare against. Must be a firm node, typically a constant. * @param cmp The compare operation. */ -ir_node *new_r_Confirm (ir_graph *irg, ir_node *block, +ir_node *new_r_Confirm(ir_graph *irg, ir_node *block, ir_node *val, ir_node *bound, pn_Cmp cmp); /** Constructor for a Unknown node. @@ -3071,8 +3078,9 @@ ir_node *new_d_Mul (dbg_info *db, ir_node *op1, ir_node *op2, ir_mode *mode); * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ -ir_node *new_d_Quot (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); +ir_node *new_d_Quot (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a DivMod node. * @@ -3083,8 +3091,9 @@ ir_node *new_d_Quot (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the results. + * @param state The pinned state. */ -ir_node *new_d_DivMod (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); +ir_node *new_d_DivMod (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Div node. * @@ -3095,8 +3104,9 @@ ir_node *new_d_DivMod (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ -ir_node *new_d_Div (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); +ir_node *new_d_Div (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Mod node. * @@ -3107,8 +3117,9 @@ ir_node *new_d_Div (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ -ir_node *new_d_Mod (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); +ir_node *new_d_Mod (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Abs node. * @@ -3407,7 +3418,7 @@ ir_node *new_d_Bad (void); * Specifies constraints for a value. To support dataflow analyses. * * Example: If the value never exceeds '100' this is expressed by placing a - * Confirm node val = new_d_Confirm(db, val, 100, '<') on the dataflow edge. + * Confirm node val = new_d_Confirm(db, val, 100, '<=') on the dataflow edge. * * @param *db A pointer for debug information. * @param *val The value we express a constraint for @@ -3880,8 +3891,9 @@ ir_node *new_Mul (ir_node *op1, ir_node *op2, ir_mode *mode); * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ -ir_node *new_Quot (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); +ir_node *new_Quot (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a DivMod node. * @@ -3891,8 +3903,9 @@ ir_node *new_Quot (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the results. + * @param state The pinned state. */ -ir_node *new_DivMod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); +ir_node *new_DivMod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Div node. * @@ -3902,8 +3915,9 @@ ir_node *new_DivMod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ -ir_node *new_Div (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); +ir_node *new_Div (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Mod node. * @@ -3913,8 +3927,9 @@ ir_node *new_Div (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); * @param *op1 The first operand. * @param *op2 The second operand. * @param *mode The mode of the result. + * @param state The pinned state. */ -ir_node *new_Mod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode); +ir_node *new_Mod (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state); /** Constructor for a Abs node. * @@ -4198,7 +4213,7 @@ ir_node *new_Bad (void); * Adds the node to the block in current_ir_block. * * Example: If the value never exceeds '100' this is expressed by placing a - * Confirm node val = new_d_Confirm(db, val, 100, '<') on the dataflow edge. + * Confirm node val = new_d_Confirm(db, val, 100, '<=') on the dataflow edge. * * @param *val The value we express a constraint for * @param *bound The value to compare against. Must be a firm node, typically a constant.