This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] NIOS2: Misc changes
- From: Sebastian Huber <sebastian dot huber at embedded-brains dot de>
- To: binutils at sourceware dot org
- Date: Sat, 9 Mar 2013 22:09:49 +0100
- Subject: [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