/* Table of relaxations for Xtensa assembly.
- Copyright 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003-2015 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GAS is distributed in the hope that it will be useful,
You should have received a copy of the GNU General Public License
along with GAS; see the file COPYING. If not, write to
- the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA. */
+ the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
#ifndef XTENSA_RELAX_H
#define XTENSA_RELAX_H
OP_OPERAND_LOW16U, /* Low 16 bits of immed. */
OP_OPERAND_HI16U, /* High 16 bits of immed. */
OP_LITERAL,
+ OP_FREEREG,
OP_LABEL
};
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: op_data is the ordinal
- that identifies the appropriate one, i.e.,
- there can be more than one literal or
- label in an expansion. */
+ LITERAL: op_data is field in the source
+ instruction that is stored in the literal.
+ LABEL: unused. */
BuildOp *next;
};
struct build_instr
{
InstrType typ;
- unsigned id; /* LITERAL_DEF or LABEL_DEF: an ordinal to
- identify which one. */
xtensa_opcode opcode; /* Unused for LITERAL_DEF or LABEL_DEF. */
BuildOp *ops;
BuildInstr *next;
typedef int (*transition_cmp_fn) (const TransitionRule *,
const TransitionRule *);
-extern TransitionTable *xg_build_simplify_table PARAMS ((transition_cmp_fn));
-extern TransitionTable *xg_build_widen_table PARAMS ((transition_cmp_fn));
+extern TransitionTable *xg_build_simplify_table (transition_cmp_fn);
+extern TransitionTable *xg_build_widen_table (transition_cmp_fn);
-extern bfd_boolean xg_has_userdef_op_fn PARAMS ((OpType));
-extern long xg_apply_userdef_op_fn PARAMS ((OpType, long));
+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 */