summaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorAndrew Bennett <andrew.bennett@imgtec.com>2015-03-13 22:42:55 +0000
committerAndrew Bennett <andrew.bennett@imgtec.com>2015-03-13 23:01:34 +0000
commit6914869aa73d6cd12121ed6b3e58e1564ef5575d (patch)
treee7c200b1ef71953a4a344e88b8e37d421e21119d /opcodes
parent21e20815a20606a858f626e09944f29ee5ebee82 (diff)
downloadbinutils-gdb-6914869aa73d6cd12121ed6b3e58e1564ef5575d.tar.gz
MIPS: Fix constraint issues with the R6 beqc and bnec instructions
opcodes/ * mips-opc.c (decode_mips_operand): Fix constraint issues with u and y operands. gas/testsuite/ * gas/mips/mips.exp: Added branch constraints testcase. * gas/mips/r6-branch-constraints.s: New test. * gas/mips/r6-branch-constraints.l: New test.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/mips-opc.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 7608570116e..17a5367c74d 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,10 @@
2015-03-13 Andrew Bennett <andrew.bennett@imgtec.com>
+ * mips-opc.c (decode_mips_operand): Fix constraint issues
+ with u and y operands.
+
+2015-03-13 Andrew Bennett <andrew.bennett@imgtec.com>
+
* mips-opc.c (mips_builtin_opcodes): Add evp and dvp instructions.
2015-03-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c
index f43f9f5bbf3..a0b0e26988f 100644
--- a/opcodes/mips-opc.c
+++ b/opcodes/mips-opc.c
@@ -48,11 +48,11 @@ decode_mips_operand (const char *p)
case 'd': SPECIAL (0, 0, REPEAT_DEST_REG);
case 's': SPECIAL (5, 21, NON_ZERO_REG);
case 't': SPECIAL (5, 16, NON_ZERO_REG);
- case 'u': PREV_CHECK (5, 16, TRUE, FALSE, FALSE, TRUE);
+ case 'u': PREV_CHECK (5, 16, TRUE, FALSE, FALSE, FALSE);
case 'v': PREV_CHECK (5, 16, TRUE, TRUE, FALSE, FALSE);
case 'w': PREV_CHECK (5, 16, FALSE, TRUE, TRUE, TRUE);
case 'x': PREV_CHECK (5, 21, TRUE, FALSE, FALSE, TRUE);
- case 'y': PREV_CHECK (5, 21, FALSE, TRUE, TRUE, FALSE);
+ case 'y': PREV_CHECK (5, 21, FALSE, TRUE, FALSE, FALSE);
case 'A': PCREL (19, 0, TRUE, 2, 2, FALSE, FALSE);
case 'B': PCREL (18, 0, TRUE, 3, 3, FALSE, FALSE);
}