libFirm
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Div node

returns the quotient of its 2 operands More...

Enumerations

enum  n_Div { n_Div_mem, n_Div_left, n_Div_right, n_Div_max = n_Div_right }
 Input numbers for Div node. More...
 
enum  pn_Div {
  pn_Div_M, pn_Div_res, pn_Div_X_regular, pn_Div_X_except,
  pn_Div_max = pn_Div_X_except
}
 Projection numbers for result of Div node (use for Proj nodes) More...
 

Functions

ir_nodenew_rd_DivRL (dbg_info *db, ir_node *block, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, int pinned)
 Constructor for a remainderless Div node. More...
 
ir_nodenew_r_DivRL (ir_node *block, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, int pinned)
 Constructor for a remainderless Div node. More...
 
ir_nodenew_d_DivRL (dbg_info *db, ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, int pinned)
 Constructor for a remainderless Div node. More...
 
ir_nodenew_DivRL (ir_node *memop, ir_node *op1, ir_node *op2, ir_mode *mode, int pinned)
 Constructor for a remainderless Div node. More...
 
ir_nodenew_rd_Div (dbg_info *dbgi, ir_node *block, ir_node *irn_mem, ir_node *irn_left, ir_node *irn_right, ir_mode *resmode, int pinned)
 Construct a Div node. More...
 
ir_nodenew_r_Div (ir_node *block, ir_node *irn_mem, ir_node *irn_left, ir_node *irn_right, ir_mode *resmode, int pinned)
 Construct a Div node. More...
 
ir_nodenew_d_Div (dbg_info *dbgi, ir_node *irn_mem, ir_node *irn_left, ir_node *irn_right, ir_mode *resmode, int pinned)
 Construct a Div node. More...
 
ir_nodenew_Div (ir_node *irn_mem, ir_node *irn_left, ir_node *irn_right, ir_mode *resmode, int pinned)
 Construct a Div node. More...
 
int is_Div (const ir_node *node)
 Test if node is a Div. More...
 
ir_nodeget_Div_mem (const ir_node *node)
 Returns mem input of a Div node. More...
 
void set_Div_mem (ir_node *node, ir_node *mem)
 Sets mem input of a Div node. More...
 
ir_nodeget_Div_left (const ir_node *node)
 Returns left input of a Div node. More...
 
void set_Div_left (ir_node *node, ir_node *left)
 Sets left input of a Div node. More...
 
ir_nodeget_Div_right (const ir_node *node)
 Returns right input of a Div node. More...
 
void set_Div_right (ir_node *node, ir_node *right)
 Sets right input of a Div node. More...
 
ir_modeget_Div_resmode (const ir_node *node)
 Returns resmode attribute of a Div node. More...
 
void set_Div_resmode (ir_node *node, ir_mode *resmode)
 Sets resmode attribute of a Div node. More...
 
int get_Div_no_remainder (const ir_node *node)
 Returns no_remainder attribute of a Div node. More...
 
void set_Div_no_remainder (ir_node *node, int no_remainder)
 Sets no_remainder attribute of a Div node. More...
 
ir_opget_op_Div (void)
 Returns opcode for Div nodes. More...
 

Variables

ir_opop_Div
 Div opcode. More...
 

Detailed Description

returns the quotient of its 2 operands

Enumeration Type Documentation

enum n_Div

Input numbers for Div node.

Enumerator
n_Div_mem 

memory dependency

n_Div_left 

first operand

n_Div_right 

second operand

n_Div_max 

Definition at line 1554 of file nodes.h.

enum pn_Div

Projection numbers for result of Div node (use for Proj nodes)

Enumerator
pn_Div_M 

memory result

pn_Div_res 

result of computation

pn_Div_X_regular 

control flow when no exception occurs

pn_Div_X_except 

control flow when exception occured

pn_Div_max 

Definition at line 1564 of file nodes.h.

Function Documentation

ir_node* get_Div_left ( const ir_node node)

Returns left input of a Div node.

Definition at line 1064 of file gen_irnode.c.

ir_node* get_Div_mem ( const ir_node node)

Returns mem input of a Div node.

Definition at line 1054 of file gen_irnode.c.

int get_Div_no_remainder ( const ir_node node)

Returns no_remainder attribute of a Div node.

Definition at line 3179 of file gen_irnode.c.

ir_mode* get_Div_resmode ( const ir_node node)

Returns resmode attribute of a Div node.

Definition at line 3169 of file gen_irnode.c.

ir_node* get_Div_right ( const ir_node node)

Returns right input of a Div node.

Definition at line 1074 of file gen_irnode.c.

ir_op* get_op_Div ( void  )

Returns opcode for Div nodes.

Definition at line 1084 of file gen_irnode.c.

References op_Div.

int is_Div ( const ir_node node)

Test if node is a Div.

