| # 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 |