mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
opcodes/loongarch: print unrecognized insn words with the .word directive
For better round-trip fidelity and readability in general. gas/ChangeLog: * testsuite/gas/loongarch/uleb128.d: Update test case. * testsuite/gas/loongarch/raw-insn.d: New test. * testsuite/gas/loongarch/raw-insn.s: Likewise. opcodes/ChangeLog: * loongarch-dis.c (disassemble_one): Print ".word" if !opc. Signed-off-by: WANG Xuerui <git@xen0n.name>
This commit is contained in:
parent
8b6fefadde
commit
6ad6615a79
11
gas/testsuite/gas/loongarch/raw-insn.d
Normal file
11
gas/testsuite/gas/loongarch/raw-insn.d
Normal file
@ -0,0 +1,11 @@
|
||||
#as:
|
||||
#objdump: -dr
|
||||
|
||||
.*:[ ]+file format .*
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+000 <target>:
|
||||
[ ]+0:[ ]+00000000[ ]+.word[ ]+0x00000000
|
||||
[ ]+4:[ ]+feedf00d[ ]+.word[ ]+0xfeedf00d
|
7
gas/testsuite/gas/loongarch/raw-insn.s
Normal file
7
gas/testsuite/gas/loongarch/raw-insn.s
Normal file
@ -0,0 +1,7 @@
|
||||
target:
|
||||
.word 0
|
||||
# Given how the LoongArch encoding space is apparently centrally-
|
||||
# managed and sequentially allocated in chunks of prefixes, it is
|
||||
# highly unlikely this would become a valid LoongArch instruction in
|
||||
# the foreseeable future.
|
||||
.word 0xfeedf00d
|
@ -8,29 +8,29 @@
|
||||
Disassembly of section .data:
|
||||
|
||||
00000000.* <L1-0x5>:
|
||||
[ ]+0:[ ]+80030201[ ]+0x80030201
|
||||
[ ]+0:[ ]+80030201[ ]+\.word[ ]+0x80030201
|
||||
[ ]+3:[ ]+R_LARCH_ADD_ULEB128[ ]+L2
|
||||
[ ]+3:[ ]+R_LARCH_SUB_ULEB128[ ]+L1
|
||||
[ ]+\.\.\.
|
||||
|
||||
0000000000000005[ ]+<L1>:
|
||||
[ ]+\.\.\.
|
||||
[ ]+81:[ ]+ff040000[ ]+0xff040000
|
||||
[ ]+81:[ ]+ff040000[ ]+\.word[ ]+0xff040000
|
||||
[ ]+85:[ ]+cacop[ ]+0x1f,[ ]+\$t3,[ ]+1
|
||||
|
||||
0000000000000086[ ]+<L2>:
|
||||
[ ]+86:[ ]+07060005[ ]+0x07060005
|
||||
[ ]+8a:[ ]+0x00008080
|
||||
[ ]+86:[ ]+07060005[ ]+\.word[ ]+0x07060005
|
||||
[ ]+8a:[ ]+\.word[ ]+0x00008080
|
||||
[ ]+8a:[ ]+R_LARCH_ADD_ULEB128[ ]+L4
|
||||
[ ]+8a:[ ]+R_LARCH_SUB_ULEB128[ ]+L3
|
||||
|
||||
000000000000008d[ ]+<L3>:
|
||||
[ ]+\.\.\.
|
||||
[ ]+4089:[ ]+ff080000[ ]+0xff080000
|
||||
[ ]+408d:[ ]+0x09ffffff
|
||||
[ ]+4089:[ ]+ff080000[ ]+\.word[ ]+0xff080000
|
||||
[ ]+408d:[ ]+\.word[ ]+0x09ffffff
|
||||
|
||||
0000000000004090[ ]+<L4>:
|
||||
[ ]+4090:[ ]+09090909[ ]+0x09090909
|
||||
[ ]+4094:[ ]+09090909[ ]+0x09090909
|
||||
[ ]+4098:[ ]+09090909[ ]+0x09090909
|
||||
[ ]+409c:[ ]+09090909[ ]+0x09090909
|
||||
[ ]+4090:[ ]+09090909[ ]+\.word[ ]+0x09090909
|
||||
[ ]+4094:[ ]+09090909[ ]+\.word[ ]+0x09090909
|
||||
[ ]+4098:[ ]+09090909[ ]+\.word[ ]+0x09090909
|
||||
[ ]+409c:[ ]+09090909[ ]+\.word[ ]+0x09090909
|
||||
|
@ -259,6 +259,7 @@ disassemble_one (insn_t insn, struct disassemble_info *info)
|
||||
if (!opc)
|
||||
{
|
||||
info->insn_type = dis_noninsn;
|
||||
info->fprintf_styled_func (info->stream, dis_style_assembler_directive, ".word\t\t");
|
||||
info->fprintf_styled_func (info->stream, dis_style_immediate, "0x%08x", insn);
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user