X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_nodes_attr.h;h=04a6a4c223d5b5f70cdf03804382f4ac850b7bdd;hb=3f807bf48426a29da4129ff29c44a4b4690c45f6;hp=285769729fb89d8f5a64cea9ceb2128e57e69863;hpb=8eb5ed005eac012f801e9845963bb6ccfb532e3f;p=libfirm diff --git a/ir/be/ia32/ia32_nodes_attr.h b/ir/be/ia32/ia32_nodes_attr.h index 285769729..04a6a4c22 100644 --- a/ir/be/ia32/ia32_nodes_attr.h +++ b/ir/be/ia32/ia32_nodes_attr.h @@ -71,6 +71,7 @@ typedef enum { match_dest_am = 1 << 9, match_try_am = 1 << 10, /**< only try to produce AM node, don't do anything if AM isn't possible */ + match_two_users = 1 << 11 /**< the instruction uses a load two times ... */ } match_flags_t; typedef struct ia32_op_attr_t ia32_op_attr_t; @@ -106,7 +107,7 @@ struct ia32_attr_t { unsigned am_sc_sign:1; /**< The sign bit of the address mode symconst. */ unsigned use_frame:1; /**< Indicates whether the operation uses the frame pointer or not. */ - unsigned except_label:1; /**< Set if this node needs a label because of possible exception. */ + unsigned has_except_label:1; /**< Set if this node needs a label because of possible exception. */ unsigned is_commutative:1; /**< Indicates whether op is commutative or not. */ @@ -116,6 +117,7 @@ struct ia32_attr_t { unsigned ins_permuted : 1; /**< inputs of node have been permuted (for commutative nodes) */ unsigned cmp_unsigned : 1; /**< compare should be unsigned */ + unsigned is_reload : 1; /**< node performs a reload */ } data; int *out_flags; /**< flags for each produced value */ @@ -135,6 +137,8 @@ struct ia32_attr_t { const arch_register_t **slots; /**< register slots for assigned registers */ + ir_label_t exc_label; /**< the exception label iff this instruction can throw an exception */ + #ifndef NDEBUG const char *orig_node; /**< holds the name of the original ir node */ unsigned attr_type; /**< bitfield indicating the attribute type */