X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Famd64%2Famd64_nodes_attr.h;h=cd58f0b4caf066967733d2b1b61ef8b3ceb7b776;hb=3cda66b832f2864ac65f6fe2637920d7967e723d;hp=7aab2981f953bc8a0226d846ad22e58a8821cb4e;hpb=c3e5dad1649dcd1da88a5551c34577676d238757;p=libfirm diff --git a/ir/be/amd64/amd64_nodes_attr.h b/ir/be/amd64/amd64_nodes_attr.h index 7aab2981f..cd58f0b4c 100644 --- a/ir/be/amd64/amd64_nodes_attr.h +++ b/ir/be/amd64/amd64_nodes_attr.h @@ -28,23 +28,30 @@ #include "../bearch.h" typedef struct amd64_attr_t amd64_attr_t; -typedef struct amd64_immediate_attr_t amd64_immediate_attr_t; typedef struct amd64_SymConst_attr_t amd64_SymConst_attr_t; struct amd64_attr_t { + except_attr exc; /**< the exception attribute. MUST be the first one. */ const arch_register_req_t **in_req; /**< register requirements for arguments */ const arch_register_req_t **out_req; /**< register requirements for results */ -}; - -struct amd64_immediate_attr_t -{ - unsigned imm_value; /**< the immediate value to load */ + ir_mode *ls_mode; /**< Stores the "input" mode */ + struct amd64_attr_data_bitfield { + unsigned ins_permuted : 1; /**< inputs of node have been permuted + (for commutative nodes) */ + unsigned cmp_unsigned : 1; /**< compare should be unsigned */ + } data; + struct amd64_attr_extended { + pn_Cmp pnc; /**< type of compare operation >*/ + unsigned imm_value; /**< immediate value to use >*/ + } ext; }; struct amd64_SymConst_attr_t { - ir_entity *entity; + amd64_attr_t base; + ir_entity *entity; + unsigned fp_offset; }; #define CAST_AMD64_ATTR(type,ptr) ((type *)(ptr))