X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Farm%2Farm_nodes_attr.h;h=778f98685b7818b6d63e9378ae3f872a497cf97f;hb=a53a89cf59283fb4913bb66ba3860a14c9166dc5;hp=7f1808a80fc9b99be9d3d2ab4bf180ecea4ee30e;hpb=c3689ef7c4ac37b327fd3287c3a02a64e85dbfb5;p=libfirm diff --git a/ir/be/arm/arm_nodes_attr.h b/ir/be/arm/arm_nodes_attr.h index 7f1808a80..778f98685 100644 --- a/ir/be/arm/arm_nodes_attr.h +++ b/ir/be/arm/arm_nodes_attr.h @@ -28,7 +28,7 @@ #include "firm_types.h" #include "irnode_t.h" -#include "../bearch.h" +#include "bearch.h" /** * Possible ARM "shifter operand" addressing mode types. @@ -48,13 +48,6 @@ typedef enum arm_shift_modifier_t { ARM_SHF_RRX, /**< rotate right through carry bits */ } arm_shift_modifier_t; -/** fpa immediate bit */ -#define ARM_FPA_IMM (1 << 3) /**< fpa floating point immediate */ - -#define ARM_GET_FPA_IMM(attr) ((attr)->instr_fl & ARM_FPA_IMM) -#define ARM_SET_FPA_IMM(attr) ((attr)->instr_fl |= ARM_FPA_IMM) -#define ARM_CLR_FPA_IMM(attr) ((attr)->instr_fl &= ~ARM_FPA_IMM) - /** Encoding for fpa immediates */ enum fpa_immediates { fpa_null = 0, @@ -70,13 +63,8 @@ enum fpa_immediates { /** Generic ARM node attributes. */ typedef struct arm_attr_t { - except_attr exc; /**< the exception attribute. MUST be the first one. */ - - const arch_register_req_t **in_req; /**< register requirements for arguments */ - - ir_mode *op_mode; /**< operation mode if different from node's mode (used for fpa nodes) */ - unsigned instr_fl; /**< deprecated (was sometimes used for shift modifiers) */ - bool is_load_store : 1; + except_attr exc; /**< the exception attribute. MUST be the first one. */ + bool is_load_store : 1; /**< if set, this is a load or store instruction */ } arm_attr_t; /** @@ -110,7 +98,7 @@ typedef struct arm_load_store_attr_t { } arm_load_store_attr_t; /** Attributes for a SymConst */ -typedef struct _arm_SymConst_attr_t { +typedef struct arm_SymConst_attr_t { arm_attr_t base; ir_entity *entity; int fp_offset; @@ -119,7 +107,7 @@ typedef struct _arm_SymConst_attr_t { /** Attributes for a CondJmp */ typedef struct arm_CondJmp_attr_t { arm_attr_t base; - pn_Cmp pnc; + ir_relation relation; } arm_CondJmp_attr_t; /** Attributes for a SwitchJmp */ @@ -130,16 +118,22 @@ typedef struct arm_SwitchJmp_attr_t { } arm_SwitchJmp_attr_t; /** CopyB attributes */ -typedef struct { +typedef struct arm_CopyB_attr_t { arm_attr_t base; unsigned size; } arm_CopyB_attr_t; -/** Attributes for a fpaConst */ -typedef struct arm_fpaConst_attr_t { +/** Attributes for a fConst */ +typedef struct arm_fConst_attr_t { + arm_attr_t base; + ir_tarval *tv; /**< the tarval representing the FP const */ +} arm_fConst_attr_t; + +/** attributes for floatingpoint arithmetic operations */ +typedef struct arm_farith_attr_t { arm_attr_t base; - tarval *tv; /**< the tarval representing the FP const */ -} arm_fpaConst_attr_t; + ir_mode *mode; /* operation mode */ +} arm_farith_attr_t; /** * Return the fpa immediate from the encoding.