This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] NIOS2: Misc changes


I do not have commit access.  If someone approves this patch, please
commit it also.

2013-03-09  Sebastian Huber <sebastian.huber@embedded-brains.de>

    * opcode/nios2.h: Edit comment.

2013-03-09  Sebastian Huber <sebastian.huber@embedded-brains.de>

    * config/tc-nios2.c (nios2_consume_arg): Delete 'k' case.  Add 'o'
    case.  Add default BAD_CASE to switch.

2013-03-09  Sebastian Huber <sebastian.huber@embedded-brains.de>

    * gas/nios2/break.d: Check instruction values.
---
 gas/config/tc-nios2.c           |    4 +++-
 gas/testsuite/gas/nios2/break.d |   10 +++++-----
 include/opcode/nios2.h          |    7 ++++---
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/gas/config/tc-nios2.c b/gas/config/tc-nios2.c
index d669c60..81caf86 100644
--- a/gas/config/tc-nios2.c
+++ b/gas/config/tc-nios2.c
@@ -1981,14 +1981,16 @@ nios2_consume_arg (nios2_insn_infoS *insn, char *argstr, const char *parsestr)
       break;
     case 'm':
     case 'j':
-    case 'k':
     case 'l':
     case 'b':
       /* We can't have %hi, %lo or %hiadj here.  */
       if (*argstr == '%')
 	as_bad (_("badly formed expression near %s"), argstr);
       break;
+    case 'o':
+      break;
     default:
+      BAD_CASE (*parsestr);
       break;
     }
 
diff --git a/gas/testsuite/gas/nios2/break.d b/gas/testsuite/gas/nios2/break.d
index be487bb..8d4853b 100644
--- a/gas/testsuite/gas/nios2/break.d
+++ b/gas/testsuite/gas/nios2/break.d
@@ -1,12 +1,12 @@
-#objdump: -dr --prefix-addresses
+#objdump: -dr --prefix-addresses --show-raw-insn
 #name: NIOS2 break
 
 .*: +file format elf32-littlenios2
 
 Disassembly of section .text:
-0+0000 <[^>]*> break	0
-0+0004 <[^>]*> break	0
-0+0008 <[^>]*> break	31
-0+000c <[^>]*> break	14
+0+0000 <[^>]*> 003da03a 	break	0
+0+0004 <[^>]*> 003da03a 	break	0
+0+0008 <[^>]*> 003da7fa 	break	31
+0+000c <[^>]*> 003da3ba 	break	14
 
 
diff --git a/include/opcode/nios2.h b/include/opcode/nios2.h
index 3405f55..5f6cf6e 100644
--- a/include/opcode/nios2.h
+++ b/include/opcode/nios2.h
@@ -48,15 +48,16 @@ enum overflow_type
 
    The args field is a string describing the operands.  The following
    letters can appear in the args:
-     c - a 5-bit control register index or break opcode
+     c - a 5-bit control register index
      d - a 5-bit destination register index
      s - a 5-bit left source register index
      t - a 5-bit right source register index
      i - a 16-bit signed immediate
      u - a 16-bit unsigned immediate
+     o - a 16-bit signed program counter relative offset
      j - a 5-bit unsigned immediate
-     k - a 6-bit unsigned immediate
-     l - an 8-bit unsigned immediate
+     b - a 5-bit break instruction constant
+     l - a 8-bit custom instruction constant
      m - a 26-bit unsigned immediate
    Literal ',', '(', and ')' characters may also appear in the args as
    delimiters.
-- 
1.7.10.4


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]