2013-06-09 Sandra Loosemore <sandra@codesourcery.com>
authorSandra Loosemore <sandra@codesourcery.com>
Mon, 10 Jun 2013 01:04:42 +0000 (01:04 +0000)
committerSandra Loosemore <sandra@codesourcery.com>
Mon, 10 Jun 2013 01:04:42 +0000 (01:04 +0000)
opcodes/
* nios2-opc.c (nios2_builtin_opcodes): Give "trap" a type-"b"
argument.

gas/
* config/tc-nios2.c (nios2_parse_args):  Allow trap argument to
omitted.

gas/testsuite/
* gas/nios2/trap.s: Add additional test cases for optional
argument.
* gas/nios2/trap.d: Likewise.

gas/ChangeLog
gas/config/tc-nios2.c
gas/testsuite/ChangeLog
gas/testsuite/gas/nios2/trap.d
gas/testsuite/gas/nios2/trap.s
opcodes/ChangeLog
opcodes/nios2-opc.c

index 5e7964dd20444ea0bbb5ed00e45504d9062fa395..6c2d60faf334f8a2eef682fcbe4ed9f4d8a610f8 100644 (file)
@@ -1,3 +1,8 @@
+2013-06-09  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * config/tc-nios2.c (nios2_parse_args):  Allow trap argument to
+       omitted.
+
 2013-06-08  Catherine Moore  <clm@codesourcery.com>
 
        * config/tc-mips.c (is_opcode_valid):  Build ASE mask.
index 9f303e76083658462831dd310e9cabeaefd68b35..6c91fbe6b73a4473e6dc4c79486e47fb046c5596 100644 (file)
@@ -2078,7 +2078,11 @@ nios2_parse_args (nios2_insn_infoS *insn, char *argstr,
 
   parsed_args[i] = NULL;
 
-  if (*parsestr != '\0' && insn->insn_nios2_opcode->match != OP_MATCH_BREAK)
+  /* The argument to break and trap instructions is optional; complain
+     for other cases of missing arguments.  */
+  if (*parsestr != '\0'
+      && insn->insn_nios2_opcode->match != OP_MATCH_BREAK
+      && insn->insn_nios2_opcode->match != OP_MATCH_TRAP)
     as_bad (_("missing argument"));
 }
 
index c572d9c551d0fdd8e6c55fdce1b1aa49b7fbbb39..72a20ec12f4c77a438d8d3853ac58eb16c8d0e42 100644 (file)
@@ -1,3 +1,9 @@
+2013-06-09  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * gas/nios2/trap.s: Add additional test cases for optional
+       argument.
+       * gas/nios2/trap.d: Likewise.
+
 2013-05-31  H.J. Lu  <hongjiu.lu@intel.com>
 
        * gas/i386/size-3.d: Updated for text/data/bss section alignment
index d9d07f179f8042625bf8c991d66d5ba962582895..0712d86ea0479bafcc18ccd72bc8474e9f71c916 100644 (file)
@@ -4,4 +4,7 @@
 .*: +file format elf32-littlenios2
 
 Disassembly of section .text:
-0+0000 <[^>]*> 003b683a        trap
+0+0000 <[^>]*> 003b683a        trap    0
+0+0004 <[^>]*> 003b683a        trap    0
+0+0008 <[^>]*> 003b6ffa        trap    31
+0+000c <[^>]*> 003b6bba        trap    14
index 1eb3c7e890d3860c5e60c280ab1d5c01bbe0b74d..df260fa123148a0e666f8c5f52b11c383f71b23c 100644 (file)
@@ -1,3 +1,6 @@
-# Source file used to test the ret instructions
+# Source file used to test the trap instructions
 foo:
        trap
+       trap 0
+       trap 31
+       trap 14
index 35ce609b25d548588701dadafea3e4cae51cf52a..2f053850bdef35fce4034b011440b7e5ecd825dc 100644 (file)
@@ -1,3 +1,8 @@
+2013-06-09  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * nios2-opc.c (nios2_builtin_opcodes): Give "trap" a type-"b"
+       argument.
+
 2013-06-08  Catherine Moore  <clm@codesourcery.com>
            Richard Sandiford  <rdsandiford@googlemail.com>
 
index b2734bd91ef3984a359ac1b92f1c4413224a14bd..83cf1898aff4cf847583357723e64f774cbc1366 100644 (file)
@@ -385,7 +385,7 @@ const struct nios2_opcode nios2_builtin_opcodes[] =
    OP_MATCH_SUB, OP_MASK_ROPX | OP_MASK_ROP, 0, no_overflow},
   {"sync", "", "E", 0,
    OP_MATCH_SYNC, OP_MASK_SYNC, 0, no_overflow},
-  {"trap", "", "E", 0,
+  {"trap", "b", "b,E", 1,
    OP_MATCH_TRAP, OP_MASK_TRAP, 0, no_overflow},
   {"eret", "", "E", 0,
    OP_MATCH_ERET, OP_MASK, 0, no_overflow},