x86: fold (supposed to be) identical code
[deliverable/binutils-gdb.git] / gas / config / xtensa-relax.h
index 6ae11e379cef7946e80d9968d37bb3dc0bb6174e..7650875596107c0b5e12f6c36e9629cef1193340 100644 (file)
@@ -1,11 +1,11 @@
 /* Table of relaxations for Xtensa assembly.
-   Copyright 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003-2020 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,
@@ -91,10 +91,7 @@ struct req_or_option_list
 
 /* 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,
@@ -105,14 +102,15 @@ enum op_type
   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
 {
@@ -135,28 +133,24 @@ struct build_op
                                   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;
 };
 
 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
 {
   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;
@@ -179,4 +173,13 @@ extern TransitionTable *xg_build_widen_table (transition_cmp_fn);
 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 */
This page took 0.025772 seconds and 4 git commands to generate.