Home | History | Annotate | Download | only in AsmParser
      1 // RUN: llvm-mc -triple x86_64-linux-gnu %s | FileCheck %s
      2 .macro ifcc arg:vararg
      3 .if cc
      4             \arg
      5 .endif
      6 .endm
      7 
      8 .macro ifcc2 arg0 arg1:vararg
      9 .if cc
     10             movl \arg0, \arg1
     11 .endif
     12 .endm
     13 
     14 .macro ifcc3 arg0, arg1:vararg
     15 .if cc
     16             movl \arg0, \arg1
     17 .endif
     18 .endm
     19 
     20 .macro ifcc4 arg0, arg1:vararg
     21 .if cc
     22             movl \arg1, \arg0
     23 .endif
     24 .endm
     25 
     26 .text
     27 
     28 // CHECK: movl %esp, %ebp
     29 // CHECK: subl $0, %esp
     30 // CHECK: movl %eax, %ebx
     31 // CHECK: movl %ecx, %ebx
     32 // CHECK: movl %ecx, %eax
     33 // CHECK: movl %eax, %ecx
     34 // CHECK: movl %ecx, %eax
     35 // CHECK: movl %eax, %ecx
     36 .set cc,1
     37   ifcc  movl    %esp, %ebp
     38         subl $0, %esp
     39 
     40   ifcc2 %eax %ebx
     41   ifcc2 %ecx, %ebx
     42   ifcc3 %ecx %eax
     43   ifcc3 %eax, %ecx
     44   ifcc4 %eax %ecx  ## test
     45   ifcc4 %ecx, %eax ## test
     46 
     47 // CHECK-NOT: movl
     48 // CHECK: subl $1, %esp
     49 .set cc,0
     50   ifcc  movl    %esp, %ebp
     51         subl $1, %esp
     52