aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-mips.c4
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/mips/insn-opts.d18
-rw-r--r--gas/testsuite/gas/mips/insn-opts.s23
-rw-r--r--gas/testsuite/gas/mips/mips.exp1
6 files changed, 56 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 4f923ed..d246494 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2014-10-21 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * config/tc-mips.c (s_insn): Set file options.
+
2014-10-21 Jan Beulich <jbeulich@suse.com>
* read.c (HANDLE_CONDITIONAL_ASSEMBLY): New parameter "num_read".
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 8d4a80b..54442f4 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -16344,6 +16344,10 @@ s_cpadd (int ignore ATTRIBUTE_UNUSED)
static void
s_insn (int ignore ATTRIBUTE_UNUSED)
{
+ file_mips_check_options ();
+ file_ase_mips16 |= mips_opts.mips16;
+ file_ase_micromips |= mips_opts.micromips;
+
mips_mark_labels ();
demand_empty_rest_of_line ();
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index a79cd1c..4988b00 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2014-10-21 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * gas/mips/insn-opts.d: New test.
+ * gas/mips/insn-opts.s: New test source.
+ * gas/mips/mips.exp: Run the new test.
+
2014-10-21 Jan Beulich <jbeulich@suse.com>
* gas/gas/all/cond.s: Also test processing of leading double
diff --git a/gas/testsuite/gas/mips/insn-opts.d b/gas/testsuite/gas/mips/insn-opts.d
new file mode 100644
index 0000000..a61c95e
--- /dev/null
+++ b/gas/testsuite/gas/mips/insn-opts.d
@@ -0,0 +1,18 @@
+#objdump: -dtz -j .text --prefix-addresses --show-raw-insn
+#name: MIPS .insn default file options
+
+# Check that .insn at the beginning of assembly sees default file options
+# such as the ISA mode right.
+
+.*: +file format .*mips.*
+
+SYMBOL TABLE:
+0+000000 l d \.text 0+000000 \.text
+0+000000 g F \.text 0+000004 foo
+0+000004 g F \.text 0+000004 0x80 bar
+0+000008 g O \.text 0+000004 baz
+
+Disassembly of section \.text:
+0+000000 <foo> 00000000 nop
+0+000004 <bar> 0000 0000 nop
+0+000008 <baz> .*
diff --git a/gas/testsuite/gas/mips/insn-opts.s b/gas/testsuite/gas/mips/insn-opts.s
new file mode 100644
index 0000000..a9ece0b
--- /dev/null
+++ b/gas/testsuite/gas/mips/insn-opts.s
@@ -0,0 +1,23 @@
+ .text
+
+ .globl foo
+ .type foo, @function
+foo:
+ .insn
+ .dc.l 0
+ .size foo, . - foo
+
+ .set micromips
+
+ .globl bar
+ .type bar, @function
+bar:
+ .insn
+ .dc.l 0
+ .size bar, . - bar
+
+ .globl baz
+ .type baz, @object
+baz:
+ .dc.l 0
+ .size baz, . - baz
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 4afd367..5750b75 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -1134,6 +1134,7 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "align3"
run_dump_test "odd-float"
run_dump_test "ehword"
+ run_dump_test "insn-opts"
run_list_test_arches "mips-macro-ill-sfp" "-32 -msingle-float" \
[mips_arch_list_matching mips2]