X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_new_nodes.h;h=6a0c174389669a28f26a40bfc00ab99f84a8af76;hb=662c639f2c7b825e6ddf954142119bcc7d43e348;hp=96ca3a5092f87e6a8827ca7f239a82e83da1b909;hpb=a425171fdbc04779892bc79ccbf58196df34061f;p=libfirm diff --git a/ir/be/ia32/ia32_new_nodes.h b/ir/be/ia32/ia32_new_nodes.h index 96ca3a509..6a0c17438 100644 --- a/ir/be/ia32/ia32_new_nodes.h +++ b/ir/be/ia32/ia32_new_nodes.h @@ -112,6 +112,36 @@ void set_ia32_sc(ir_node *node, char *sc); */ char *get_ia32_cnst(const ir_node *node); +/** + * Sets the uses_frame flag. + */ +void set_ia32_use_frame(ir_node *node); + +/** + * Clears the uses_frame flag. + */ +void clear_ia32_use_frame(ir_node *node); + +/** + * Gets the uses_frame flag. + */ +int is_ia32_use_frame(const ir_node *node); + +/** + * Sets node to commutative. + */ +void set_ia32_commutative(ir_node *node); + +/** + * Sets node to non-commutative. + */ +void clear_ia32_commutative(ir_node *node); + +/** + * Checks if node is commutative. + */ +int is_ia32_commutative(const ir_node *node); + /** * Gets the mode of the stored/loaded value (only set for Store/Load) */ @@ -122,16 +152,36 @@ ir_mode *get_ia32_ls_mode(const ir_node *node); */ void set_ia32_ls_mode(ir_node *node, ir_mode *mode); +/** + * Gets the frame entity assigned to this node; + */ +entity *get_ia32_frame_ent(const ir_node *node); + +/** + * Sets the frame entity for this node; + */ +void set_ia32_frame_ent(ir_node *node, entity *ent); + /** * Returns the argument register requirements of an ia32 node. */ const ia32_register_req_t **get_ia32_in_req_all(const ir_node *node); +/** + * Sets the argument register requirements of an ia32 node. + */ +void set_ia32_in_req_all(ir_node *node, const ia32_register_req_t **reqs); + /** * Returns the result register requirements of an ia32 node. */ const ia32_register_req_t **get_ia32_out_req_all(const ir_node *node); +/** + * Sets the result register requirements of an ia32 node. + */ +void set_ia32_out_req_all(ir_node *node, const ia32_register_req_t **reqs); + /** * Returns the argument register requirements of an ia32 node. */ @@ -160,7 +210,7 @@ arch_irn_flags_t get_ia32_flags(const ir_node *node); /** * Sets the register flag of an ia32 node. */ -void set_ia32_flags(const ir_node *node, arch_irn_flags_t flags); +void set_ia32_flags(ir_node *node, arch_irn_flags_t flags); /** * Returns the result register slots of an ia32 node. @@ -213,7 +263,6 @@ long get_ia32_pncode(const ir_node *node); void set_ia32_pncode(ir_node *node, long code); - /****************************************************************************************************** * _ _ _ _ __ _ _ * (_) | | | | | | / _| | | (_) @@ -228,7 +277,7 @@ void set_ia32_pncode(ir_node *node, long code); /** * Gets the type of an ia32_Const. */ -unsigned get_ia32_Const_type(ir_node *node); +unsigned get_ia32_Const_type(const ir_node *node); /** * Sets the type of an ia32_Const. @@ -254,12 +303,38 @@ void set_ia32_AddrMode(ir_node *node, char direction); /** * Returns whether or not the node is an AddrModeS node. */ -int is_ia32_AddrModeS(ir_node *node); +int is_ia32_AddrModeS(const ir_node *node); /** * Returns whether or not the node is an AddrModeD node. */ -int is_ia32_AddrModeD(ir_node *node); +int is_ia32_AddrModeD(const ir_node *node); + +/** + * Checks if node is a Load or fLoad. + */ +int is_ia32_Ld(const ir_node *node); + +/** + * Checks if node is a Store or fStore. + */ +int is_ia32_St(const ir_node *node); + +/** + * Checks if node is a Const or fConst. + */ +int is_ia32_Cnst(const ir_node *node); + +/** + * Allocates num register slots for node. + */ +void alloc_ia32_reg_slots(ir_node *node, int num); + +/** + * Initializes the nodes attributes. + */ +void init_ia32_attributes(ir_node *node, arch_irn_flags_t flags, const ia32_register_req_t **in_reqs, \ + const ia32_register_req_t **out_reqs, int n_res); /* Include the generated headers */ #include "gen_ia32_new_nodes.h"