diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2013-06-08 10:22:55 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2013-06-08 10:22:55 +0000 |
commit | d301a56b4040e9f08152e414a94dcd5c79afddbb (patch) | |
tree | 3f5f247f3e17484b65836916ad44a58ff371b803 /gas | |
parent | 1edebdbff51987eb2cdfdcdce433458bc25fb9a6 (diff) | |
download | gdb-d301a56b4040e9f08152e414a94dcd5c79afddbb.zip gdb-d301a56b4040e9f08152e414a94dcd5c79afddbb.tar.gz gdb-d301a56b4040e9f08152e414a94dcd5c79afddbb.tar.bz2 |
gas/
2013-06-08 Catherine Moore <clm@codesourcery.com>
* config/tc-mips.c (is_opcode_valid): Build ASE mask.
(is_opcode_valid_16): Pass ase value to opcode_is_member.
(append_insn): Change INSN_xxxx to ASE_xxxx.
include/
2013-06-08 Catherine Moore <clm@codesourcery.com>
* opcode/mips.h (mips_opcode): Add ase field.
(INSN_ASE_MASK): Delete.
(INSN_DSP): Rename to ASE_DSP. Provide new value.
(INSN_DSPR2): Rename to ASE_DSPR2. Provide new value.
(INSN_MCU): Rename to ASE_MCU. Provide new value.
(INSN_MDMX): Rename to ASE_MDMX. Provide new value.
(INSN_MIPS3d): Rename to ASE_MIPS3D. Provide new value.
(INSN_MT): Rename to ASE_MT. Provide new value.
(INSN_SMARTMIPS): Rename to ASE_SMARTMIPS. Provide new value.
(INSN_VIRT): Rename to ASE_VIRT. Provide new value.
(INSN_VIRT64): Rename to ASE_VIRT64. Provide new value.
(opcode_is_member): Add ase argument. Check ase.
opcodes/
2013-06-08 Catherine Moore <clm@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
* micromips-opc.c (D32, D33, MC): Update definitions.
(micromips_opcodes): Initialize ase field.
* mips-dis.c (mips_arch_choice): Add ase field.
(mips_arch_choices): Initialize ase field.
(set_default_mips_dis_options): Declare and setup mips_ase.
* mips-opc.c (M3D, SMT, MX, IVIRT, IVIRT64, D32, D33, D64,
MT32, MC): Update definitions.
(mips_builtin_opcodes): Initialize ase field.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 31 |
2 files changed, 22 insertions, 15 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 5c63135..5e7964d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2013-06-08 Catherine Moore <clm@codesourcery.com> + + * config/tc-mips.c (is_opcode_valid): Build ASE mask. + (is_opcode_valid_16): Pass ase value to opcode_is_member. + (append_insn): Change INSN_xxxx to ASE_xxxx. + 2013-06-01 George Thomas <george.thomas@atmel.com> * gas/config/tc-avr.c: Change ISA for devices with USB support to diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 0e2e5f7..8ba290c 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -2247,37 +2247,38 @@ reglist_lookup (char **s, unsigned int types, unsigned int *reglistp) return ok && reglist != 0; } -/* Return TRUE if opcode MO is valid on the currently selected ISA and - architecture. Use is_opcode_valid_16 for MIPS16 opcodes. */ +/* Return TRUE if opcode MO is valid on the currently selected ISA, ASE + and architecture. Use is_opcode_valid_16 for MIPS16 opcodes. */ static bfd_boolean is_opcode_valid (const struct mips_opcode *mo) { int isa = mips_opts.isa; + int ase = 0; int fp_s, fp_d; if (mips_opts.ase_mdmx) - isa |= INSN_MDMX; + ase |= ASE_MDMX; if (mips_opts.ase_dsp) - isa |= INSN_DSP; + ase |= ASE_DSP; if (mips_opts.ase_dsp && ISA_SUPPORTS_DSP64_ASE) - isa |= INSN_DSP64; + ase |= ASE_DSP64; if (mips_opts.ase_dspr2) - isa |= INSN_DSPR2; + ase |= ASE_DSPR2; if (mips_opts.ase_mt) - isa |= INSN_MT; + ase |= ASE_MT; if (mips_opts.ase_mips3d) - isa |= INSN_MIPS3D; + ase |= ASE_MIPS3D; if (mips_opts.ase_smartmips) - isa |= INSN_SMARTMIPS; + ase |= ASE_SMARTMIPS; if (mips_opts.ase_mcu) - isa |= INSN_MCU; + ase |= ASE_MCU; if (mips_opts.ase_virt) - isa |= INSN_VIRT; + ase |= ASE_VIRT; if (mips_opts.ase_virt && ISA_SUPPORTS_VIRT64_ASE) - isa |= INSN_VIRT64; + ase |= ASE_VIRT64; - if (!opcode_is_member (mo, isa, mips_opts.arch)) + if (!opcode_is_member (mo, isa, ase, mips_opts.arch)) return FALSE; /* Check whether the instruction or macro requires single-precision or @@ -2309,7 +2310,7 @@ is_opcode_valid (const struct mips_opcode *mo) static bfd_boolean is_opcode_valid_16 (const struct mips_opcode *mo) { - return opcode_is_member (mo, mips_opts.isa, mips_opts.arch); + return opcode_is_member (mo, mips_opts.isa, 0, mips_opts.arch); } /* Return TRUE if the size of the microMIPS opcode MO matches one @@ -4395,7 +4396,7 @@ append_insn (struct mips_cl_insn *ip, expressionS *address_expr, && (mips_opts.at || mips_pic == NO_PIC) /* Don't relax BPOSGE32/64 as they have no complementing branches. */ - && !(ip->insn_mo->membership & (INSN_DSP64 | INSN_DSP))); + && !(ip->insn_mo->ase & (ASE_DSP64 | ASE_DSP))); if (!HAVE_CODE_COMPRESSION && address_expr |