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