From f7ec513bed7e6bf8c2b88b7fdb5cf3fe94523def Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Wed, 27 Dec 2006 07:15:02 +0000 Subject: [PATCH 1/1] gas/ * config/m68k-parse.h (m68k_register): Add CAC and MBB. * config/tc-m68k.c (fido_ctrl): New. (m68k_archs): Use fido_ctrl for -mfidoa. (m68k_cpus): Use fido_ctrl on fido-*-*. (m68k_ip): Add support for CAC and MBB. (init_table): Add CAC and MBB. opcodes/ * m68k-dis.c (print_insn_arg): Add support for cac and mbb. --- gas/ChangeLog | 9 +++++++++ gas/config/m68k-parse.h | 4 +++- gas/config/tc-m68k.c | 17 +++++++++++++++-- opcodes/ChangeLog | 4 ++++ opcodes/m68k-dis.c | 5 ++++- 5 files changed, 35 insertions(+), 4 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 6f5d0d3c19..ba8388cdd2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,12 @@ +2006-12-27 Kazu Hirata + + * config/m68k-parse.h (m68k_register): Add CAC and MBB. + * config/tc-m68k.c (fido_ctrl): New. + (m68k_archs): Use fido_ctrl for -mfidoa. + (m68k_cpus): Use fido_ctrl on fido-*-*. + (m68k_ip): Add support for CAC and MBB. + (init_table): Add CAC and MBB. + 2006-12-26 H.J. Lu * config/tc-i386.c (i386_immediate): Remove prototype. diff --git a/gas/config/m68k-parse.h b/gas/config/m68k-parse.h index e7af8536a8..272075dc43 100644 --- a/gas/config/m68k-parse.h +++ b/gas/config/m68k-parse.h @@ -126,7 +126,9 @@ enum m68k_register FLASHBAR, RAMBAR, /* mcf528x added these. */ MBAR2, /* mcf5249 added this. */ MBAR, -#define last_movec_reg MBAR + CAC, /* fido added this. */ + MBB, +#define last_movec_reg MBB /* End of movec ordering constraints. */ FPI, diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c index df44fbe8ab..661c99ca18 100644 --- a/gas/config/tc-m68k.c +++ b/gas/config/tc-m68k.c @@ -231,6 +231,10 @@ static const enum m68k_register mcfv4e_ctrl[] = { PCR3U0, PCR3L0, PCR3U1, PCR3L1, 0 }; +static const enum m68k_register fido_ctrl[] = { + SFC, DFC, USP, VBR, CAC, MBB, + 0 +}; #define cpu32_ctrl m68010_ctrl static const enum m68k_register *control_regs; @@ -421,7 +425,7 @@ static const struct m68k_cpu m68k_archs[] = {m68040, m68040_ctrl, "68040", 0}, {m68060, m68060_ctrl, "68060", 0}, {cpu32|m68881, cpu32_ctrl, "cpu32", 0}, - {cpu32|fido_a, cpu32_ctrl, "fidoa", 0}, + {cpu32|fido_a, fido_ctrl, "fidoa", 0}, {mcfisa_a|mcfhwdiv, NULL, "isaa", 0}, {mcfisa_a|mcfhwdiv|mcfisa_aa|mcfusp, NULL, "isaaplus", 0}, {mcfisa_a|mcfhwdiv|mcfisa_b|mcfusp, NULL, "isab", 0}, @@ -553,7 +557,7 @@ static const struct m68k_cpu m68k_cpus[] = {mcfisa_a|mcfisa_b|mcfhwdiv|mcfemac|mcfusp|cfloat, mcfv4e_ctrl, "5485", -1}, {mcfisa_a|mcfisa_b|mcfhwdiv|mcfemac|mcfusp|cfloat, mcfv4e_ctrl, "548x", 0}, - {cpu32|fido_a, cpu32_ctrl, "fido", 1}, + {cpu32|fido_a, fido_ctrl, "fido", 1}, {0,NULL,NULL, 0} }; @@ -3074,6 +3078,12 @@ m68k_ip (char *instring) case PCR3U1: tmpreg = 0xD0F; break; + case CAC: + tmpreg = 0xFFE; + break; + case MBB: + tmpreg = 0xFFF; + break; default: abort (); } @@ -3798,6 +3808,9 @@ static const struct init_entry init_table[] = { "rambar", RAMBAR }, /* mcf528x registers. */ { "mbar2", MBAR2 }, /* mcf5249 registers. */ + + { "cac", CAC }, /* fido registers. */ + { "mbb", MBB }, /* fido registers. */ /* End of control registers. */ { "ac", AC }, diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index cf7e3c9864..cc5ec75d9c 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2006-12-27 Kazu Hirata + + * m68k-dis.c (print_insn_arg): Add support for cac and mbb. + 2006-12-27 Kazu Hirata * m68k-opc.c (m68k_opcodes): Add sleep and trapx. diff --git a/opcodes/m68k-dis.c b/opcodes/m68k-dis.c index 14d624f99c..08a28384cd 100644 --- a/opcodes/m68k-dis.c +++ b/opcodes/m68k-dis.c @@ -650,7 +650,10 @@ print_insn_arg (const char *d, /* Should we be calling this psr like we do in case 'Y'? */ {"%mmusr",0x805}, - {"%urp", 0x806}, {"%srp", 0x807}, {"%pcr", 0x808}}; + {"%urp", 0x806}, {"%srp", 0x807}, {"%pcr", 0x808}, + + /* Fido added these. */ + {"%cac", 0xffe}, {"%mbb", 0xfff}}; val = fetch_arg (buffer, place, 12, info); for (regno = sizeof names / sizeof names[0] - 1; regno >= 0; regno--) -- 2.34.1