aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-nios2.c4
-rw-r--r--gas/testsuite/ChangeLog4
-rw-r--r--gas/testsuite/gas/nios2/break.d10
-rw-r--r--include/ChangeLog4
-rw-r--r--include/opcode/nios2.h7
6 files changed, 25 insertions, 9 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 92ad5df..b2c90ea 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-12 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-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
* config/tc-nios2.c (nios2_assemble_args_ds): New function.
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/ChangeLog b/gas/testsuite/ChangeLog
index a672651..9af9fa8 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2013-03-12 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * gas/nios2/break.d: Check instruction values.
+
2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
* gas/nios2/nios2.exp: Run wrprs.
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/ChangeLog b/include/ChangeLog
index a6722b6..200771d 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2013-03-12 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * opcode/nios2.h: Edit comment.
+
2013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
* opcode/nios2.h (OPX_WRPRS): New define.
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.