llvm-6502/test/MC/AsmParser/at-pseudo-variable-bad.s
Toma Tabacu 0b5a15b779 [MC] [IAS] Add support for the \@ .macro pseudo-variable.
Summary:
When used, it is substituted with the number of .macro instantiations we've done up to that point in time.
So if this is the 1st time we've instantiated a .macro (any .macro, regardless of name), \@ will instantiate to 0, if it's the 2nd .macro instantiation, it will instantiate to 1 etc.

It can only be used inside a .macro definition, an .irp definition or an .irpc definition (those last 2 uses are undocumented).

Reviewers: echristo, rafael

Reviewed By: rafael

Subscribers: dsanders, llvm-commits

Differential Revision: http://reviews.llvm.org/D9197

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235862 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-27 10:50:29 +00:00

24 lines
583 B
ArmAsm

# RUN: not llvm-mc -triple i386-unknown-unknown < %s 2>&1 | FileCheck %s
add $1\@, %eax
# CHECK: :[[@LINE-1]]:8: error: unexpected token in argument list
.macro A @
mov %eax, %eax
.endm
# CHECK: :[[@LINE-3]]:11: error: expected identifier in '.macro' directive
.rept 2
addi $8, $8, \@
.endr
# CHECK: error: unknown token in expression
# CHECK: :[[@LINE-4]]:1: note: while in macro instantiation
# CHECK-NEXT: .rept 2
.rep 3
addi $9, $9, \@
.endr
# CHECK: error: unknown token in expression
# CHECK: :[[@LINE-4]]:1: note: while in macro instantiation
# CHECK-NEXT: .rep 3