[PATCH] D95682: [X86] Fix disassembly of x86-64 GDTLS code sequence
Andrew Ng via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 2 03:35:15 PST 2021
This revision was automatically updated to reflect the committed changes.
Closed by commit rG94fedd266125: [X86] Fix disassembly of x86-64 GDTLS code sequence (authored by andrewng).
Changed prior to commit:
https://reviews.llvm.org/D95682?vs=320450&id=320735#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D95682/new/
https://reviews.llvm.org/D95682
Files:
llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
llvm/test/MC/Disassembler/X86/x86-64.txt
llvm/test/tools/llvm-objdump/X86/disassemble-gdtls.s
Index: llvm/test/tools/llvm-objdump/X86/disassemble-gdtls.s
===================================================================
--- /dev/null
+++ llvm/test/tools/llvm-objdump/X86/disassemble-gdtls.s
@@ -0,0 +1,19 @@
+# RUN: llvm-mc %s -filetype=obj -triple=x86_64 | llvm-objdump -d - | FileCheck %s
+
+# CHECK: <PR48901>:
+# TODO: Should display data16 prefixes.
+# CHECK-NEXT: 0: 66 48 8d 3d 00 00 00 00 leaq (%rip), %rdi # 8 <PR48901+0x8>
+# CHECK-NEXT: 8: 66 66 48 e8 00 00 00 00 callq 0x10 <PR48901+0x10>
+# CHECK-EMPTY:
+
+PR48901:
+ data16
+ leaq bar at TLSGD(%rip),%rdi
+ data16
+ data16
+ rex64
+ callq __tls_get_addr at PLT
+
+.section .tdata,"awT", at progbits
+bar:
+.long 42
Index: llvm/test/MC/Disassembler/X86/x86-64.txt
===================================================================
--- llvm/test/MC/Disassembler/X86/x86-64.txt
+++ llvm/test/MC/Disassembler/X86/x86-64.txt
@@ -329,8 +329,10 @@
# CHECK: callw 32767
0x66 0xe8 0xff 0x7f
-# CHECK: callw 32767
-0x66 0x66 0x48 0xe8 0xff 0x7f
+# TODO: Should display data16 prefixes.
+# CHECK-NOT: data16
+# CHECK: callq 32767
+0x66 0x66 0x48 0xe8 0xff 0x7f 0x00 0x00
# CHECK: jmp -32769
0xe9 0xff 0x7f 0xff 0xff
@@ -338,8 +340,10 @@
# CHECK: jmp 32767
0x66 0xe9 0xff 0x7f
+# TODO: Should display data16 prefixes.
+# CHECK-NOT: data16
# CHECK: jmp 32767
-0x66 0x66 0x48 0xe9 0xff 0x7f
+0x66 0x66 0x48 0xe9 0xff 0x7f 0x00 0x00
# CHECK: jo -32769
0x0f 0x80 0xff 0x7f 0xff 0xff
Index: llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
===================================================================
--- llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
+++ llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
@@ -492,6 +492,7 @@
insn->addressSize = (insn->hasAdSize ? 4 : 8);
insn->displacementSize = 4;
insn->immediateSize = 4;
+ insn->hasOpSize = false;
} else {
insn->registerSize = (insn->hasOpSize ? 2 : 4);
insn->addressSize = (insn->hasAdSize ? 4 : 8);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95682.320735.patch
Type: text/x-patch
Size: 2012 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210202/92578226/attachment.bin>
More information about the llvm-commits
mailing list