1*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker.macro A 4*9880d681SAndroid Build Coastguard Worker add $1\@, %eax 5*9880d681SAndroid Build Coastguard Worker.endm 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker.macro B 8*9880d681SAndroid Build Coastguard Worker sub $1\@, %eax 9*9880d681SAndroid Build Coastguard Worker.endm 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker A 12*9880d681SAndroid Build Coastguard Worker# CHECK: addl $10, %eax 13*9880d681SAndroid Build Coastguard Worker A 14*9880d681SAndroid Build Coastguard Worker# CHECK: addl $11, %eax 15*9880d681SAndroid Build Coastguard Worker B 16*9880d681SAndroid Build Coastguard Worker# CHECK: subl $12, %eax 17*9880d681SAndroid Build Coastguard Worker B 18*9880d681SAndroid Build Coastguard Worker# CHECK: subl $13, %eax 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker# The following uses of \@ are undocumented, but valid: 21*9880d681SAndroid Build Coastguard Worker.irpc foo,234 22*9880d681SAndroid Build Coastguard Worker add $\foo\@, %eax 23*9880d681SAndroid Build Coastguard Worker.endr 24*9880d681SAndroid Build Coastguard Worker# CHECK: addl $24, %eax 25*9880d681SAndroid Build Coastguard Worker# CHECK: addl $34, %eax 26*9880d681SAndroid Build Coastguard Worker# CHECK: addl $44, %eax 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Worker.irp reg,%eax,%ebx 29*9880d681SAndroid Build Coastguard Worker sub $2\@, \reg 30*9880d681SAndroid Build Coastguard Worker.endr 31*9880d681SAndroid Build Coastguard Worker# CHECK: subl $24, %eax 32*9880d681SAndroid Build Coastguard Worker# CHECK: subl $24, %ebx 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker# Test that .irp(c) and .rep(t) do not increase \@. 35*9880d681SAndroid Build Coastguard Worker# Only the use of A should increase \@, so we can test that it increases by 1 36*9880d681SAndroid Build Coastguard Worker# each time. 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Worker.irpc foo,123 39*9880d681SAndroid Build Coastguard Worker sub $\foo, %eax 40*9880d681SAndroid Build Coastguard Worker.endr 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Worker A 43*9880d681SAndroid Build Coastguard Worker# CHECK: addl $14, %eax 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker.irp reg,%eax,%ebx 46*9880d681SAndroid Build Coastguard Worker sub $4, \reg 47*9880d681SAndroid Build Coastguard Worker.endr 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Worker A 50*9880d681SAndroid Build Coastguard Worker# CHECK: addl $15, %eax 51*9880d681SAndroid Build Coastguard Worker 52*9880d681SAndroid Build Coastguard Worker.rept 2 53*9880d681SAndroid Build Coastguard Worker sub $5, %eax 54*9880d681SAndroid Build Coastguard Worker.endr 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Worker A 57*9880d681SAndroid Build Coastguard Worker# CHECK: addl $16, %eax 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Worker.rep 3 60*9880d681SAndroid Build Coastguard Worker sub $6, %eax 61*9880d681SAndroid Build Coastguard Worker.endr 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker A 64*9880d681SAndroid Build Coastguard Worker# CHECK: addl $17, %eax 65