/*
- * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
* ir_node *new_Shl (ir_node *op, ir_node *k, ir_mode *mode);
* ir_node *new_Shr (ir_node *op, ir_node *k, ir_mode *mode);
* ir_node *new_Shrs (ir_node *op, ir_node *k, ir_mode *mode);
- * ir_node *new_Rot (ir_node *op, ir_node *k, ir_mode *mode);
+ * ir_node *new_Rotl (ir_node *op, ir_node *k, ir_mode *mode);
* ir_node *new_Cmp (ir_node *op1, ir_node *op2);
* ir_node *new_Conv (ir_node *op, ir_mode *mode);
* ir_node *new_Cast (ir_node *op, ir_type *to_tp);
*
* Arithmetic shift right, i.e., sign extended.
*
- * ir_node *new_Rot (ir_node *op, ir_node *k, ir_mode *mode)
+ * ir_node *new_Rotl (ir_node *op, ir_node *k, ir_mode *mode)
* ---------------------------------------------------------
*
- * Rotates the operand to the (right?) by k bits.
+ * Rotates the operand to the left by k bits.
*
* ir_node *new_Carry (ir_node *op1, ir_node *op2, ir_mode *mode)
* ------------------------------------------------------------
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, op_pin_state state);
+/** Constructor for a remainderless Div 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 *memop The store needed to model exceptions
+ * @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_DivRL (dbg_info *db, ir_graph *irg, ir_node *block,
+ ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state);
+
/** Constructor for a Mod node.
*
* @param *db A pointer for debug information.
ir_node *new_rd_Shrs (dbg_info *db, ir_graph *irg, ir_node *block,
ir_node *op, ir_node *k, ir_mode *mode);
-/** Constructor for a Rot node.
+/** Constructor for a Rotl node.
*
* @param *db A pointer for debug information.
* @param *irg The IR graph the node belongs to.
* @param *k The number of bits to rotate the operand.
* @param *mode The mode of the operand.
*/
-ir_node *new_rd_Rot (dbg_info *db, ir_graph *irg, ir_node *block,
+ir_node *new_rd_Rotl (dbg_info *db, ir_graph *irg, ir_node *block,
ir_node *op, ir_node *k, ir_mode *mode);
* @param where Where to allocate the variable, either heap_alloc or stack_alloc.
*/
ir_node *new_rd_Alloc (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store,
- ir_node *size, ir_type *alloc_type, where_alloc where);
+ ir_node *size, ir_type *alloc_type, ir_where_alloc where);
/** Constructor for a Free node.
*
* @param where Where the variable was allocated, either heap_alloc or stack_alloc.
*/
ir_node *new_rd_Free (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store,
- ir_node *ptr, ir_node *size, ir_type *free_type, where_alloc where);
+ ir_node *ptr, ir_node *size, ir_type *free_type, ir_where_alloc where);
/** Constructor for a Sync node.
*
ir_node *new_r_Div (ir_graph *irg, ir_node *block,
ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state);
+/** Constructor for a remainderless Div node.
+ *
+ * @param *irg The IR graph the node belongs to.
+ * @param *block The IR block the node belongs to.
+ * @param *memop The store needed to model exceptions
+ * @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_DivRL (ir_graph *irg, ir_node *block,
+ ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state);
+
/** Constructor for a Mod node.
*
* @param *irg The IR graph the node belongs to.
ir_node *new_r_Shrs (ir_graph *irg, ir_node *block,
ir_node *op, ir_node *k, ir_mode *mode);
-/** Constructor for a Rot node.
+/** Constructor for a Rotl node.
*
* @param *irg The IR graph the node belongs to.
* @param *block The IR block the node belongs to.
* @param *k The number of bits to rotate the operand.
* @param *mode The mode of the operand.
*/
-ir_node *new_r_Rot (ir_graph *irg, ir_node *block,
+ir_node *new_r_Rotl (ir_graph *irg, ir_node *block,
ir_node *op, ir_node *k, ir_mode *mode);
/** Constructor for a Conv node.
* @param where Where to allocate the variable, either heap_alloc or stack_alloc.
*/
ir_node *new_r_Alloc (ir_graph *irg, ir_node *block, ir_node *store,
- ir_node *size, ir_type *alloc_type, where_alloc where);
+ ir_node *size, ir_type *alloc_type, ir_where_alloc where);
/** Constructor for a Free node.
*
* @param where Where the variable was allocated, either heap_alloc or stack_alloc.
*/
ir_node *new_r_Free (ir_graph *irg, ir_node *block, ir_node *store,
- ir_node *ptr, ir_node *size, ir_type *free_type, where_alloc where);
+ ir_node *ptr, ir_node *size, ir_type *free_type, ir_where_alloc where);
/** Constructor for a Sync node.
*
*/
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 remainderless Div node.
+ *
+ * Adds the node to the block in current_ir_block.
+ *
+ * @param *db A pointer for debug information.
+ * @param *memop The store needed to model exceptions
+ * @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_DivRL (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state);
+
/** Constructor for a Mod node.
*
* Adds the node to the block in current_ir_block.
*/
ir_node *new_d_Shrs (dbg_info *db, ir_node *op, ir_node *k, ir_mode *mode);
-/** Constructor for a Rot node.
+/** Constructor for a Rotl node.
*
* Adds the node to the block in current_ir_block.
*
* @param *k The number of bits to rotate the operand.
* @param *mode The mode of the operand.
*/
-ir_node *new_d_Rot (dbg_info *db, ir_node *op, ir_node *k, ir_mode *mode);
+ir_node *new_d_Rotl (dbg_info *db, ir_node *op, ir_node *k, ir_mode *mode);
/** Constructor for a Cmp node.
*
* @param where Where to allocate the variable, either heap_alloc or stack_alloc.
*/
ir_node *new_d_Alloc (dbg_info *db, ir_node *store, ir_node *size, ir_type *alloc_type,
- where_alloc where);
+ ir_where_alloc where);
/** Constructor for a Free node.
*
* @param where Where the variable was allocated, either heap_alloc or stack_alloc.
*/
ir_node *new_d_Free (dbg_info *db, ir_node *store, ir_node *ptr, ir_node *size,
- ir_type *free_type, where_alloc where);
+ ir_type *free_type, ir_where_alloc where);
/** Constructor for a Sync node.
*
*/
ir_node *new_Div (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state);
+/** Constructor for a remainderless Div node.
+ *
+ * Adds the node to the block in current_ir_block.
+ *
+ * @param *memop The store needed to model exceptions
+ * @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_DivRL (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, op_pin_state state);
+
/** Constructor for a Mod node.
*
* Adds the node to the block in current_ir_block.
*/
ir_node *new_Shrs (ir_node *op, ir_node *k, ir_mode *mode);
-/** Constructor for a Rot node.
+/** Constructor for a Rotl node.
*
* Adds the node to the block in current_ir_block.
*
* @param *k The number of bits to rotate the operand.
* @param *mode The mode of the operand.
*/
-ir_node *new_Rot (ir_node *op, ir_node *k, ir_mode *mode);
+ir_node *new_Rotl (ir_node *op, ir_node *k, ir_mode *mode);
/** Constructor for a Cmp node.
*
* @param where Where to allocate the variable, either heap_alloc or stack_alloc.
*/
ir_node *new_Alloc (ir_node *store, ir_node *size, ir_type *alloc_type,
- where_alloc where);
+ ir_where_alloc where);
/** Constructor for a Free node.
*
* @param where Where the variable was allocated, either heap_alloc or stack_alloc.
*/
ir_node *new_Free (ir_node *store, ir_node *ptr, ir_node *size,
- ir_type *free_type, where_alloc where);
+ ir_type *free_type, ir_where_alloc where);
/** Constructor for a Sync node.
*