X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnode.h;h=983f71f49fba687db105bbfa346bf34845998c56;hb=f9d25133f86594ca2b1f33fb0b41a591ecc9b914;hp=24573e1ad954e930dd2312e9493031f87bb1b8ba;hpb=7af00ed62779dab5ca6f68ccb99e93cac0efe0ab;p=libfirm diff --git a/ir/ir/irnode.h b/ir/ir/irnode.h index 24573e1ad..983f71f49 100644 --- a/ir/ir/irnode.h +++ b/ir/ir/irnode.h @@ -652,7 +652,8 @@ void set_Div_mem (ir_node *node, ir_node *mem); typedef enum { pn_Div_M, /**< Memory result. */ pn_Div_X_except, /**< Execution result if exception occurred. */ - pn_Div_res /**< Result of computation. */ + pn_Div_res, /**< Result of computation. */ + pn_Div_max /**< number of projections from a Div */ } pn_Div; /* Projection numbers for Div. */ ir_node *get_Mod_left (ir_node *node); @@ -936,6 +937,26 @@ void set_Mux_false (ir_node *node, ir_node *ir_false); ir_node *get_Mux_true (ir_node *node); void set_Mux_true (ir_node *node, ir_node *ir_true); +/** + * Projection numbers for result of CopyB node: use for Proj nodes! + */ +typedef enum { + pn_CopyB_M_regular = pn_Call_M_regular, /**< The memory result. */ + pn_CopyB_X_except = pn_Call_X_except, /**< The control flow result branching to the exception handler */ + pn_CopyB_M_except = pn_Call_M_except, /**< The memory result in case the runtime function terminated with + an exception */ + pn_CopyB_max = pn_Call_max /**< number of projections from a CopyB */ +} pn_CopyB; /* Projection numbers for CopyB. */ +#define pn_CopyB_M pn_CopyB_M_regular + +ir_node *get_CopyB_mem (ir_node *node); +void set_CopyB_mem (ir_node *node, ir_node *mem); +ir_node *get_CopyB_dst (ir_node *node); +void set_CopyB_dst (ir_node *node, ir_node *dst); +ir_node *get_CopyB_src (ir_node *node); +void set_CopyB_src (ir_node *node, ir_node *src); +type *get_CopyB_type(ir_node *node); +void set_CopyB_type(ir_node *node, type *data_type); /* * @@ -997,6 +1018,24 @@ type *get_irn_type(ir_node *n); /** Returns non-zero for constant-like nodes. */ int is_irn_constlike(const ir_node *node); +/** + * A type to express conditional jump predictions. + */ +typedef enum { + COND_JMP_PRED_NONE, /**< No jump prediction. Default. */ + COND_JMP_PRED_TRUE, /**< The True case is predicted. */ + COND_JMP_PRED_FALSE /**< The False case is predicted. */ +} cond_jmp_predicate; + +/** Gets the string representation of the jump prediction .*/ +const char *get_cond_jmp_predicate_name(cond_jmp_predicate pred); + +/** Returns the conditional jump prediction of a Cond node. */ +cond_jmp_predicate get_Cond_jmp_pred(ir_node *cond); + +/** Sets a new conditional jump prediction. */ +void set_Cond_jmp_pred(ir_node *cond, cond_jmp_predicate pred); + /** * Access custom node data. * The data must have been registered with