X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_new_nodes.h;h=817724dd89bb98675c486f49328607c8b864d24f;hb=4bdf858cdb11749577b89e449b9665e6fc6ab5e8;hp=3e6e8056ce29037baaa7d2f3497681959b8c24fe;hpb=75a385285d13e1d189a4b7c64bfe87002fcf5ab4;p=libfirm diff --git a/ir/be/ia32/ia32_new_nodes.h b/ir/be/ia32/ia32_new_nodes.h index 3e6e8056c..817724dd8 100644 --- a/ir/be/ia32/ia32_new_nodes.h +++ b/ir/be/ia32/ia32_new_nodes.h @@ -8,16 +8,8 @@ */ #include "firm_config.h" - #include "ia32_nodes_attr.h" -/** - * Returns the name of a firm symconst. - */ -const char *get_sc_name(ir_node *symc); - - - /*************************************************************************************************** * _ _ _ __ _ _ _ _ * | | | | | | / / | | | | | | | | @@ -44,6 +36,16 @@ ia32_op_type_t get_ia32_op_type(const ir_node *node); */ void set_ia32_op_type(ir_node *node, ia32_op_type_t tp); +/** + * Gets the immediate op type of an ia32 node. + */ +ia32_immop_type_t get_ia32_immop_type(const ir_node *node); + +/** + * Sets the immediate op type of an ia32 node. + */ +void set_ia32_immop_type(ir_node *node, ia32_immop_type_t tp); + /** * Gets the supported addrmode of an ia32 node */ @@ -72,12 +74,12 @@ char *get_ia32_am_offs(const ir_node *node); /** * Adds an offset for addrmode. */ -void add_ia32_am_offs(ir_node *node, char *offset); +void add_ia32_am_offs(ir_node *node, const char *offset); /** * Subs an offset for addrmode. */ -void sub_ia32_am_offs(ir_node *node, char *offset); +void sub_ia32_am_offs(ir_node *node, const char *offset); /** * Gets the addr mode const. @@ -102,23 +104,33 @@ void set_ia32_Immop_tarval(ir_node *node, tarval *tv); /** * Return the sc attribute. */ -const char *get_ia32_sc(const ir_node *node); +ident *get_ia32_sc(const ir_node *node); /** * Sets the sc attribute. */ -void set_ia32_sc(ir_node *node, const char *sc); +void set_ia32_sc(ir_node *node, ident *sc); /** * Gets the string representation of the internal const (tv or symconst) */ -char *get_ia32_cnst(const ir_node *node); +const char *get_ia32_cnst(const ir_node *node); /** * Sets the string representation of the internal const. */ void set_ia32_cnst(ir_node *node, char *cnst); +/** + * Gets the ident representation of the internal const (tv or symconst) + */ +ident *get_ia32_id_cnst(const ir_node *node); + +/** + * Sets the ident representation of the internal const. + */ +void set_ia32_id_cnst(ir_node *node, ident *cnst); + /** * Sets the uses_frame flag. */ @@ -335,6 +347,16 @@ void set_ia32_Const_attr(ir_node *ia32_cnst, ir_node *cnst); */ void set_ia32_AddrMode(ir_node *node, char direction); +/** + * Returns whether or not the node is an immediate operation with Const. + */ +int is_ia32_ImmConst(const ir_node *node); + +/** + * Returns whether or not the node is an immediate operation with SymConst. + */ +int is_ia32_ImmSymConst(const ir_node *node); + /** * Returns whether or not the node is an AddrModeS node. */ @@ -371,6 +393,11 @@ void alloc_ia32_reg_slots(ir_node *node, int num); 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); +/** + * Registers the ia32_copy_attr function for all ia32 opcodes. + */ +void ia32_register_copy_attr_func(void); + /* Include the generated headers */ #include "gen_ia32_new_nodes.h"