mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
4e2f16caa6
The second register is the index register and should only be %si or %di if used with a base register. And in that case the base register should be %bp or %bx. This makes us compatible with gas. We do still need to support both orders with Intel syntax which uses [bp+si] and [si+bp] llvm-svn: 335384
30 lines
834 B
ArmAsm
30 lines
834 B
ArmAsm
// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
|
|
|
|
.code64
|
|
movb $0x0, (%esi)
|
|
// CHECK: encoding: [0x67,0xc6,0x06,0x00]
|
|
movb $0x0, (%rsi)
|
|
// CHECK: encoding: [0xc6,0x06,0x00]
|
|
|
|
.code32
|
|
movb $0x0, (%si)
|
|
// CHECK: encoding: [0x67,0xc6,0x04,0x00]
|
|
movb $0x0, (%esi)
|
|
// CHECK: encoding: [0xc6,0x06,0x00]
|
|
movw $0x1234, (%si)
|
|
// CHECK: encoding: [0x67,0x66,0xc7,0x04,0x34,0x12]
|
|
movl $0x12345678, (%bx,%si,1)
|
|
// CHECK: encoding: [0x67,0xc7,0x00,0x78,0x56,0x34,0x12]
|
|
movw $0x1234, 0x5678(%bp)
|
|
// CHECK: encoding: [0x67,0x66,0xc7,0x86,0x78,0x56,0x34,0x12]
|
|
|
|
.code16
|
|
movb $0x0, (%si)
|
|
// CHECK: encoding: [0xc6,0x04,0x00]
|
|
movb $0x0, (%esi)
|
|
// CHECK: encoding: [0x67,0xc6,0x06,0x00]
|
|
movb $0x5a, (%bp,%di,1)
|
|
// CHECK: encoding: [0xc6,0x03,0x5a]
|
|
movb $0x5a, (%bp,%si,1)
|
|
// CHECK: encoding: [0xc6,0x02,0x5a]
|