mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
7bbd6e366b
This adds 'elf' as a recognized target triple environment value and overrides the default generated object format on Windows platforms if that value is present. This patch also enables MCJIT tests on Windows using the new environment value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165030 91177308-0d34-0410-b5e6-96231b3b80d8
23 lines
722 B
LLVM
23 lines
722 B
LLVM
; PR672
|
|
; RUN: %lli -mtriple=%mcjit_triple -use-mcjit %s
|
|
; XFAIL: mcjit-ia32
|
|
|
|
define i32 @main() {
|
|
%f = bitcast i32 (i32, i32*, i32)* @check_tail to i32* ; <i32*> [#uses=1]
|
|
%res = tail call fastcc i32 @check_tail( i32 10, i32* %f, i32 10 ) ; <i32> [#uses=1]
|
|
ret i32 %res
|
|
}
|
|
|
|
define fastcc i32 @check_tail(i32 %x, i32* %f, i32 %g) {
|
|
%tmp1 = icmp sgt i32 %x, 0 ; <i1> [#uses=1]
|
|
br i1 %tmp1, label %if-then, label %if-else
|
|
if-then: ; preds = %0
|
|
%fun_ptr = bitcast i32* %f to i32 (i32, i32*, i32)* ; <i32 (i32, i32*, i32)*> [#uses=1]
|
|
%arg1 = add i32 %x, -1 ; <i32> [#uses=1]
|
|
%res = tail call fastcc i32 %fun_ptr( i32 %arg1, i32* %f, i32 %g ) ; <i32> [#uses=1]
|
|
ret i32 %res
|
|
if-else: ; preds = %0
|
|
ret i32 %x
|
|
}
|
|
|