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, 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, 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, int pinned)
 Constructor for a remainderless Div node. More...
 
ir_nodenew_DivRL (ir_node *memop, ir_node *op1, ir_node *op2, 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, 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, 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, int pinned)
 Construct a Div node. More...
 
ir_nodenew_Div (ir_node *irn_mem, ir_node *irn_left, ir_node *irn_right, 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 1551 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 occurred

pn_Div_max 

Definition at line 1561 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 1065 of file gen_irnode.c.

ir_node* get_Div_mem ( const ir_node node)

Returns mem input of a Div node.

Definition at line 1055 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 3170 of file gen_irnode.c.

ir_mode* get_Div_resmode ( const ir_node node)

Returns resmode attribute of a Div node.

Definition at line 3160 of file gen_irnode.c.

ir_node* get_Div_right ( const ir_node node)

Returns right input of a Div node.

Definition at line 1075 of file gen_irnode.c.

ir_op* get_op_Div ( void  )

Returns opcode for Div nodes.

Definition at line 1085 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 3155 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,
int  pinned 
)

Construct a Div node.

Parameters
dbgiA pointer to debug information.
irn_memmem
irn_leftleft
irn_rightright
pinnedpinned state

Definition at line 1043 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,
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.
pinnedWhether the node is pinned in its block.
ir_node* new_Div ( ir_node irn_mem,
ir_node irn_left,
ir_node irn_right,
int  pinned 
)

Construct a Div node.

Parameters
irn_memmem
irn_leftleft
irn_rightright
pinnedpinned state

Definition at line 1050 of file gen_irnode.c.

References new_d_Div().

ir_node* new_DivRL ( ir_node memop,
ir_node op1,
ir_node op2,
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.
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,
int  pinned 
)

Construct a Div node.

Parameters
blockThe IR block the node belongs to.
irn_memmem
irn_leftleft
irn_rightright
pinnedpinned state

Definition at line 1038 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,
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.
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,
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
pinnedpinned state

Definition at line 1017 of file gen_irnode.c.

References get_irn_irg(), get_irn_mode(), 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,
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.
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 1070 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 1060 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 3175 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 3165 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 1080 of file gen_irnode.c.

Variable Documentation

ir_op* op_Div

Div opcode.

Definition at line 1642 of file nodes.h.

Referenced by get_op_Div(), and new_rd_Div().