From efa30ac3c504d24c55733a627abe49bd0368cf67 Mon Sep 17 00:00:00 2001 From: Hafiz Abid Qadeer Date: Wed, 24 Mar 2021 21:24:35 +0000 Subject: [NIOS2] Fix disassembly of br.n instruction. The code was checking wrong bit for sign extension. It caused it to zero-extend instead of sign-extend the immediate value. 2021-03-25 Abid Qadeer opcodes/ * nios2-dis.c (nios2_print_insn_arg): Fix sign extension of immediate in br.n instruction. gas/ * testsuite/gas/nios2/brn.s: New. * testsuite/gas/nios2/brn.d: New. --- opcodes/nios2-dis.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'opcodes/nios2-dis.c') diff --git a/opcodes/nios2-dis.c b/opcodes/nios2-dis.c index e1cc7169654..794d700c3e5 100644 --- a/opcodes/nios2-dis.c +++ b/opcodes/nios2-dis.c @@ -694,7 +694,7 @@ nios2_print_insn_arg (const char *argptr, switch (op->format) { case iw_I10_type: - o = (((GET_IW_I10_IMM10 (opcode) & 0x3ff) ^ 0x400) - 0x400) * 2; + o = (((GET_IW_I10_IMM10 (opcode) & 0x3ff) ^ 0x200) - 0x200) * 2; break; default: bad_opcode (op); -- cgit v1.2.1