You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
5.3 KiB
107 lines
5.3 KiB
; ModuleID = 'ravi_module_ravif1'
|
|
target triple = "x86_64-pc-windows-msvc-elf"
|
|
|
|
%0 = type { %ravi.TValue*, i32*, i64 }
|
|
%ravi.lua_State = type { %ravi.GCObject*, i8, i8, i8, %ravi.TValue*, %ravi.global_State*, %ravi.CallInfo*, i32*, %ravi.TValue*, %ravi.TValue*, %ravi.UpVal*, %ravi.GCObject*, %ravi.lua_State*, %ravi.lua_longjmp*, %ravi.CallInfo, i8* (%ravi.lua_State*, %ravi.lua_Debug*)*, i64, i32, i32, i32, i16, i16, i8, i8 }
|
|
%ravi.global_State = type opaque
|
|
%ravi.TValue = type { %ravi.Value, i32 }
|
|
%ravi.Value = type { double }
|
|
%ravi.UpVal = type opaque
|
|
%ravi.GCObject = type { %ravi.GCObject*, i8, i8 }
|
|
%ravi.lua_longjmp = type opaque
|
|
%ravi.CallInfo = type { %ravi.TValue*, %ravi.TValue*, %ravi.CallInfo*, %ravi.CallInfo*, %0, i64, i16, i8 }
|
|
%ravi.lua_Debug = type opaque
|
|
%ravi.LClosure = type { %ravi.GCObject*, i8, i8, i8, %ravi.GCObject*, %ravi.Proto*, [1 x %ravi.UpVal*] }
|
|
%ravi.Proto = type { %ravi.GCObject*, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, %ravi.TValue*, i32*, %ravi.Proto**, i32*, %ravi.LocVar*, %ravi.Upvaldesc*, %ravi.LClosure*, %ravi.TString*, %ravi.GCObject*, %ravi.RaviJITProto* }
|
|
%ravi.LocVar = type { %ravi.TString*, i32, i32, i32 }
|
|
%ravi.Upvaldesc = type { %ravi.TString*, i8, i8 }
|
|
%ravi.TString = type { %ravi.GCObject*, i8, i8, i8, i32, i64, %ravi.TString* }
|
|
%ravi.RaviJITProto = type opaque
|
|
|
|
define i32 @ravif1(%ravi.lua_State* %L) {
|
|
entry:
|
|
%L_ci = getelementptr inbounds %ravi.lua_State* %L, i64 0, i32 6
|
|
%0 = load %ravi.CallInfo** %L_ci, align 8
|
|
%1 = bitcast %ravi.CallInfo* %0 to %ravi.LClosure***
|
|
%2 = load %ravi.LClosure*** %1, align 8
|
|
%3 = load %ravi.LClosure** %2, align 8
|
|
%Proto = getelementptr inbounds %ravi.LClosure* %3, i64 0, i32 5
|
|
%4 = load %ravi.Proto** %Proto, align 8
|
|
%k = getelementptr inbounds %ravi.Proto* %4, i64 0, i32 14
|
|
%5 = load %ravi.TValue** %k, align 8
|
|
%base = getelementptr inbounds %ravi.CallInfo* %0, i64 0, i32 4, i32 0
|
|
%6 = load %ravi.TValue** %base, align 8
|
|
%srcvalue = getelementptr inbounds %ravi.TValue* %5, i64 0, i32 0, i32 0
|
|
%destvalue = getelementptr inbounds %ravi.TValue* %6, i64 0, i32 0, i32 0
|
|
%7 = load double* %srcvalue, align 8
|
|
store double %7, double* %destvalue, align 8
|
|
%srctype = getelementptr inbounds %ravi.TValue* %5, i64 0, i32 1
|
|
%desttype = getelementptr inbounds %ravi.TValue* %6, i64 0, i32 1
|
|
%8 = load i32* %srctype, align 4
|
|
store i32 %8, i32* %desttype, align 4
|
|
%9 = load %ravi.CallInfo** %L_ci, align 8
|
|
%base1 = getelementptr inbounds %ravi.CallInfo* %9, i64 0, i32 4, i32 0
|
|
%10 = load %ravi.TValue** %base1, align 8
|
|
%srcvalue2 = getelementptr inbounds %ravi.TValue* %5, i64 1, i32 0, i32 0
|
|
%destvalue3 = getelementptr inbounds %ravi.TValue* %10, i64 1, i32 0, i32 0
|
|
%11 = load double* %srcvalue2, align 8
|
|
store double %11, double* %destvalue3, align 8
|
|
%srctype4 = getelementptr inbounds %ravi.TValue* %5, i64 1, i32 1
|
|
%desttype5 = getelementptr inbounds %ravi.TValue* %10, i64 1, i32 1
|
|
%12 = load i32* %srctype4, align 4
|
|
store i32 %12, i32* %desttype5, align 4
|
|
%13 = load %ravi.CallInfo** %L_ci, align 8
|
|
%base6 = getelementptr inbounds %ravi.CallInfo* %13, i64 0, i32 4, i32 0
|
|
%14 = load %ravi.TValue** %base6, align 8
|
|
%srcvalue7 = getelementptr inbounds %ravi.TValue* %5, i64 2, i32 0, i32 0
|
|
%destvalue8 = getelementptr inbounds %ravi.TValue* %14, i64 2, i32 0, i32 0
|
|
%15 = load double* %srcvalue7, align 8
|
|
store double %15, double* %destvalue8, align 8
|
|
%srctype9 = getelementptr inbounds %ravi.TValue* %5, i64 2, i32 1
|
|
%desttype10 = getelementptr inbounds %ravi.TValue* %14, i64 2, i32 1
|
|
%16 = load i32* %srctype9, align 4
|
|
store i32 %16, i32* %desttype10, align 4
|
|
%17 = load %ravi.CallInfo** %L_ci, align 8
|
|
%base11 = getelementptr inbounds %ravi.CallInfo* %17, i64 0, i32 4, i32 0
|
|
%18 = load %ravi.TValue** %base11, align 8
|
|
%19 = getelementptr inbounds %ravi.TValue* %18, i64 1
|
|
%20 = getelementptr inbounds %ravi.TValue* %18, i64 3
|
|
%L_top = getelementptr inbounds %ravi.lua_State* %L, i64 0, i32 4
|
|
store %ravi.TValue* %20, %ravi.TValue** %L_top, align 8
|
|
%sizep = getelementptr inbounds %ravi.Proto* %4, i64 0, i32 10
|
|
%21 = load i32* %sizep, align 4
|
|
%22 = icmp sgt i32 %21, 0
|
|
br i1 %22, label %if.then, label %if.else
|
|
|
|
if.then: ; preds = %entry
|
|
call void @luaF_close(%ravi.lua_State* %L, %ravi.TValue* %18)
|
|
br label %if.else
|
|
|
|
if.else: ; preds = %if.then, %entry
|
|
%23 = call i32 @luaD_poscall(%ravi.lua_State* %L, %ravi.TValue* %19)
|
|
%24 = icmp eq i32 %23, 0
|
|
br i1 %24, label %if.else13, label %if.then12
|
|
|
|
if.then12: ; preds = %if.else
|
|
%ci_top = getelementptr inbounds %ravi.CallInfo* %17, i64 0, i32 1
|
|
%25 = load %ravi.TValue** %ci_top, align 8
|
|
store %ravi.TValue* %25, %ravi.TValue** %L_top, align 8
|
|
br label %if.else13
|
|
|
|
if.else13: ; preds = %if.else, %if.then12
|
|
|
|
ret i32 1
|
|
}
|
|
|
|
declare i32 @luaD_poscall(%ravi.lua_State*, %ravi.TValue*)
|
|
|
|
declare void @luaF_close(%ravi.lua_State*, %ravi.TValue*)
|
|
|
|
declare i32 @luaV_equalobj(%ravi.lua_State*, %ravi.TValue*, %ravi.TValue*)
|
|
|
|
declare i32 @luaV_lessthan(%ravi.lua_State*, %ravi.TValue*, %ravi.TValue*)
|
|
|
|
declare i32 @luaV_lessequal(%ravi.lua_State*, %ravi.TValue*, %ravi.TValue*)
|
|
|
|
declare void @luaG_runerror(%ravi.lua_State*, i8*, ...)
|