X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_new_nodes.h;h=5c353594b3c5cd83c66c03c5f05eb708db7c5b7a;hb=8b7e7d88a5985399f40e45ff3ebc93d6606c8511;hp=4b42c88077b8c93d0cf0c29b2799661f12147a04;hpb=e3b48a6e175876384ae07a4f243b6f37697bb6d7;p=libfirm diff --git a/ir/be/ia32/ia32_new_nodes.h b/ir/be/ia32/ia32_new_nodes.h index 4b42c8807..5c353594b 100644 --- a/ir/be/ia32/ia32_new_nodes.h +++ b/ir/be/ia32/ia32_new_nodes.h @@ -79,6 +79,8 @@ const ia32_x87_attr_t *get_ia32_x87_attr_const(const ir_node *node); ia32_immediate_attr_t *get_ia32_immediate_attr(ir_node *node); const ia32_immediate_attr_t *get_ia32_immediate_attr_const(const ir_node *node); +const ia32_asm_attr_t *get_ia32_asm_attr_const(const ir_node *node); + /** * Gets the condcode attributes of a node. */ @@ -97,6 +99,12 @@ const ia32_call_attr_t *get_ia32_call_attr_const(const ir_node *node); ia32_copyb_attr_t *get_ia32_copyb_attr(ir_node *node); const ia32_copyb_attr_t *get_ia32_copyb_attr_const(const ir_node *node); +/** + * Gets the ClimbFrame node attributes. + */ +ia32_climbframe_attr_t *get_ia32_climbframe_attr(ir_node *node); +const ia32_climbframe_attr_t *get_ia32_climbframe_attr_const(const ir_node *node); + /** * Gets the type of an ia32 node. */ @@ -157,12 +165,12 @@ int is_ia32_am_sc_sign(const ir_node *node); /** * Gets the addr mode const. */ -int get_ia32_am_scale(const ir_node *node); +unsigned get_ia32_am_scale(const ir_node *node); /** * Sets the const for addr mode. */ -void set_ia32_am_scale(ir_node *node, int scale); +void set_ia32_am_scale(ir_node *node, unsigned scale); /** * Sets the uses_frame flag. @@ -253,73 +261,16 @@ const arch_register_req_t **get_ia32_in_req_all(const ir_node *node); */ void set_ia32_in_req_all(ir_node *node, const arch_register_req_t **reqs); -/** - * Returns the result register requirements of an ia32 node. - */ -const arch_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 arch_register_req_t **reqs); - /** * Returns the argument register requirements of an ia32 node. */ const arch_register_req_t *get_ia32_in_req(const ir_node *node, int pos); -/** - * Returns the result register requirements of an ia32 node. - */ -const arch_register_req_t *get_ia32_out_req(const ir_node *node, int pos); - -/** - * Sets the OUT register requirements at position pos. - */ -void set_ia32_req_out(ir_node *node, const arch_register_req_t *req, int pos); - /** * Sets the IN register requirements at position pos. */ void set_ia32_req_in(ir_node *node, const arch_register_req_t *req, int pos); -/** - * Returns the register flag of an ia32 node. - */ -arch_irn_flags_t get_ia32_flags(const ir_node *node); - -/** - * Sets the register flag of an ia32 node. - */ -void set_ia32_flags(ir_node *node, arch_irn_flags_t flags); - -void add_ia32_flags(ir_node *node, arch_irn_flags_t flags); - -/** - * Returns the result register slots of an ia32 node. - */ -const arch_register_t **get_ia32_slots(const ir_node *node); - -/** - * Returns the name of the OUT register at position pos. - */ -const char *get_ia32_out_reg_name(const ir_node *node, int pos); - -/** - * Returns the index of the OUT register at position pos within its register class. - */ -int get_ia32_out_regnr(const ir_node *node, int pos); - -/** - * Returns the OUT register at position pos. - */ -const arch_register_t *get_ia32_out_reg(const ir_node *node, int pos); - -/** - * Returns the number of results. - */ -int get_ia32_n_res(const ir_node *node); - /** * Returns the condition code of a node. */ @@ -341,16 +292,6 @@ unsigned get_ia32_copyb_size(const ir_node *node); unsigned get_ia32_latency(const ir_node *node); -/** - * Sets the flags for the n'th out. - */ -void set_ia32_out_flags(ir_node *node, arch_irn_flags_t flags, int pos); - -/** - * Gets the flags for the n'th out. - */ -arch_irn_flags_t get_ia32_out_flags(const ir_node *node, int pos); - /** * Get the list of available execution units. */ @@ -386,7 +327,7 @@ const char *get_ia32_orig_node(const ir_node *node); /** * Sets the name of the original ir node. */ -void set_ia32_orig_node(ir_node *node, const char *name); +void set_ia32_orig_node(ir_node *node, const ir_node *old); #endif /* NDEBUG */ @@ -425,16 +366,6 @@ int is_ia32_AddrModeS(const 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); - /** * Swaps left/right input of a node (and adjusts pnc if needed) */ @@ -445,17 +376,18 @@ void ia32_swap_left_right(ir_node *node); */ void init_ia32_attributes(ir_node *node, arch_irn_flags_t flags, const arch_register_req_t **in_reqs, - const arch_register_req_t **out_reqs, const be_execution_unit_t ***execution_units, int n_res); void init_ia32_x87_attributes(ir_node *node); void init_ia32_asm_attributes(ir_node *node); void init_ia32_immediate_attributes(ir_node *node, ir_entity *symconst, - int symconst_sign, long offset); + int symconst_sign, int no_pic_adjust, + long offset); void init_ia32_call_attributes(ir_node *res, unsigned pop, ir_type *call_tp); void init_ia32_copyb_attributes(ir_node *res, unsigned size); void init_ia32_condcode_attributes(ir_node *res, long pnc); +void init_ia32_climbframe_attributes(ir_node *res, unsigned count); /* Include the generated headers */ #include "gen_ia32_new_nodes.h"