mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
9fa4853855
In MASM, the ifdef family of directives treats its argument literally, without expanding it as a text macro. Add support for this, and also replace the special handling that was previously used for echo. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D104196
64 lines
916 B
NASM
64 lines
916 B
NASM
; RUN: llvm-ml -filetype=s %s /Fo - /DT1=test1 /D T2=test2 /Dtest5=def /Dtest6 | FileCheck %s
|
|
|
|
.code
|
|
|
|
t1:
|
|
ret
|
|
; CHECK-NOT: t1:
|
|
; CHECK-LABEL: test1:
|
|
; CHECK-NOT: t1:
|
|
|
|
t2:
|
|
ret
|
|
; CHECK-NOT: t2:
|
|
; CHECK-LABEL: test2:
|
|
; CHECK-NOT: t2:
|
|
|
|
t3:
|
|
ifdef t1
|
|
xor eax, eax
|
|
endif
|
|
ret
|
|
; CHECK-LABEL: t3:
|
|
; CHECK: xor eax, eax
|
|
; CHECK: ret
|
|
|
|
t4:
|
|
ifdef undefined
|
|
xor eax, eax
|
|
elseifdef t2
|
|
xor ebx, ebx
|
|
endif
|
|
ret
|
|
; CHECK-LABEL: t4:
|
|
; CHECK-NOT: xor eax, eax
|
|
; CHECK: xor ebx, ebx
|
|
; CHECK: ret
|
|
|
|
% t5_original BYTE "&test5"
|
|
; CHECK-LABEL: t5_original:
|
|
; CHECK-NEXT: .byte 100
|
|
; CHECK-NEXT: .byte 101
|
|
; CHECK-NEXT: .byte 102
|
|
|
|
test5 textequ <redef>
|
|
|
|
% t5_changed BYTE "&test5"
|
|
; CHECK-LABEL: t5_changed:
|
|
; CHECK-NEXT: .byte 114
|
|
; CHECK-NEXT: .byte 101
|
|
; CHECK-NEXT: .byte 100
|
|
; CHECK-NEXT: .byte 101
|
|
; CHECK-NEXT: .byte 102
|
|
|
|
t6:
|
|
ifdef test6
|
|
xor eax, eax
|
|
endif
|
|
ret
|
|
; CHECK-LABEL: t6:
|
|
; CHECK: xor eax, eax
|
|
; CHECK: ret
|
|
|
|
end
|