]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gas/config/m68k-parse.h
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / config / m68k-parse.h
index cdb5f60eb53d121796964a9e51a3dc43c38fbb21..c3efaa71ac1a1df38c2838aa71aa620dc13aa049 100644 (file)
@@ -1,12 +1,11 @@
 /* m68k-parse.h -- header file for m68k assembler
-   Copyright (C) 1987, 91, 92, 93, 94, 95, 96, 1999
-   Free Software Foundation, Inc.
+   Copyright (C) 1987-2021 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,
@@ -16,8 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with GAS; 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 M68K_PARSE_H
 #define M68K_PARSE_H
@@ -84,11 +83,16 @@ enum m68k_register
   ZPC,                         /* Hack for Program space, but 0 addressing */
   SR,                          /* Status Reg */
   CCR,                         /* Condition code Reg */
-  ACC,                         /* Accumulator Reg */
+  ACC,                         /* Accumulator Reg0 (EMAC or ACC on MAC).  */
+  ACC1,                                /* Accumulator Reg 1 (EMAC).  */
+  ACC2,                                /* Accumulator Reg 2 (EMAC).  */
+  ACC3,                                /* Accumulator Reg 3 (EMAC).  */
+  ACCEXT01,                    /* Accumulator extension 0&1 (EMAC).  */
+  ACCEXT23,                    /* Accumulator extension 2&3 (EMAC).  */
   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,
@@ -96,6 +100,7 @@ enum m68k_register
   CACR,
   VBR,
   CAAR,
+  CPUCR,
   MSP,
   ITT0,
   ITT1,
@@ -105,14 +110,32 @@ enum m68k_register
   TC,
   SRP,
   URP,
-  BUSCR,                       /* 68060 added these */
+  BUSCR,                       /* 68060 added these */
   PCR,
-  ROMBAR,                      /* mcf5200 added these */
+  ROMBAR,                      /* mcf5200 added these.  */
+  RAMBAR_ALT,                  /* Some CF chips have RAMBAR using
+                                  RAMBAR0's number */
   RAMBAR0,
   RAMBAR1,
+  MMUBAR,                      /* mcfv4e added these.  */
+  ROMBAR0,                     /* mcfv4e added these.  */
+  ROMBAR1,                     /* mcfv4e added these.  */
+  MPCR, EDRAMBAR, SECMBAR,     /* mcfv4e added these.  */
+  PCR1U0, PCR1L0, PCR1U1, PCR1L1,/* mcfv4e added these.  */
+  PCR2U0, PCR2L0, PCR2U1, PCR2L1,/* mcfv4e added these.  */
+  PCR3U0, PCR3L0, PCR3U1, PCR3L1,/* mcfv4e added these.  */
+  MBAR0, MBAR1,                        /* mcfv4e added these.  */
+  ACR0, ACR1, ACR2, ACR3,       /* mcf5200 added these.  */
+  ACR4, ACR5, ACR6, ACR7,      /* mcf54418 added these.  */
+  FLASHBAR, RAMBAR,            /* mcf528x added these.  */
+  MBAR2,                       /* mcf5249 added this.  */
   MBAR,
-#define last_movec_reg MBAR
-  /* end of movec ordering constraints */
+  RGPIOBAR,                    /* mcf54418 added this.  */
+  ASID,                                /* m5475.  */
+  CAC,                         /* fido added this.  */
+  MBO,
+#define last_movec_reg MBO
+  /* End of movec ordering constraints.  */
 
   FPI,
   FPS,
@@ -171,7 +194,7 @@ enum m68k_register
   ZADDR7,
 
   /* Upper and lower half of data and address registers.  Order *must*
-     be DATAxL, ADDRxL, DATAxU, ADDRxU. */
+     be DATAxL, ADDRxL, DATAxU, ADDRxU.  */
   DATA0L,                      /* lower half of data registers */
   DATA1L,
   DATA2L,
@@ -249,7 +272,12 @@ enum pic_relocation
   pic_plt_pcrel,               /* @PLTPC */
   pic_got_pcrel,               /* @GOTPC */
   pic_plt_off,                 /* @PLT */
-  pic_got_off                  /* @GOT */
+  pic_got_off,                 /* @GOT */
+  pic_tls_gd,                  /* @TLSGD */
+  pic_tls_ldm,                 /* @TLSLDM */
+  pic_tls_ldo,                 /* @TLSLDO */
+  pic_tls_ie,                  /* @TLSIE */
+  pic_tls_le                   /* @TLSLE */
 };
 #endif
 
@@ -286,6 +314,8 @@ enum m68k_operand_type
   BASE,
   POST,
   PRE,
+  LSH,  /* MAC/EMAC scalefactor '<<'.  */
+  RSH,  /* MAC/EMAC scalefactor '>>'.  */
   REGLST
 };
 
@@ -313,13 +343,16 @@ struct m68k_op
 
   /* The outer displacement.  */
   struct m68k_exp odisp;
+
+  /* Is a trailing '&' added to an <ea>? (for MAC/EMAC mask addressing).  */
+  int trailing_ampersand;
 };
 
 #endif /* ! defined (M68K_PARSE_H) */
 
 /* The parsing function.  */
 
-extern int m68k_ip_op PARAMS ((char *, struct m68k_op *));
+extern int m68k_ip_op (char *, struct m68k_op *);
 
 /* Whether register prefixes are optional.  */
 extern int flag_reg_prefix_optional;