#include "firm_types.h"
#include "irnode_t.h"
-#include "../bearch.h"
+#include "bearch.h"
/**
* Possible ARM "shifter operand" addressing mode types.
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,
/** 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;
/**
} 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;
/** 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 */
} 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.