mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
36938cabf0
"Unambiguous" is is in particular taking as reference the assembler, which also accepts certain insns - despite them allowing for varying operand size, and hence in principle being ambiguous - without any suffix. For example, from the very beginning of the life of x86-64 I had trouble understanding why a plain and simple RET had to be printed as RETQ. In case someone really used the 16-bit form, RETW disambiguates the two quite fine.
36 lines
1.6 KiB
Plaintext
36 lines
1.6 KiB
Plaintext
#objdump: -dwrj.text
|
|
#target: x86_64-*-*
|
|
|
|
.*: +file format elf.*-x86-64.*
|
|
|
|
Disassembly of section .text:
|
|
|
|
#...
|
|
[0-9a-f]+ <check>:
|
|
+[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp
|
|
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <get_func>
|
|
+[a-f0-9]+: 48 81 f8 ([0-9a-f]{2} ){4}[ ]+cmp \$0x[0-9a-f]+,%rax
|
|
+[a-f0-9]+: 75 34 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
|
|
+[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <func_p>
|
|
+[a-f0-9]+: 75 2b jne [0-9a-f]+ <check\+0x[0-9a-f]+>
|
|
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <func>
|
|
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
|
|
+[a-f0-9]+: 75 1e jne [0-9a-f]+ <check\+0x[0-9a-f]+>
|
|
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <call_func>
|
|
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
|
|
+[a-f0-9]+: 75 11 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
|
|
+[a-f0-9]+: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[a-f0-9]+\(%rip\),%rdi +# [a-f0-9]+.*
|
|
+[a-f0-9]+: 48 83 c4 08 add \$0x8,%rsp
|
|
+[a-f0-9]+: e9 ([0-9a-f]{2} ){4}[ ]+jmp [a-f0-9]+ <.*puts.*>
|
|
+[a-f0-9]+: 90 nop
|
|
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <abort>
|
|
#...
|
|
[0-9a-f]+ <get_func>:
|
|
+[a-f0-9]+: 4(0|8) c7 c0 ([0-9a-f]{2} ){4}[ ]+(rex |)mov +\$0x[0-9a-f]+,%(e|r)ax
|
|
+[a-f0-9]+: c3 ret *
|
|
#...
|
|
[0-9a-f]+ <call_func>:
|
|
+[a-f0-9]+: e9 ([0-9a-f]{2} ){4}[ ]+jmp [a-f0-9]+ <func>
|
|
+[a-f0-9]+: 90 nop
|
|
#pass
|