summaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@nildram.co.uk>2013-06-08 10:22:55 +0000
committerRichard Sandiford <rsandifo@nildram.co.uk>2013-06-08 10:22:55 +0000
commita3cb77a956054f79112a24068f8f488010b97ec5 (patch)
tree9d90821ad9840fe9461cb3033208e495f8c0d6aa /gas
parente93f4abd85660649effbccf056d3b9fd0f2b7d7a (diff)
downloadbinutils-redhat-a3cb77a956054f79112a24068f8f488010b97ec5.tar.gz
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/ChangeLog6
-rw-r--r--gas/config/tc-mips.c31
2 files changed, 22 insertions, 15 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 5c631351ac..5e7964dd20 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 0e2e5f7cc7..8ba290ca33 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