X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Fircons.h;h=fad4db27376a6601a493719e324df0586553d952;hb=b4e4aa344ee87e7e12a89c314286ef07eca1af00;hp=e28eba6decefcb123055f323ed456353105e6082;hpb=2621fafe39f7ba5eb3a933a7e708e148f9aea546;p=libfirm diff --git a/include/libfirm/ircons.h b/include/libfirm/ircons.h index e28eba6de..fad4db273 100644 --- a/include/libfirm/ircons.h +++ b/include/libfirm/ircons.h @@ -276,6 +276,7 @@ * 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_Mulh (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); @@ -678,6 +679,11 @@ * * Trivial. * + * ir_node *new_Mulh (ir_node *op1, ir_node *op2, ir_mode *mode) + * ------------------------------------------------------------ + * + * Returns the high order bits of a n*n=2n multiplication. + * * ir_node *new_Quot (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state) * ------------------------------------------------------------------------------------------------- * @@ -1442,6 +1448,18 @@ ir_node *new_rd_Minus (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *new_rd_Mul (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *op1, ir_node *op2, ir_mode *mode); +/** Constructor for a Mulh node. + * + * @param *db A pointer for debug information. + * @param *irg The ir graph the node belongs to. + * @param *block The ir block the node belongs to. + * @param *op1 The first operand. + * @param *op2 The second operand. + * @param *mode The mode of the operands and the result. + */ +ir_node *new_rd_Mulh (dbg_info *db, ir_graph *irg, ir_node *block, + ir_node *op1, ir_node *op2, ir_mode *mode); + /** Constructor for a Quot node. * * @param *db A pointer for debug information. @@ -2255,6 +2273,7 @@ ir_node *new_r_Sub (ir_graph *irg, ir_node *block, */ ir_node *new_r_Minus (ir_graph *irg, ir_node *block, ir_node *op, ir_mode *mode); + /** Constructor for a Mul node. * * @param *irg The ir graph the node belongs to. @@ -2266,6 +2285,17 @@ ir_node *new_r_Minus (ir_graph *irg, ir_node *block, ir_node *new_r_Mul (ir_graph *irg, ir_node *block, ir_node *op1, ir_node *op2, ir_mode *mode); +/** Constructor for a Mulh node. + * + * @param *irg The ir graph the node belongs to. + * @param *block The ir block the node belongs to. + * @param *op1 The first operand. + * @param *op2 The second operand. + * @param *mode The mode of the operands and the result. + */ +ir_node *new_r_Mulh (ir_graph *irg, ir_node *block, + ir_node *op1, ir_node *op2, ir_mode *mode); + /** Constructor for a Quot node. * * @param *irg The ir graph the node belongs to. @@ -3069,6 +3099,17 @@ ir_node *new_d_Minus (dbg_info *db, ir_node *op, ir_mode *mode); */ ir_node *new_d_Mul (dbg_info *db, ir_node *op1, ir_node *op2, ir_mode *mode); +/** Constructor for a Mulh node. + * + * Adds the node to the block in current_ir_block. + * + * @param *db A pointer for debug information. + * @param *op1 The first operand. + * @param *op2 The second operand. + * @param *mode The mode of the operands and the result. + */ +ir_node *new_d_Mulh (dbg_info *db, ir_node *op1, ir_node *op2, ir_mode *mode); + /** Constructor for a Quot node. * * Adds the node to the block in current_ir_block. @@ -3883,6 +3924,15 @@ ir_node *new_Minus (ir_node *op, ir_mode *mode); */ ir_node *new_Mul (ir_node *op1, ir_node *op2, ir_mode *mode); +/** + * Constructor for a Mulh node. Adds the node to the block in current_ir_block. + * + * @param *op1 The first operand. + * @param *op2 The second operand. + * @param *mode The mode of the operands and the result. + */ +ir_node *new_Mulh (ir_node *op1, ir_node *op2, ir_mode *mode); + /** Constructor for a Quot node. * * Adds the node to the block in current_ir_block.