forked from OSchip/llvm-project
74 lines
1.5 KiB
ArmAsm
74 lines
1.5 KiB
ArmAsm
# RUN: llvm-mc -triple i386-linux-gnu %s| FileCheck %s
|
|
|
|
# This test checks the altmacro string delimiter '<' and '>'.
|
|
|
|
.altmacro
|
|
|
|
# Test #1:
|
|
# You can delimit strings with matching angle brackets '<' '>'.
|
|
# If an argument begins with '<' and ends with '>'.
|
|
# The argument is considered as a string.
|
|
|
|
# CHECK: simpleCheck:
|
|
.macro simple_check_0 name
|
|
\name:
|
|
addl $5,%eax
|
|
.endm
|
|
|
|
simple_check_0 <simpleCheck>
|
|
|
|
# Test #2:
|
|
# Except adding new string marks '<..>', a regular macro behavior is expected.
|
|
|
|
# CHECK: simpleCheck0:
|
|
# CHECK: addl $0, %eax
|
|
.macro concat string1 string2 string3
|
|
\string1\string2\string3:
|
|
addl $\string3, %eax
|
|
.endm
|
|
|
|
concat <simple>,<Check>,<0>
|
|
|
|
# Test #3:
|
|
# The altmacro cannot affect the regular less/greater behavior.
|
|
|
|
# CHECK: addl $-1, %eax
|
|
# CHECK: addl $0, %eax
|
|
|
|
.macro fun3 arg1 arg2
|
|
addl $\arg1,%eax
|
|
addl $\arg2,%eax
|
|
.endm
|
|
|
|
fun3 5<6 , 5>8
|
|
|
|
# Test #4:
|
|
# If a comma is present inside an angle brackets,
|
|
# the comma considered as a character and not as a separator.
|
|
# This check checks the ability to split the string to different
|
|
# arguments according to the use of the comma.
|
|
# Fun2 sees the comma as a character.
|
|
# Fun3 sees the comma as a separator.
|
|
|
|
# CHECK: addl $5, %eax
|
|
# CHECK: addl $6, %eax
|
|
.macro fun2 arg
|
|
fun3 \arg
|
|
.endm
|
|
|
|
fun2 <5,6>
|
|
|
|
# Test #5:
|
|
# If argument begin with '<' and there is no '>' to close it.
|
|
# A regular macro behavior is expected.
|
|
|
|
# CHECK: addl $4, %eax
|
|
.macro fun4 arg1 arg2
|
|
.if \arg2\arg1
|
|
addl $\arg2,%eax
|
|
.endif
|
|
.endm
|
|
|
|
fun4 <5,4
|
|
.noaltmacro
|