96 lines · plain
1# RUN: rm -rf %t && split-file %s %t && cd %t2# RUN: llvm-mc -triple i386 a.s | FileCheck %s3# RUN: llvm-mc -triple i386 b.s | FileCheck %s --check-prefix=CHECK24 5#--- a.s6.macro A7 add $1\@, %eax8 add $2\+, %eax9.endm10 11.macro B12 sub $1\@, %eax13 sub $2\+, %eax14.endm15 16 A17# CHECK: addl $10, %eax18# CHECK-NEXT: addl $20, %eax19 A20# CHECK: addl $11, %eax21# CHECK-NEXT: addl $21, %eax22 B23# CHECK: subl $12, %eax24# CHECK-NEXT: subl $20, %eax25 B26# CHECK: subl $13, %eax27# CHECK-NEXT: subl $21, %eax28 29# The following uses of \@ are undocumented, but valid:30.irpc foo,23431 add $\foo\@, %eax32.endr33# CHECK: addl $24, %eax34# CHECK-NEXT: addl $34, %eax35# CHECK-NEXT: addl $44, %eax36 37.irp reg,%eax,%ebx38 sub $2\@, \reg39.endr40# CHECK: subl $24, %eax41# CHECK-NEXT: subl $24, %ebx42 43# Test that .irp(c) and .rep(t) do not increase \@.44# Only the use of A should increase \@, so we can test that it increases by 145# each time.46 47.irpc foo,12348 sub $\foo, %eax49.endr50 51 A52# CHECK: addl $14, %eax53 54.irp reg,%eax,%ebx55 sub $4, \reg56.endr57 58 A59# CHECK: addl $15, %eax60 61.rept 262 sub $5, %eax63.endr64 65 A66# CHECK: addl $16, %eax67 68.rep 369 sub $6, %eax70.endr71 72 A73# CHECK: addl $17, %eax74 75#--- b.s76.rept 277 .print "r\+ \+"78.endr79.irpc foo,1280 .print "\+\+i"81.endr82# CHECK2: r0 083# CHECK2-NEXT: r1 184# CHECK2-NEXT: 00i85# CHECK2-NEXT: 11i86 87.rept 288 .rept 289 .print "n\+"90 .endr91.endr92# CHECK2: n093# CHECK2-NEXT: n094# CHECK2-NEXT: n195# CHECK2-NEXT: n196