1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s
.data
FOO STRUCT
a BYTE ?
b BYTE ?
c BYTE ?
d BYTE ?
FOO ENDS
BAR STRUCT
e WORD ?
f WORD ?
BAR ENDS
var FOO <>
.code
t1:
mov al, var.a
mov al, var. b
mov al, var .c
mov al, var . d
; CHECK-LABEL: t1:
; CHECK: mov al, byte ptr [rip + var]
; CHECK: mov al, byte ptr [rip + var+1]
; CHECK: mov al, byte ptr [rip + var+2]
; CHECK: mov al, byte ptr [rip + var+3]
t2:
mov eax, FOO.a
mov ax, FOO. b
mov al, FOO .c
mov eax, FOO . d
; CHECK-LABEL: t2:
; CHECK: mov eax, 0
; CHECK: mov ax, 1
; CHECK: mov al, 2
; CHECK: mov eax, 3
t3:
mov al, BYTE PTR var[FOO.c]
; CHECK-LABEL: t3:
; CHECK: mov al, byte ptr [rip + var+2]
t4:
mov ax, var.BAR.f
mov ax, var .BAR.f
mov ax, var. BAR.f
mov ax, var.BAR .f
mov ax, var.BAR. f
mov ax, var . BAR . f
; CHECK-LABEL: t4:
; CHECK: mov ax, word ptr [rip + var+2]
; CHECK: mov ax, word ptr [rip + var+2]
; CHECK: mov ax, word ptr [rip + var+2]
; CHECK: mov ax, word ptr [rip + var+2]
; CHECK: mov ax, word ptr [rip + var+2]
; CHECK: mov ax, word ptr [rip + var+2]
END
|