diff options
author | Andrew Bennett <andrew.bennett@imgtec.com> | 2015-03-13 22:42:55 +0000 |
---|---|---|
committer | Andrew Bennett <andrew.bennett@imgtec.com> | 2015-03-13 23:01:34 +0000 |
commit | 6914869aa73d6cd12121ed6b3e58e1564ef5575d (patch) | |
tree | e7c200b1ef71953a4a344e88b8e37d421e21119d /opcodes | |
parent | 21e20815a20606a858f626e09944f29ee5ebee82 (diff) | |
download | binutils-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/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/mips-opc.c | 4 |
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); } |