* objdump.c (dump_reloc_set): Append "()" to symbol names which
[deliverable/binutils-gdb.git] / include / opcode / mn10300.h
index b268eff5cd6d490f64006b5d3a74f382297763d8..a47ef48a357d446c131333952e5d6c832c33031a 100644 (file)
@@ -1,5 +1,5 @@
 /* mn10300.h -- Header file for Matsushita 10300 opcode table
-   Copyright 1996, 1997 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
    Written by Jeff Law, Cygnus Support
 
 This file is part of GDB, GAS, and the GNU binutils.
@@ -16,13 +16,14 @@ 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
-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 MN10300_H
 #define MN10300_H
 
 /* The opcode table is an array of struct mn10300_opcode.  */
 
+#define MN10300_MAX_OPERANDS 8
 struct mn10300_opcode
 {
   /* The opcode name.  */
@@ -38,13 +39,25 @@ struct mn10300_opcode
      match (and are presumably filled in by operands).  */
   unsigned long mask;
 
+  /* A bitmask.  For each operand, nonzero if it must not have the same
+     register specification as all other operands with a nonzero bit in
+     this flag.  ie 0x81 would indicate that operands 7 and 0 must not
+     match.  Note that we count operands from left to right as they appear
+     in the operands specification below.  */
+  unsigned int no_match_operands;
+
   /* The format of this opcode.  */
   unsigned char format;
 
+  /* Bitmask indicating what cpu variants this opcode is available on.
+     We assume mn10300 base opcodes are available everywhere, so we only
+     have to note opcodes which are available on other variants.  */
+  unsigned int machine;
+
   /* An array of operand codes.  Each code is an index into the
      operand table.  They appear in the order which the operands must
      appear in assembly code, and are terminated by a zero.  */
-  unsigned char operands[8];
+  unsigned char operands[MN10300_MAX_OPERANDS];
 };
 
 /* The table itself is sorted by major opcode number, and is otherwise
@@ -104,7 +117,6 @@ extern const struct mn10300_operand mn10300_operands[];
 
 #define MN10300_OPERAND_RELAX 0x4000
 
-/* start-sanitize-am33 */
 #define MN10300_OPERAND_USP 0x8000
 
 #define MN10300_OPERAND_SSP 0x10000
@@ -122,7 +134,12 @@ extern const struct mn10300_operand mn10300_operands[];
 #define MN10300_OPERAND_PLUS 0x400000
 
 #define MN10300_OPERAND_24BIT 0x800000
-/* end-sanitize-am33 */
+
+#define MN10300_OPERAND_FSREG 0x1000000
+
+#define MN10300_OPERAND_FDREG 0x2000000
+
+#define MN10300_OPERAND_FPCR 0x4000000
 
 /* Opcode Formats.  */
 #define FMT_S0 1
@@ -135,12 +152,18 @@ extern const struct mn10300_operand mn10300_operands[];
 #define FMT_D2 8
 #define FMT_D4 9
 #define FMT_D5 10
-/* start-sanitize-am33 */
 #define FMT_D6 11
 #define FMT_D7 12
 #define FMT_D8 13
 #define FMT_D9 14
 #define FMT_D10 15
-/* end-sanitize-am33 */
+#define FMT_D3 16
+
+/* Variants of the mn10300 which have additional opcodes.  */
+#define MN103 300
+#define AM30  300
+
+#define AM33 330
+#define AM33_2 332
 
 #endif /* MN10300_H */
This page took 0.026782 seconds and 4 git commands to generate.