; Harbour LLVM IR - generated from tests/llvm/fallback.prg target triple = "x86_64-pc-linux-gnu" %HB_SYMB = type { i8*, i64, i8*, i8* } declare void @hb_vmExecute(i8*, %HB_SYMB*) declare %HB_SYMB* @hb_vmProcessSymbols(%HB_SYMB*, i16, i8*, i32, i16) declare i32 @hb_vmsh_pushnil() declare i32 @hb_vmsh_pushlogical(i32) declare i32 @hb_vmsh_pushint(i32) declare i32 @hb_vmsh_pushlong(i64) declare i32 @hb_vmsh_pushlonglong(i64) declare i32 @hb_vmsh_pushdouble(double, i32, i32) declare i32 @hb_vmsh_pushstring(i8*, i64) declare i32 @hb_vmsh_pushlocal(i32) declare i32 @hb_vmsh_poplocal(i32) declare i32 @hb_vmsh_pushstatic(i32) declare i32 @hb_vmsh_popstatic(i32) declare i32 @hb_vmsh_pushsymbol(%HB_SYMB*) declare i32 @hb_vmsh_plus() declare i32 @hb_vmsh_minus() declare i32 @hb_vmsh_mult() declare i32 @hb_vmsh_divide() declare i32 @hb_vmsh_modulus() declare i32 @hb_vmsh_power() declare i32 @hb_vmsh_negate() declare i32 @hb_vmsh_equal() declare i32 @hb_vmsh_exactlyequal() declare i32 @hb_vmsh_notequal() declare i32 @hb_vmsh_less() declare i32 @hb_vmsh_lessequal() declare i32 @hb_vmsh_greater() declare i32 @hb_vmsh_greaterequal() declare i32 @hb_vmsh_and() declare i32 @hb_vmsh_or() declare i32 @hb_vmsh_not() declare i32 @hb_vmsh_pop() declare i32 @hb_vmsh_duplicate() declare i32 @hb_vmsh_frame(i32, i32) declare i32 @hb_vmsh_function(i32) declare i32 @hb_vmsh_do(i32) declare i32 @hb_vmsh_retvalue() declare i32 @hb_vmsh_poplogical(i32*) declare i32 @hb_vmsh_fortest() declare i32 @hb_vmsh_inc() declare i32 @hb_vmsh_dec() declare i32 @hb_vmsh_duplunref() declare i32 @hb_vmsh_pushunref() declare i32 @hb_vmsh_pluseqpop() declare i32 @hb_vmsh_minuseqpop() declare i32 @hb_vmsh_multeqpop() declare i32 @hb_vmsh_diveqpop() declare i32 @hb_vmsh_modeqpop() declare i32 @hb_vmsh_expeqpop() declare i32 @hb_vmsh_deceqpop() declare i32 @hb_vmsh_inceqpop() declare i32 @hb_vmsh_pluseq() declare i32 @hb_vmsh_minuseq() declare i32 @hb_vmsh_multeq() declare i32 @hb_vmsh_diveq() declare i32 @hb_vmsh_modeq() declare i32 @hb_vmsh_expeq() declare i32 @hb_vmsh_deceq() declare i32 @hb_vmsh_inceq() declare i32 @hb_vmsh_pushlocalref(i32) declare i32 @hb_vmsh_pushstaticref(i32) declare i32 @hb_vmsh_localinc(i32) declare i32 @hb_vmsh_localdec(i32) declare i32 @hb_vmsh_localincpush(i32) declare i32 @hb_vmsh_localaddint(i32, i32) declare i32 @hb_vmsh_localnearaddint(i32, i32) declare i32 @hb_vmsh_arraypush() declare i32 @hb_vmsh_arraypushref() declare i32 @hb_vmsh_arraypop() declare i32 @hb_vmsh_pushaparams() declare i32 @hb_vmsh_arraydim(i32) declare i32 @hb_vmsh_arraygen(i32) declare i32 @hb_vmsh_hashgen(i32) declare i32 @hb_vmsh_pushalias() declare i32 @hb_vmsh_popalias() declare i32 @hb_vmsh_swapalias() declare i32 @hb_vmsh_pushfield(%HB_SYMB*) declare i32 @hb_vmsh_popfield(%HB_SYMB*) declare i32 @hb_vmsh_pushmemvar(%HB_SYMB*) declare i32 @hb_vmsh_pushmemvarref(%HB_SYMB*) declare i32 @hb_vmsh_popmemvar(%HB_SYMB*) declare i32 @hb_vmsh_pushvariable(%HB_SYMB*) declare i32 @hb_vmsh_popvariable(%HB_SYMB*) declare i32 @hb_vmsh_pushaliasedfield(%HB_SYMB*) declare i32 @hb_vmsh_popaliasedfield(%HB_SYMB*) declare i32 @hb_vmsh_pushaliasedvar(%HB_SYMB*) declare i32 @hb_vmsh_popaliasedvar(%HB_SYMB*) declare i32 @hb_vmsh_pushself() declare i32 @hb_vmsh_pushovarref() declare i32 @hb_vmsh_withobjectstart() declare i32 @hb_vmsh_withobjectend() declare i32 @hb_vmsh_funcptr() declare i32 @hb_vmsh_message(%HB_SYMB*) declare i32 @hb_vmsh_withobjectmessage(%HB_SYMB*) declare i32 @hb_vmsh_send(i32) declare i32 @hb_vmsh_enumstart(i32, i32) declare i32 @hb_vmsh_enumnext() declare i32 @hb_vmsh_enumprev() declare i32 @hb_vmsh_enumend() declare i32 @hb_vmsh_switchidx(i8*, i32) declare i32 @hb_vmsh_pushblock(i8*, %HB_SYMB*) declare i32 @hb_vmsh_macropushindex() declare i32 @hb_vmsh_macropushref() declare i32 @hb_vmsh_macrosymbol() declare i32 @hb_vmsh_macrotext() declare i32 @hb_vmsh_macropop(i32) declare i32 @hb_vmsh_macropopaliased(i32) declare i32 @hb_vmsh_macropush(i32) declare i32 @hb_vmsh_macropushlist(i32) declare i32 @hb_vmsh_macropushpare(i32) declare i32 @hb_vmsh_macropushaliased(i32) declare i32 @hb_vmsh_macroarraygen(i32) declare i32 @hb_vmsh_macrodo(i32) declare i32 @hb_vmsh_macrofunc(i32) declare i32 @hb_vmsh_macrosend(i32) declare i32 @hb_vmsh_seqbegin(i8*) declare i32 @hb_vmsh_seqend() declare i32 @hb_vmsh_seqrecover() declare i32 @hb_vmsh_seqalways(i8*) declare i32 @hb_vmsh_alwaysbegin(i8*) declare i32 @hb_vmsh_alwaysend() declare i32 @hb_vmsh_seqblock() declare void @hb_INITSTATICS() declare void @hb_INITLINES() declare void @HB_FUN_QOUT() declare void @HB_FUN_HB_TTOS() @symbols = internal global %HB_SYMB* null @.pcode.HB_FUN_FALLBACK = internal constant [1 x i8] c"\07" @.pcode.HB_FUN_MAIN = internal constant [38 x i8] c"\0D\01\00\24\09\00\16\72\8D\25\00\00\2E\93\02\50\01\24\0A\00\B0\02\00\B0\03\00\5F\01\0C\01\14\01\24\0B\00\64\6E\07" @.sym.0 = private constant [9 x i8] c"\46\41\4C\4C\42\41\43\4B\00" @.sym.1 = private constant [5 x i8] c"\4D\41\49\4E\00" @.sym.2 = private constant [5 x i8] c"\51\4F\55\54\00" @.sym.3 = private constant [8 x i8] c"\48\42\5F\54\54\4F\53\00" @.modname = private constant [24 x i8] c"\74\65\73\74\73\2F\6C\6C\76\6D\2F\66\61\6C\6C\62\61\63\6B\2E\70\72\67\00" @symbols_table = internal global [4 x %HB_SYMB] [ %HB_SYMB { i8* getelementptr([9 x i8], [9 x i8]* @.sym.0, i32 0, i32 0), i64 517, i8* bitcast(void()* @HB_FUN_FALLBACK to i8*), i8* null }, %HB_SYMB { i8* getelementptr([5 x i8], [5 x i8]* @.sym.1, i32 0, i32 0), i64 513, i8* bitcast(void()* @HB_FUN_MAIN to i8*), i8* null }, %HB_SYMB { i8* getelementptr([5 x i8], [5 x i8]* @.sym.2, i32 0, i32 0), i64 1, i8* bitcast(void()* @HB_FUN_QOUT to i8*), i8* null }, %HB_SYMB { i8* getelementptr([8 x i8], [8 x i8]* @.sym.3, i32 0, i32 0), i64 1, i8* bitcast(void()* @HB_FUN_HB_TTOS to i8*), i8* null } ] define void @HB_FUN_FALLBACK() { entry: br label %i0 i0: br label %epilogue epilogue: ret void } define void @HB_FUN_MAIN() { %s = load %HB_SYMB*, %HB_SYMB** @symbols call void @hb_vmExecute(i8* getelementptr([38 x i8], [38 x i8]* @.pcode.HB_FUN_MAIN, i32 0, i32 0), %HB_SYMB* %s) ret void } define internal void @hb_vm_SymbolInit() { %r = call %HB_SYMB* @hb_vmProcessSymbols( %HB_SYMB* getelementptr([4 x %HB_SYMB], [4 x %HB_SYMB]* @symbols_table, i32 0, i32 0), i16 4, i8* getelementptr([24 x i8], [24 x i8]* @.modname, i32 0, i32 0), i32 0, i16 3) store %HB_SYMB* %r, %HB_SYMB** @symbols ret void } @__hb_init_ptr = global [1 x void()*] [void()* @hb_vm_SymbolInit], section ".init_array", align 8 @llvm.used = appending global [1 x i8*] [i8* bitcast([1 x void()*]* @__hb_init_ptr to i8*)], section "llvm.metadata"