[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 <abidh@codesourcery.com> 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.
This commit is contained in:
parent
5e74b4959b
commit
efa30ac3c5
@ -1,3 +1,8 @@
|
|||||||
|
2021-03-25 Abid Qadeer <abidh@codesourcery.com>
|
||||||
|
|
||||||
|
* testsuite/gas/nios2/brn.d: New.
|
||||||
|
* testsuite/gas/nios2/brn.d: New.
|
||||||
|
|
||||||
2021-03-25 Jan Beulich <jbeulich@suse.com>
|
2021-03-25 Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
* config/tc-i386.c (match_template): Use t instead of i.tm.
|
* config/tc-i386.c (match_template): Use t instead of i.tm.
|
||||||
|
10
gas/testsuite/gas/nios2/brn.d
Normal file
10
gas/testsuite/gas/nios2/brn.d
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#objdump: -dr --prefix-addresses --show-raw-insn
|
||||||
|
#name: NIOS2 br.n
|
||||||
|
#as: -march=r2
|
||||||
|
|
||||||
|
.*: +file format elf32-littlenios2
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
0+0000 <[^>]*> c4000020 nop
|
||||||
|
0+0004 <[^>]*> ff43 br.n 00000000 <foo>
|
||||||
|
...
|
4
gas/testsuite/gas/nios2/brn.s
Normal file
4
gas/testsuite/gas/nios2/brn.s
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Source file used to test the br.n instructions
|
||||||
|
foo:
|
||||||
|
nop
|
||||||
|
br.n foo
|
@ -1,3 +1,8 @@
|
|||||||
|
2021-03-25 Abid Qadeer <abidh@codesourcery.com>
|
||||||
|
|
||||||
|
* nios2-dis.c (nios2_print_insn_arg): Fix sign extension of
|
||||||
|
immediate in br.n instruction.
|
||||||
|
|
||||||
2021-03-25 Jan Beulich <jbeulich@suse.com>
|
2021-03-25 Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
* i386-dis.c (XMGatherD, VexGatherD): New.
|
* i386-dis.c (XMGatherD, VexGatherD): New.
|
||||||
|
@ -694,7 +694,7 @@ nios2_print_insn_arg (const char *argptr,
|
|||||||
switch (op->format)
|
switch (op->format)
|
||||||
{
|
{
|
||||||
case iw_I10_type:
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
bad_opcode (op);
|
bad_opcode (op);
|
||||||
|
Loading…
Reference in New Issue
Block a user