/* 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-2020 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,
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
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,
CACR,
VBR,
CAAR,
+ CPUCR,
MSP,
ITT0,
ITT1,
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,
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,
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
BASE,
POST,
PRE,
+ LSH, /* MAC/EMAC scalefactor '<<'. */
+ RSH, /* MAC/EMAC scalefactor '>>'. */
REGLST
};
/* 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;