summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/AsmParser/at-pseudo-variable.s
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/MC/AsmParser/at-pseudo-variable.s')
-rw-r--r--llvm/test/MC/AsmParser/at-pseudo-variable.s64
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
OpenPOWER on IntegriCloud