diff options
Diffstat (limited to 'llvm/test/MC/AsmParser/at-pseudo-variable.s')
-rw-r--r-- | llvm/test/MC/AsmParser/at-pseudo-variable.s | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/llvm/test/MC/AsmParser/at-pseudo-variable.s b/llvm/test/MC/AsmParser/at-pseudo-variable.s new file mode 100644 index 00000000000..b0966e13717 --- /dev/null +++ b/llvm/test/MC/AsmParser/at-pseudo-variable.s @@ -0,0 +1,64 @@ +# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s + +.macro A + add $1\@, %eax +.endm + +.macro B + sub $1\@, %eax +.endm + + A +# CHECK: addl $10, %eax + A +# CHECK: addl $11, %eax + B +# CHECK: subl $12, %eax + B +# CHECK: subl $13, %eax + +# The following uses of \@ are undocumented, but valid: +.irpc foo,234 + add $\foo\@, %eax +.endr +# CHECK: addl $24, %eax +# CHECK: addl $34, %eax +# CHECK: addl $44, %eax + +.irp reg,%eax,%ebx + sub $2\@, \reg +.endr +# CHECK: subl $24, %eax +# CHECK: subl $24, %ebx + +# Test that .irp(c) and .rep(t) do not increase \@. +# Only the use of A should increase \@, so we can test that it increases by 1 +# each time. + +.irpc foo,123 + sub $\foo, %eax +.endr + + A +# CHECK: addl $14, %eax + +.irp reg,%eax,%ebx + sub $4, \reg +.endr + + A +# CHECK: addl $15, %eax + +.rept 2 + sub $5, %eax +.endr + + A +# CHECK: addl $16, %eax + +.rep 3 + sub $6, %eax +.endr + + A +# CHECK: addl $17, %eax |