summaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorCatherine Moore <clm@redhat.com>2010-05-26 12:59:54 +0000
committerCatherine Moore <clm@redhat.com>2010-05-26 12:59:54 +0000
commit18ba7290c2d0e92aa0c03e84c64e14f531e9f174 (patch)
tree0acc5295df76f851c495bf81794d6d7eb1fc44b3 /gas
parent4bf29ae9f64f7362fa11162f93856aa2b3031e75 (diff)
downloadbinutils-redhat-18ba7290c2d0e92aa0c03e84c64e14f531e9f174.tar.gz
gas/
* config/tc-mips.c (is_opcode_valid): Remove expansionp. (macro_build): Change invocation of is_opcode_valid. (mips_ip): Likewise. gas/testsuite/ * gas/mips/mips-no-jalx.l: Delete. * gas/mips/mips-no-jalx.s: Delete. * gas/mips/mips-jalx-2.d: New. * gas/mips/mips-jalx-2.s: New. * gas/mips/mips.exp (mips-jalx-2): Run new test. (mips-no-jalx): Remove deleted test. include/ * opcode/mips.h (INSN_MIPS16): Remove. opcodes/ * mips-dis.c (mips_arch): Remove INSN_MIPS16. * mips-opc.c (I16): Remove. (mips_builtin_op): Reclassify jalx.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-mips.c14
-rw-r--r--gas/testsuite/ChangeLog9
-rw-r--r--gas/testsuite/gas/mips/mips-jalx-2.d15
-rw-r--r--gas/testsuite/gas/mips/mips-jalx-2.s10
-rw-r--r--gas/testsuite/gas/mips/mips-no-jalx.l2
-rw-r--r--gas/testsuite/gas/mips/mips-no-jalx.s3
-rw-r--r--gas/testsuite/gas/mips/mips.exp2
8 files changed, 45 insertions, 16 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 80d1cdf0c0..d0be0a3e12 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2010-05-26 Catherine Moore <clm@codesourcery.com>
+
+ * config/tc-mips.c (is_opcode_valid): Remove expansionp.
+ (macro_build): Change invocation of is_opcode_valid.
+ (mips_ip): Likewise.
+
2010-05-25 Nick Clifton <nickc@redhat.com>
* Makefile.am (MOSTLYCLEANFILES): Fix typo.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index f901ae405e..9753a551f5 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -1817,11 +1817,10 @@ reg_lookup (char **s, unsigned int types, unsigned int *regnop)
}
/* Return TRUE if opcode MO is valid on the currently selected ISA and
- architecture. If EXPANSIONP is TRUE then this check is done while
- expanding a macro. Use is_opcode_valid_16 for MIPS16 opcodes. */
+ architecture. Use is_opcode_valid_16 for MIPS16 opcodes. */
static bfd_boolean
-is_opcode_valid (const struct mips_opcode *mo, bfd_boolean expansionp)
+is_opcode_valid (const struct mips_opcode *mo)
{
int isa = mips_opts.isa;
int fp_s, fp_d;
@@ -1841,11 +1840,6 @@ is_opcode_valid (const struct mips_opcode *mo, bfd_boolean expansionp)
if (mips_opts.ase_smartmips)
isa |= INSN_SMARTMIPS;
- /* For user code we don't check for mips_opts.mips16 since we want
- to allow jalx if -mips16 was specified on the command line. */
- if (expansionp ? mips_opts.mips16 : file_ase_mips16)
- isa |= INSN_MIPS16;
-
/* Don't accept instructions based on the ISA if the CPU does not implement
all the coprocessor insns. */
if (NO_ISA_COP (mips_opts.arch)
@@ -3638,7 +3632,7 @@ macro_build (expressionS *ep, const char *name, const char *fmt, ...)
macros will never generate MDMX, MIPS-3D, or MT instructions. */
if (strcmp (fmt, mo->args) == 0
&& mo->pinfo != INSN_MACRO
- && is_opcode_valid (mo, TRUE))
+ && is_opcode_valid (mo))
break;
++mo;
@@ -8776,7 +8770,7 @@ mips_ip (char *str, struct mips_cl_insn *ip)
gas_assert (strcmp (insn->name, str) == 0);
- ok = is_opcode_valid (insn, FALSE);
+ ok = is_opcode_valid (insn);
if (! ok)
{
if (insn + 1 < &mips_opcodes[NUMOPCODES]
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 5d2a4f3302..8620bf6318 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2010-05-26 Catherine Moore <clm@codesoucery.com>
+
+ * gas/mips/mips-no-jalx.l: Delete.
+ * gas/mips/mips-no-jalx.s: Delete.
+ * gas/mips/mips-jalx-2.d: New.
+ * gas/mips/mips-jalx-2.s: New.
+ * gas/mips/mips.exp (mips-jalx-2): Run new test.
+ (mips-no-jalx): Remove deleted test.
+
2010-05-25 Daniel Jacobowitz <dan@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Andrew Stubbs <ams@codesourcery.com>
diff --git a/gas/testsuite/gas/mips/mips-jalx-2.d b/gas/testsuite/gas/mips/mips-jalx-2.d
new file mode 100644
index 0000000000..fa8bfaceb5
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips-jalx-2.d
@@ -0,0 +1,15 @@
+#objdump: -d
+#as:
+#name: mips jalx-2
+
+.*: file format .*
+
+Disassembly of section .text:
+
+[ 0-9a-f]+ <text_sym>:
+[ 0-9a-f]+: 74000000 jalx 0 <.[^>]*>
+[ 0-9a-f]+: 00000000 nop
+
+[ 0-9a-f]+ <.[^>]*>:
+[ 0-9a-f]+: 6500 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mips-jalx-2.s b/gas/testsuite/gas/mips/mips-jalx-2.s
new file mode 100644
index 0000000000..17e1a24873
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips-jalx-2.s
@@ -0,0 +1,10 @@
+text_sym:
+ .text
+ jalx 1f
+
+ .set mips16
+ .align 1
+1: nop
+ .set nomips16
+ .align 2
+ .fill 8
diff --git a/gas/testsuite/gas/mips/mips-no-jalx.l b/gas/testsuite/gas/mips/mips-no-jalx.l
deleted file mode 100644
index 9233591bed..0000000000
--- a/gas/testsuite/gas/mips/mips-no-jalx.l
+++ /dev/null
@@ -1,2 +0,0 @@
-.*: Assembler messages:
-.*:3: Error: opcode not supported (at this ISA level|on this processor: .*) \(mips.*\) `jalx external_label'
diff --git a/gas/testsuite/gas/mips/mips-no-jalx.s b/gas/testsuite/gas/mips/mips-no-jalx.s
deleted file mode 100644
index 84cbafd17e..0000000000
--- a/gas/testsuite/gas/mips/mips-no-jalx.s
+++ /dev/null
@@ -1,3 +0,0 @@
-# Test the generation of jalx opcodes
- .set nomips16
- jalx external_label
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 34bb5ea47d..3a541fe152 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -526,6 +526,7 @@ if { [istarget mips*-*-vxworks*] } {
# Check jalx handling
run_dump_test "mips16-jalx"
run_dump_test "mips-jalx"
+ run_dump_test "mips-jalx-2"
# Check MIPS16 HI16/LO16 relocations
run_dump_test "mips16-hilo"
if $has_newabi {
@@ -533,7 +534,6 @@ if { [istarget mips*-*-vxworks*] } {
}
run_dump_test "mips16-hilo-match"
}
- run_list_test "mips-no-jalx" "-32"
run_dump_test "delay"
run_dump_test "nodelay"
run_dump_test "mips4010"