2000-09-07 Kazu Hirata <kazu@hxi.com>
[deliverable/binutils-gdb.git] / gas / config / m68k-parse.h
index 31132cf735c138890b2d4b8e0293d4f93c75bf88..cdb5f60eb53d121796964a9e51a3dc43c38fbb21 100644 (file)
@@ -1,5 +1,6 @@
 /* m68k-parse.h -- header file for m68k assembler
-   Copyright (C) 1987, 91, 92, 93, 94, 1995 Free Software Foundation, Inc.
+   Copyright (C) 1987, 91, 92, 93, 94, 95, 96, 1999
+   Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -83,6 +84,9 @@ enum m68k_register
   ZPC,                         /* Hack for Program space, but 0 addressing */
   SR,                          /* Status Reg */
   CCR,                         /* Condition code Reg */
+  ACC,                         /* Accumulator Reg */
+  MACSR,                       /* MAC Status Reg */
+  MASK,                                /* Modulus Reg */
 
   /* These have to be grouped together for the movec instruction to work. */
   USP,                         /*  User Stack Pointer */
@@ -103,7 +107,11 @@ enum m68k_register
   URP,
   BUSCR,                       /* 68060 added these */
   PCR,
-#define last_movec_reg PCR
+  ROMBAR,                      /* mcf5200 added these */
+  RAMBAR0,
+  RAMBAR1,
+  MBAR,
+#define last_movec_reg MBAR
   /* end of movec ordering constraints */
 
   FPI,
@@ -161,6 +169,44 @@ enum m68k_register
   ZADDR5,
   ZADDR6,
   ZADDR7,
+
+  /* Upper and lower half of data and address registers.  Order *must*
+     be DATAxL, ADDRxL, DATAxU, ADDRxU. */
+  DATA0L,                      /* lower half of data registers */
+  DATA1L,
+  DATA2L,
+  DATA3L,
+  DATA4L,
+  DATA5L,
+  DATA6L,
+  DATA7L,
+
+  ADDR0L,                      /* lower half of address registers */
+  ADDR1L,
+  ADDR2L,
+  ADDR3L,
+  ADDR4L,
+  ADDR5L,
+  ADDR6L,
+  ADDR7L,
+
+  DATA0U,                      /* upper half of data registers */
+  DATA1U,
+  DATA2U,
+  DATA3U,
+  DATA4U,
+  DATA5U,
+  DATA6U,
+  DATA7U,
+
+  ADDR0U,                      /* upper half of address registers */
+  ADDR1U,
+  ADDR2U,
+  ADDR3U,
+  ADDR4U,
+  ADDR5U,
+  ADDR6U,
+  ADDR7U,
 };
 
 /* Size information.  */
@@ -194,6 +240,19 @@ struct m68k_indexreg
   int scale;
 };
 
+#ifdef OBJ_ELF
+/* The type of a PIC expression.  */
+
+enum pic_relocation
+{
+  pic_none,                    /* not pic */
+  pic_plt_pcrel,               /* @PLTPC */
+  pic_got_pcrel,               /* @GOTPC */
+  pic_plt_off,                 /* @PLT */
+  pic_got_off                  /* @GOT */
+};
+#endif
+
 /* The structure used to hold information about an expression.  */
 
 struct m68k_exp
@@ -201,6 +260,11 @@ struct m68k_exp
   /* The size to use.  */
   enum m68k_size size;
 
+#ifdef OBJ_ELF
+  /* The type of pic relocation if any.  */
+  enum pic_relocation pic_reloc;
+#endif
+
   /* The expression itself.  */
   expressionS exp;
 };
@@ -253,10 +317,6 @@ struct m68k_op
 
 #endif /* ! defined (M68K_PARSE_H) */
 
-/* Parse a register.  */
-
-extern enum m68k_register m68k_reg_parse PARAMS ((char **));
-
 /* The parsing function.  */
 
 extern int m68k_ip_op PARAMS ((char *, struct m68k_op *));
This page took 0.025175 seconds and 4 git commands to generate.