diff options
Diffstat (limited to 'test/CodeGen/X86/ghc-cc.ll')
| -rw-r--r-- | test/CodeGen/X86/ghc-cc.ll | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/test/CodeGen/X86/ghc-cc.ll b/test/CodeGen/X86/ghc-cc.ll deleted file mode 100644 index 16e4db60502d..000000000000 --- a/test/CodeGen/X86/ghc-cc.ll +++ /dev/null @@ -1,44 +0,0 @@ -; RUN: llc < %s -tailcallopt -mtriple=i686-linux-gnu | FileCheck %s - -; Test the GHC call convention works (x86-32) - -@base = external global i32 ; assigned to register: EBX -@sp = external global i32 ; assigned to register: EBP -@hp = external global i32 ; assigned to register: EDI -@r1 = external global i32 ; assigned to register: ESI - -define void @zap(i32 %a, i32 %b) nounwind { -entry: - ; CHECK: movl {{[0-9]*}}(%esp), %ebx - ; CHECK-NEXT: movl {{[0-9]*}}(%esp), %ebp - ; CHECK-NEXT: calll addtwo - %0 = call ghccc i32 @addtwo(i32 %a, i32 %b) - ; CHECK: calll foo - call void @foo() nounwind - ret void -} - -define ghccc i32 @addtwo(i32 %x, i32 %y) nounwind { -entry: - ; CHECK: leal (%ebx,%ebp), %eax - %0 = add i32 %x, %y - ; CHECK-NEXT: ret - ret i32 %0 -} - -define ghccc void @foo() nounwind { -entry: - ; CHECK: movl r1, %esi - ; CHECK-NEXT: movl hp, %edi - ; CHECK-NEXT: movl sp, %ebp - ; CHECK-NEXT: movl base, %ebx - %0 = load i32, i32* @r1 - %1 = load i32, i32* @hp - %2 = load i32, i32* @sp - %3 = load i32, i32* @base - ; CHECK: jmp bar - tail call ghccc void @bar( i32 %3, i32 %2, i32 %1, i32 %0 ) nounwind - ret void -} - -declare ghccc void @bar(i32, i32, i32, i32) |
