mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
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
This commit is contained in:
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user