2003-09-26 Matt Thomas <matt@3am-software.com>
[deliverable/binutils-gdb.git] / gas / config / m68k-parse.h
index 95a1cd82b36c00be703bfdc9a652526795b07585..6482007504a42044f795f91a90f289f7be5bba03 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 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000
+   Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -83,8 +84,11 @@ 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. */
+  /* These have to be grouped together for the movec instruction to work.  */
   USP,                         /*  User Stack Pointer */
   ISP,                         /*  Interrupt stack pointer */
   SFC,
@@ -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,24 +260,15 @@ 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;
 };
 
-/* See whether an expression is a signed eight bit value.  */
-
-#define expr8(ex)                              \
-  ((ex)->exp.X_op == O_constant                        \
-   && (ex)->exp.X_add_number >= -0x80          \
-   && (ex)->exp.X_add_number < 0x80)
-
-/* See whether an expression is a signed sixteen bit value.  */
-
-#define expr16(ex)                             \
-  ((ex)->exp.X_op == O_constant                        \
-   && (ex)->exp.X_add_number >= -0x8000                \
-   && (ex)->exp.X_add_number < 0x8000)
-
 /* The operand modes.  */
 
 enum m68k_operand_type
This page took 0.024924 seconds and 4 git commands to generate.