include/opcode/
[deliverable/binutils-gdb.git] / include / opcode / v850.h
index 58e7450468f53751dc2b0170049a5ea8aeac3227..436ff3996844d09fd76b90e3e32f4dce730dd4af 100644 (file)
@@ -1,5 +1,5 @@
 /* v850.h -- Header file for NEC V850 opcode table
 /* v850.h -- Header file for NEC V850 opcode table
-   Copyright 1996 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 2001, 2003 Free Software Foundation, Inc.
    Written by J.T. Conklin, Cygnus Support
 
 This file is part of GDB, GAS, and the GNU binutils.
    Written by J.T. Conklin, Cygnus Support
 
 This file is part of GDB, GAS, and the GNU binutils.
@@ -16,7 +16,7 @@ the GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this file; see the file COPYING.  If not, write to the Free
 
 You should have received a copy of the GNU General Public License
 along with this file; see the file COPYING.  If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #ifndef V850_H
 #define V850_H
 
 #ifndef V850_H
 #define V850_H
@@ -45,8 +45,22 @@ struct v850_opcode
 
   /* Which (if any) operand is a memory operand.  */
   unsigned int memop;
 
   /* Which (if any) operand is a memory operand.  */
   unsigned int memop;
+
+  /* Target processor(s).  A bit field of processors which support
+     this instruction.  Note a bit field is used as some instructions
+     are available on multiple, different processor types, whereas
+     other instructions are only available on one specific type.  */
+  unsigned int processors;
 };
 
 };
 
+/* Values for the processors field in the v850_opcode structure.  */
+#define PROCESSOR_V850         (1 << 0)                /* Just the V850.  */
+#define PROCESSOR_ALL          -1                      /* Any processor.  */
+#define PROCESSOR_V850E                (1 << 1)                /* Just the V850E. */
+#define PROCESSOR_NOT_V850     (~ PROCESSOR_V850)      /* Any processor except the V850.  */
+#define PROCESSOR_V850EA       (1 << 2)                /* Just the V850EA. */
+#define PROCESSOR_V850E1       (1 << 3)                /* Just the V850E1. */
+
 /* The table itself is sorted by major opcode number, and is otherwise
    in the order in which the disassembler should consider
    instructions.  */
 /* The table itself is sorted by major opcode number, and is otherwise
    in the order in which the disassembler should consider
    instructions.  */
@@ -82,8 +96,8 @@ struct v850_operand
      string (the operand will be inserted in any case).  If the
      operand value is legal, *ERRMSG will be unchanged (most operands
      can accept any value).  */
      string (the operand will be inserted in any case).  If the
      operand value is legal, *ERRMSG will be unchanged (most operands
      can accept any value).  */
-  unsigned long (* insert) PARAMS ((unsigned long instruction, long op,
-                                  const char ** errmsg));
+  unsigned long (* insert)
+    (unsigned long instruction, long op, const char ** errmsg);
 
   /* Extraction function.  This is used by the disassembler.  To
      extract this operand type from an instruction, check this field.
 
   /* Extraction function.  This is used by the disassembler.  To
      extract this operand type from an instruction, check this field.
@@ -101,7 +115,7 @@ struct v850_operand
      non-zero if this operand type can not actually be extracted from
      this operand (i.e., the instruction does not match).  If the
      operand is valid, *INVALID will not be changed.  */
      non-zero if this operand type can not actually be extracted from
      this operand (i.e., the instruction does not match).  If the
      operand is valid, *INVALID will not be changed.  */
-  unsigned long (* extract) PARAMS ((unsigned long instruction, int * invalid));
+  unsigned long (* extract) (unsigned long instruction, int * invalid);
 
   /* One bit syntax flags.  */
   int flags;
 
   /* One bit syntax flags.  */
   int flags;
@@ -137,22 +151,16 @@ extern const struct v850_operand v850_operands[];
    promoted operands on the mn10300?)  */
 #define V850_OPERAND_RELAX     0x40
 
    promoted operands on the mn10300?)  */
 #define V850_OPERAND_RELAX     0x40
 
-/* Whether this argument is a N-bit offset for a sst.{h,w}/sld.{h,w,hu}
-   instruction, and the addend needs to be shifted right one bit */
-#define V850_OPERAND_ADJUST_SHORT_MEMORY       0x80
-
 /* The register specified must not be r0 */
 /* The register specified must not be r0 */
-#define V850_NOT_R0            0x100
+#define V850_NOT_R0            0x80
 
 
-/* start-sanitize-v850e */
 /* push/pop type instruction, V850E specific.  */
 /* push/pop type instruction, V850E specific.  */
-#define V850E_PUSH_POP         0x200
+#define V850E_PUSH_POP         0x100
 
 /* 16 bit immediate follows instruction, V850E specific.  */
 
 /* 16 bit immediate follows instruction, V850E specific.  */
-#define V850E_IMMEDIATE16      0x400
+#define V850E_IMMEDIATE16      0x200
 
 /* 32 bit immediate follows instruction, V850E specific.  */
 
 /* 32 bit immediate follows instruction, V850E specific.  */
-#define V850E_IMMEDIATE32      0x800
-/* end-sanitize-v850e */
+#define V850E_IMMEDIATE32      0x400
 
 #endif /* V850_H */
 
 #endif /* V850_H */
This page took 0.0243 seconds and 4 git commands to generate.