/* Table of relaxations for Xtensa assembly.
- Copyright 2003, 2004, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
/* Operand types and constraints on operands: */
-typedef enum op_type OpType;
-typedef enum cmp_op CmpOp;
-
-enum op_type
+typedef enum op_type
{
OP_CONSTANT,
OP_OPERAND,
OP_OPERAND_LOW16U, /* Low 16 bits of immed. */
OP_OPERAND_HI16U, /* High 16 bits of immed. */
OP_LITERAL,
+ OP_FREEREG,
OP_LABEL
-};
+} OpType;
-enum cmp_op
+typedef enum cmp_op
{
OP_EQUAL,
OP_NOTEQUAL,
-};
+} CmpOp;
struct precondition
{
OPERAND: op_data is the field in the
source instruction to take the value from
and encode in the op_num field here.
- LITERAL or LABEL: unused. */
+ LITERAL: op_data is field in the source
+ instruction that is stored in the literal.
+ LABEL: unused. */
BuildOp *next;
};
typedef struct build_instr BuildInstr;
-typedef enum instr_type InstrType;
-enum instr_type
+typedef enum instr_type
{
INSTR_INSTR,
INSTR_LITERAL_DEF,
INSTR_LABEL_DEF
-};
+} InstrType;
struct build_instr
{
extern bfd_boolean xg_has_userdef_op_fn (OpType);
extern long xg_apply_userdef_op_fn (OpType, long);
+enum flix_level
+{
+ FLIX_ALL,
+ FLIX_NO_GENERATE,
+ FLIX_NONE
+};
+
+extern enum flix_level produce_flix;
+
#endif /* !XTENSA_RELAX_H */