Returns
1 if the node is a Div node, 0 otherwise

Definition at line 3164 of file gen_irnode.c.

ir_node* new_d_Div ( dbg_info dbgi,
ir_node irn_mem,
ir_node irn_left,
ir_node irn_right,
ir_mode resmode,
int  pinned 
)

Construct a Div node.

Parameters
dbgiA pointer to debug information.
irn_memmem
irn_leftleft
irn_rightright
resmodemode of the result value
pinnedpinned state

Definition at line 1042 of file gen_irnode.c.

References current_ir_graph, get_cur_block(), IR_GRAPH_CONSTRAINT_CONSTRUCTION, irg_is_constrained(), and new_rd_Div().

Referenced by new_Div().

ir_node* new_d_DivRL ( dbg_info db,
ir_node memop,
ir_node op1,
ir_node op2,
ir_mode mode,
int  pinned 
)

Constructor for a remainderless Div node.

Adds the node to the block in current_ir_block.

Parameters
*dbA pointer for debug information.
*memopThe store needed to model exceptions
*op1The first operand.
*op2The second operand.
*modeThe mode of the result.
pinnedWhether the node is pinned in its block.
ir_node* new_Div ( ir_node irn_mem,
ir_node irn_left,
ir_node irn_right,
ir_mode resmode,
int  pinned 
)

Construct a Div node.

Parameters
irn_memmem
irn_leftleft
irn_rightright
resmodemode of the result value
pinnedpinned state

Definition at line 1049 of file gen_irnode.c.

References new_d_Div().

ir_node* new_DivRL ( ir_node memop,
ir_node op1,
ir_node op2,
ir_mode mode,
int  pinned 
)

Constructor for a remainderless Div node.

Adds the node to the block in current_ir_block.

Parameters
*memopThe store needed to model exceptions
*op1The first operand.
*op2The second operand.
*modeThe mode of the result.
pinnedWhether the node is pinned in its block.
ir_node* new_r_Div ( ir_node block,
ir_node irn_mem,
ir_node irn_left,
ir_node irn_right,
ir_mode resmode,
int  pinned 
)

Construct a Div node.

Parameters
blockThe IR block the node belongs to.
irn_memmem
irn_leftleft
irn_rightright
resmodemode of the result value
pinnedpinned state

Definition at line 1037 of file gen_irnode.c.

References new_rd_Div().

ir_node* new_r_DivRL ( ir_node block,
ir_node memop,
ir_node op1,
ir_node op2,
ir_mode mode,
int  pinned 
)

Constructor for a remainderless Div node.

Parameters
*blockThe IR block the node belongs to.
*memopThe store needed to model exceptions
*op1The first operand.
*op2The second operand.
*modeThe mode of the result.
pinnedWhether the node is pinned in its block.
ir_node* new_rd_Div ( dbg_info dbgi,
ir_node block,
ir_node irn_mem,
ir_node irn_left,
ir_node irn_right,
ir_mode resmode,
int  pinned 
)

Construct a Div node.

Parameters
dbgiA pointer to debug information.
blockThe IR block the node belongs to.
irn_memmem
irn_leftleft
irn_rightright
resmodemode of the result value
pinnedpinned state

Definition at line 1016 of file gen_irnode.c.

References get_irn_irg(), mode_T, new_ir_node(), op_Div, optimize_node(), and verify_new_node().

Referenced by new_d_Div(), and new_r_Div().

ir_node* new_rd_DivRL ( dbg_info db,
ir_node block,
ir_node memop,
ir_node op1,
ir_node op2,
ir_mode mode,
int  pinned 
)

Constructor for a remainderless Div node.

Parameters
*dbA pointer for debug information.
*blockThe IR block the node belongs to.
*memopThe store needed to model exceptions
*op1The first operand.
*op2The second operand.
*modeThe mode of the result.
pinnedWhether the node is pinned in its block.
void set_Div_left ( ir_node node,
ir_node left 
)

Sets left input of a Div node.

Definition at line 1069 of file gen_irnode.c.

void set_Div_mem ( ir_node node,
ir_node mem 
)

Sets mem input of a Div node.

Definition at line 1059 of file gen_irnode.c.

void set_Div_no_remainder ( ir_node node,
int  no_remainder 
)

Sets no_remainder attribute of a Div node.

Definition at line 3184 of file gen_irnode.c.

void set_Div_resmode ( ir_node node,
ir_mode resmode 
)

Sets resmode attribute of a Div node.

Definition at line 3174 of file gen_irnode.c.

void set_Div_right ( ir_node node,
ir_node right 
)

Sets right input of a Div node.

Definition at line 1079 of file gen_irnode.c.

Variable Documentation

ir_op* op_Div

Div opcode.

Definition at line 1649 of file nodes.h.

Referenced by get_op_Div(), and new_rd_Div().