diff options
author | Craig Topper <craig.topper@gmail.com> | 2013-08-25 22:23:38 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2013-08-25 22:23:38 +0000 |
commit | a4959f3f6eb9b6ab3cbbe085a2797208682e96c6 (patch) | |
tree | 0bb606cb8e2250fe925ca7af32b9b8ab1ad1a9ac /test/MC/Disassembler/X86 | |
parent | f27c35347aa9fdd36c4ed6268380e2574ccfc87f (diff) | |
download | llvm-a4959f3f6eb9b6ab3cbbe085a2797208682e96c6.tar.gz llvm-a4959f3f6eb9b6ab3cbbe085a2797208682e96c6.tar.bz2 llvm-a4959f3f6eb9b6ab3cbbe085a2797208682e96c6.tar.xz |
First round of fixes for the x86 fixes for the x86 move accumulator from/to memory offset instructions.
-Assembly parser now properly check the size of the memory operation specified in intel syntax. So 'mov word ptr [5], al' is no longer accepted.
-x86-32 disassembly of these instructions no longer sign extends the 32-bit address immediate based on size.
-Intel syntax printing prints the ptr size and places brackets around the address immediate.
Known remaining issues with these instructions:
-Segment override prefix is not supported. PR16962 and PR16961.
-Immediate size should be changed by address size prefix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189201 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/Disassembler/X86')
-rw-r--r-- | test/MC/Disassembler/X86/intel-syntax-32.txt | 26 | ||||
-rw-r--r-- | test/MC/Disassembler/X86/intel-syntax.txt | 30 | ||||
-rw-r--r-- | test/MC/Disassembler/X86/x86-32.txt | 18 |
3 files changed, 70 insertions, 4 deletions
diff --git a/test/MC/Disassembler/X86/intel-syntax-32.txt b/test/MC/Disassembler/X86/intel-syntax-32.txt index 08bae6ec67..2298823604 100644 --- a/test/MC/Disassembler/X86/intel-syntax-32.txt +++ b/test/MC/Disassembler/X86/intel-syntax-32.txt @@ -1,13 +1,31 @@ # RUN: llvm-mc --disassemble %s -triple=i386 --output-asm-variant=1 | FileCheck %s -# CHECK: sgdt +# CHECK: sgdt opaque ptr [eax] 0x0f 0x01 0x00 -# CHECK: sidt +# CHECK: sidt opaque ptr [eax] 0x0f 0x01 0x08 -# CHECK: lgdt +# CHECK: lgdt opaque ptr [eax] 0x0f 0x01 0x10 -# CHECK: lidt +# CHECK: lidt opaque ptr [eax] 0x0f 0x01 0x18 + +# CHECK: mov al, byte ptr [878082192] +0xa0 0x90 0x78 0x56 0x34 + +# CHECK: mov ax, word ptr [878082192] +0x66 0xa1 0x90 0x78 0x56 0x34 + +# CHECK: mov eax, dword ptr [878082192] +0xa1 0x90 0x78 0x56 0x34 + +# CHECK: mov byte ptr [878082192], al +0xa2 0x90 0x78 0x56 0x34 + +# CHECK: mov word ptr [878082192], ax +0x66 0xa3 0x90 0x78 0x56 0x34 + +# CHECK: mov dword ptr [878082192], eax +0xa3 0x90 0x78 0x56 0x34 diff --git a/test/MC/Disassembler/X86/intel-syntax.txt b/test/MC/Disassembler/X86/intel-syntax.txt index 6c0c239fb8..6a63102eaa 100644 --- a/test/MC/Disassembler/X86/intel-syntax.txt +++ b/test/MC/Disassembler/X86/intel-syntax.txt @@ -119,3 +119,33 @@ # CHECK: xsaveopt64 opaque ptr [rax] 0x48 0x0f 0xae 0x30 + +# CHECK: movabs al, byte ptr [-6066930261531658096] +0xa0 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab + +# CHECK: movabs al, byte ptr [-6066930261531658096] +0x48 0xa0 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab + +# CHECK: movabs ax, word ptr [-6066930261531658096] +0x66 0xa1 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab + +# CHECK: movabs eax, dword ptr [-6066930261531658096] +0xa1 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab + +# CHECK: movabs rax, qword ptr [-6066930261531658096] +0x48 0xa1 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab + +# CHECK: movabs byte ptr [-6066930261531658096], al +0xa2 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab + +# CHECK: movabs byte ptr [-6066930261531658096], al +0x48 0xa2 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab + +# CHECK: movabs word ptr [-6066930261531658096], ax +0x66 0xa3 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab + +# CHECK: movabs dword ptr [-6066930261531658096], eax +0xa3 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab + +# CHECK: movabs qword ptr [-6066930261531658096], rax +0x48 0xa3 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab diff --git a/test/MC/Disassembler/X86/x86-32.txt b/test/MC/Disassembler/X86/x86-32.txt index 76d67d352c..d53da5b7d2 100644 --- a/test/MC/Disassembler/X86/x86-32.txt +++ b/test/MC/Disassembler/X86/x86-32.txt @@ -648,3 +648,21 @@ # CHECK: adoxl (%eax), %eax 0xf3 0x0f 0x38 0xf6 0x00 + +# CHECK: movb 878082192, %al +0xa0 0x90 0x78 0x56 0x34 + +# CHECK: movw 878082192, %ax +0x66 0xa1 0x90 0x78 0x56 0x34 + +# CHECK: movl 878082192, %eax +0xa1 0x90 0x78 0x56 0x34 + +# CHECK: movb %al, 878082192 +0xa2 0x90 0x78 0x56 0x34 + +# CHECK: movw %ax, 878082192 +0x66 0xa3 0x90 0x78 0x56 0x34 + +# CHECK: movl %eax, 878082192 +0xa3 0x90 0x78 0x56 0x34 |