; Harbour LLVM IR - generated from tests/llvm/oopclass.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_INITLINES() declare void @HB_FUN_QOUT() declare void @HB_FUN___CLSLOCKDEF() declare void @HB_FUN_HBCLASS() declare void @HB_FUN_HBOBJECT() declare void @HB_FUN___CLSUNLOCKDEF() declare void @HB_FUN___OBJHASMSG() @symbols = internal global %HB_SYMB* null @.pcode.HB_FUN_OOPCLASS = internal constant [1 x i8] c"\07" @.pcode.HB_FUN_MAIN = internal constant [101 x i8] c"\0D\01\00\24\04\00\30\02\00\B0\03\00\0C\00\5C\03\5C\04\70\02\50\01\24\05\00\30\04\00\5F\01\5C\0A\5C\14\70\02\49\24\06\00\B0\05\00\30\06\00\5F\01\70\00\30\07\00\5F\01\70\00\14\02\24\07\00\5F\01\8F\24\08\00\90\04\00\7A\7A\70\02\49\24\09\00\B0\05\00\90\06\00\70\00\90\07\00\70\00\14\02\91\24\0B\00\64\6E\07" @.pcode.HB_FUN_POINT = internal constant [255 x i8] c"\95\03\00\74\16\00\24\0D\00\67\01\00\64\08\1D\E7\00\B0\08\00\68\01\00\0C\01\1D\DC\00\A6\9E\00\00\7A\50\01\30\02\00\B0\09\00\0C\00\6A\06\50\6F\69\6E\74\00\6C\0A\04\01\00\6C\03\70\03\50\02\24\0E\00\30\0B\00\5F\02\64\64\5F\01\79\48\79\48\79\48\6A\02\58\00\04\01\00\09\70\05\49\24\0F\00\30\0B\00\5F\02\64\64\5F\01\79\48\79\48\79\48\6A\02\59\00\04\01\00\09\70\05\49\24\10\00\30\0C\00\5F\02\6A\04\4E\65\77\00\6C\0D\5F\01\79\48\79\48\79\48\70\03\49\24\11\00\30\0C\00\5F\02\6A\05\4D\6F\76\65\00\6C\0E\5F\01\79\48\79\48\79\48\70\03\49\24\12\00\30\0F\00\5F\02\70\00\49\A7\0E\00\00\B0\10\00\68\01\00\5F\02\14\02\A8\30\11\00\5F\02\70\00\50\03\B0\12\00\5F\03\6A\0A\49\6E\69\74\43\6C\61\73\73\00\0C\02\1C\0C\30\13\00\5F\03\A4\92\01\00\49\5F\03\6E\07\30\11\00\67\01\00\70\00\6E\07" @.pcode.HB_FUN_POINT_NEW = internal constant [33 x i8] c"\0D\00\02\24\15\00\30\14\00\66\5F\01\70\01\49\24\16\00\30\15\00\66\5F\02\70\01\49\24\17\00\66\6E\07" @.pcode.HB_FUN_POINT_MOVE = internal constant [47 x i8] c"\0D\00\02\24\1A\00\30\14\00\66\30\06\00\66\70\00\5F\01\48\70\01\49\24\1B\00\30\15\00\66\30\07\00\66\70\00\5F\02\48\70\01\49\24\1C\00\66\6E\07" @.pcode.hb_INITSTATICS = internal constant [6 x i8] c"\75\16\00\01\00\07" @.sym.0 = private constant [9 x i8] c"\4F\4F\50\43\4C\41\53\53\00" @.sym.1 = private constant [5 x i8] c"\4D\41\49\4E\00" @.sym.2 = private constant [4 x i8] c"\4E\45\57\00" @.sym.3 = private constant [6 x i8] c"\50\4F\49\4E\54\00" @.sym.4 = private constant [5 x i8] c"\4D\4F\56\45\00" @.sym.5 = private constant [5 x i8] c"\51\4F\55\54\00" @.sym.6 = private constant [2 x i8] c"\58\00" @.sym.7 = private constant [2 x i8] c"\59\00" @.sym.8 = private constant [13 x i8] c"\5F\5F\43\4C\53\4C\4F\43\4B\44\45\46\00" @.sym.9 = private constant [8 x i8] c"\48\42\43\4C\41\53\53\00" @.sym.10 = private constant [9 x i8] c"\48\42\4F\42\4A\45\43\54\00" @.sym.11 = private constant [13 x i8] c"\41\44\44\4D\55\4C\54\49\44\41\54\41\00" @.sym.12 = private constant [10 x i8] c"\41\44\44\4D\45\54\48\4F\44\00" @.sym.13 = private constant [10 x i8] c"\50\4F\49\4E\54\5F\4E\45\57\00" @.sym.14 = private constant [11 x i8] c"\50\4F\49\4E\54\5F\4D\4F\56\45\00" @.sym.15 = private constant [7 x i8] c"\43\52\45\41\54\45\00" @.sym.16 = private constant [15 x i8] c"\5F\5F\43\4C\53\55\4E\4C\4F\43\4B\44\45\46\00" @.sym.17 = private constant [9 x i8] c"\49\4E\53\54\41\4E\43\45\00" @.sym.18 = private constant [12 x i8] c"\5F\5F\4F\42\4A\48\41\53\4D\53\47\00" @.sym.19 = private constant [10 x i8] c"\49\4E\49\54\43\4C\41\53\53\00" @.sym.20 = private constant [3 x i8] c"\5F\58\00" @.sym.21 = private constant [3 x i8] c"\5F\59\00" @.sym.22 = private constant [20 x i8] c"\28\5F\49\4E\49\54\53\54\41\54\49\43\53\30\30\30\30\31\29\00" @.modname = private constant [24 x i8] c"\74\65\73\74\73\2F\6C\6C\76\6D\2F\6F\6F\70\63\6C\61\73\73\2E\70\72\67\00" @symbols_table = internal global [23 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_OOPCLASS 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([4 x i8], [4 x i8]* @.sym.2, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([6 x i8], [6 x i8]* @.sym.3, i32 0, i32 0), i64 513, i8* bitcast(void()* @HB_FUN_POINT to i8*), i8* null }, %HB_SYMB { i8* getelementptr([5 x i8], [5 x i8]* @.sym.4, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([5 x i8], [5 x i8]* @.sym.5, i32 0, i32 0), i64 1, i8* bitcast(void()* @HB_FUN_QOUT to i8*), i8* null }, %HB_SYMB { i8* getelementptr([2 x i8], [2 x i8]* @.sym.6, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([2 x i8], [2 x i8]* @.sym.7, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([13 x i8], [13 x i8]* @.sym.8, i32 0, i32 0), i64 1, i8* bitcast(void()* @HB_FUN___CLSLOCKDEF to i8*), i8* null }, %HB_SYMB { i8* getelementptr([8 x i8], [8 x i8]* @.sym.9, i32 0, i32 0), i64 1, i8* bitcast(void()* @HB_FUN_HBCLASS to i8*), i8* null }, %HB_SYMB { i8* getelementptr([9 x i8], [9 x i8]* @.sym.10, i32 0, i32 0), i64 1, i8* bitcast(void()* @HB_FUN_HBOBJECT to i8*), i8* null }, %HB_SYMB { i8* getelementptr([13 x i8], [13 x i8]* @.sym.11, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([10 x i8], [10 x i8]* @.sym.12, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([10 x i8], [10 x i8]* @.sym.13, i32 0, i32 0), i64 514, i8* bitcast(void()* @HB_FUN_POINT_NEW to i8*), i8* null }, %HB_SYMB { i8* getelementptr([11 x i8], [11 x i8]* @.sym.14, i32 0, i32 0), i64 514, i8* bitcast(void()* @HB_FUN_POINT_MOVE to i8*), i8* null }, %HB_SYMB { i8* getelementptr([7 x i8], [7 x i8]* @.sym.15, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([15 x i8], [15 x i8]* @.sym.16, i32 0, i32 0), i64 1, i8* bitcast(void()* @HB_FUN___CLSUNLOCKDEF to i8*), i8* null }, %HB_SYMB { i8* getelementptr([9 x i8], [9 x i8]* @.sym.17, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([12 x i8], [12 x i8]* @.sym.18, i32 0, i32 0), i64 1, i8* bitcast(void()* @HB_FUN___OBJHASMSG to i8*), i8* null }, %HB_SYMB { i8* getelementptr([10 x i8], [10 x i8]* @.sym.19, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([3 x i8], [3 x i8]* @.sym.20, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([3 x i8], [3 x i8]* @.sym.21, i32 0, i32 0), i64 33, i8* null, i8* null }, %HB_SYMB { i8* getelementptr([20 x i8], [20 x i8]* @.sym.22, i32 0, i32 0), i64 536, i8* bitcast(void()* @hb_INITSTATICS to i8*), i8* null } ] define void @HB_FUN_OOPCLASS() { entry: br label %i0 i0: br label %epilogue epilogue: ret void } define void @HB_FUN_MAIN() { entry: br label %i0 i0: %r0 = call i32 @hb_vmsh_frame(i32 1, i32 0) %c0 = icmp ne i32 %r0, 0 br i1 %c0, label %epilogue, label %i3 i3: br label %i6 i6: %r6 = call i32 @hb_vmsh_message(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 2)) %c6 = icmp ne i32 %r6, 0 br i1 %c6, label %epilogue, label %i9 i9: %r9 = call i32 @hb_vmsh_pushsymbol(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 3)) %c9 = icmp ne i32 %r9, 0 br i1 %c9, label %epilogue, label %ipfs9a ipfs9a: %r9b = call i32 @hb_vmsh_pushnil() %c9b = icmp ne i32 %r9b, 0 br i1 %c9b, label %epilogue, label %i12 i12: %r12 = call i32 @hb_vmsh_function(i32 0) %c12 = icmp ne i32 %r12, 0 br i1 %c12, label %epilogue, label %i14 i14: %r14 = call i32 @hb_vmsh_pushint(i32 3) %c14 = icmp ne i32 %r14, 0 br i1 %c14, label %epilogue, label %i16 i16: %r16 = call i32 @hb_vmsh_pushint(i32 4) %c16 = icmp ne i32 %r16, 0 br i1 %c16, label %epilogue, label %i18 i18: %r18 = call i32 @hb_vmsh_send(i32 2) %c18 = icmp ne i32 %r18, 0 br i1 %c18, label %epilogue, label %i20 i20: %r20 = call i32 @hb_vmsh_poplocal(i32 1) %c20 = icmp ne i32 %r20, 0 br i1 %c20, label %epilogue, label %i22 i22: br label %i25 i25: %r25 = call i32 @hb_vmsh_message(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 4)) %c25 = icmp ne i32 %r25, 0 br i1 %c25, label %epilogue, label %i28 i28: %r28 = call i32 @hb_vmsh_pushlocal(i32 1) %c28 = icmp ne i32 %r28, 0 br i1 %c28, label %epilogue, label %i30 i30: %r30 = call i32 @hb_vmsh_pushint(i32 10) %c30 = icmp ne i32 %r30, 0 br i1 %c30, label %epilogue, label %i32 i32: %r32 = call i32 @hb_vmsh_pushint(i32 20) %c32 = icmp ne i32 %r32, 0 br i1 %c32, label %epilogue, label %i34 i34: %r34 = call i32 @hb_vmsh_send(i32 2) %c34 = icmp ne i32 %r34, 0 br i1 %c34, label %epilogue, label %i36 i36: %r36 = call i32 @hb_vmsh_pop() %c36 = icmp ne i32 %r36, 0 br i1 %c36, label %epilogue, label %i37 i37: br label %i40 i40: %r40 = call i32 @hb_vmsh_pushsymbol(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 5)) %c40 = icmp ne i32 %r40, 0 br i1 %c40, label %epilogue, label %ipfs40a ipfs40a: %r40b = call i32 @hb_vmsh_pushnil() %c40b = icmp ne i32 %r40b, 0 br i1 %c40b, label %epilogue, label %i43 i43: %r43 = call i32 @hb_vmsh_message(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 6)) %c43 = icmp ne i32 %r43, 0 br i1 %c43, label %epilogue, label %i46 i46: %r46 = call i32 @hb_vmsh_pushlocal(i32 1) %c46 = icmp ne i32 %r46, 0 br i1 %c46, label %epilogue, label %i48 i48: %r48 = call i32 @hb_vmsh_send(i32 0) %c48 = icmp ne i32 %r48, 0 br i1 %c48, label %epilogue, label %i50 i50: %r50 = call i32 @hb_vmsh_message(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 7)) %c50 = icmp ne i32 %r50, 0 br i1 %c50, label %epilogue, label %i53 i53: %r53 = call i32 @hb_vmsh_pushlocal(i32 1) %c53 = icmp ne i32 %r53, 0 br i1 %c53, label %epilogue, label %i55 i55: %r55 = call i32 @hb_vmsh_send(i32 0) %c55 = icmp ne i32 %r55, 0 br i1 %c55, label %epilogue, label %i57 i57: %r57 = call i32 @hb_vmsh_do(i32 2) %c57 = icmp ne i32 %r57, 0 br i1 %c57, label %epilogue, label %i59 i59: br label %i62 i62: %r62 = call i32 @hb_vmsh_pushlocal(i32 1) %c62 = icmp ne i32 %r62, 0 br i1 %c62, label %epilogue, label %i64 i64: %r64 = call i32 @hb_vmsh_withobjectstart() %c64 = icmp ne i32 %r64, 0 br i1 %c64, label %epilogue, label %i65 i65: br label %i68 i68: %r68 = call i32 @hb_vmsh_withobjectmessage(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 4)) %c68 = icmp ne i32 %r68, 0 br i1 %c68, label %epilogue, label %i71 i71: %r71 = call i32 @hb_vmsh_pushint(i32 1) %c71 = icmp ne i32 %r71, 0 br i1 %c71, label %epilogue, label %i72 i72: %r72 = call i32 @hb_vmsh_pushint(i32 1) %c72 = icmp ne i32 %r72, 0 br i1 %c72, label %epilogue, label %i73 i73: %r73 = call i32 @hb_vmsh_send(i32 2) %c73 = icmp ne i32 %r73, 0 br i1 %c73, label %epilogue, label %i75 i75: %r75 = call i32 @hb_vmsh_pop() %c75 = icmp ne i32 %r75, 0 br i1 %c75, label %epilogue, label %i76 i76: br label %i79 i79: %r79 = call i32 @hb_vmsh_pushsymbol(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 5)) %c79 = icmp ne i32 %r79, 0 br i1 %c79, label %epilogue, label %ipfs79a ipfs79a: %r79b = call i32 @hb_vmsh_pushnil() %c79b = icmp ne i32 %r79b, 0 br i1 %c79b, label %epilogue, label %i82 i82: %r82 = call i32 @hb_vmsh_withobjectmessage(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 6)) %c82 = icmp ne i32 %r82, 0 br i1 %c82, label %epilogue, label %i85 i85: %r85 = call i32 @hb_vmsh_send(i32 0) %c85 = icmp ne i32 %r85, 0 br i1 %c85, label %epilogue, label %i87 i87: %r87 = call i32 @hb_vmsh_withobjectmessage(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 7)) %c87 = icmp ne i32 %r87, 0 br i1 %c87, label %epilogue, label %i90 i90: %r90 = call i32 @hb_vmsh_send(i32 0) %c90 = icmp ne i32 %r90, 0 br i1 %c90, label %epilogue, label %i92 i92: %r92 = call i32 @hb_vmsh_do(i32 2) %c92 = icmp ne i32 %r92, 0 br i1 %c92, label %epilogue, label %i94 i94: %r94 = call i32 @hb_vmsh_withobjectend() %c94 = icmp ne i32 %r94, 0 br i1 %c94, label %epilogue, label %i95 i95: br label %i98 i98: %r98 = call i32 @hb_vmsh_pushnil() %c98 = icmp ne i32 %r98, 0 br i1 %c98, label %epilogue, label %i99 i99: %r99 = call i32 @hb_vmsh_retvalue() %c99 = icmp ne i32 %r99, 0 br i1 %c99, label %epilogue, label %i100 i100: br label %epilogue epilogue: ret void } define void @HB_FUN_POINT() { %s = load %HB_SYMB*, %HB_SYMB** @symbols call void @hb_vmExecute(i8* getelementptr([255 x i8], [255 x i8]* @.pcode.HB_FUN_POINT, i32 0, i32 0), %HB_SYMB* %s) ret void } define void @HB_FUN_POINT_NEW() { entry: br label %i0 i0: %r0 = call i32 @hb_vmsh_frame(i32 0, i32 2) %c0 = icmp ne i32 %r0, 0 br i1 %c0, label %epilogue, label %i3 i3: br label %i6 i6: %r6 = call i32 @hb_vmsh_message(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 20)) %c6 = icmp ne i32 %r6, 0 br i1 %c6, label %epilogue, label %i9 i9: %r9 = call i32 @hb_vmsh_pushself() %c9 = icmp ne i32 %r9, 0 br i1 %c9, label %epilogue, label %i10 i10: %r10 = call i32 @hb_vmsh_pushlocal(i32 1) %c10 = icmp ne i32 %r10, 0 br i1 %c10, label %epilogue, label %i12 i12: %r12 = call i32 @hb_vmsh_send(i32 1) %c12 = icmp ne i32 %r12, 0 br i1 %c12, label %epilogue, label %i14 i14: %r14 = call i32 @hb_vmsh_pop() %c14 = icmp ne i32 %r14, 0 br i1 %c14, label %epilogue, label %i15 i15: br label %i18 i18: %r18 = call i32 @hb_vmsh_message(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 21)) %c18 = icmp ne i32 %r18, 0 br i1 %c18, label %epilogue, label %i21 i21: %r21 = call i32 @hb_vmsh_pushself() %c21 = icmp ne i32 %r21, 0 br i1 %c21, label %epilogue, label %i22 i22: %r22 = call i32 @hb_vmsh_pushlocal(i32 2) %c22 = icmp ne i32 %r22, 0 br i1 %c22, label %epilogue, label %i24 i24: %r24 = call i32 @hb_vmsh_send(i32 1) %c24 = icmp ne i32 %r24, 0 br i1 %c24, label %epilogue, label %i26 i26: %r26 = call i32 @hb_vmsh_pop() %c26 = icmp ne i32 %r26, 0 br i1 %c26, label %epilogue, label %i27 i27: br label %i30 i30: %r30 = call i32 @hb_vmsh_pushself() %c30 = icmp ne i32 %r30, 0 br i1 %c30, label %epilogue, label %i31 i31: %r31 = call i32 @hb_vmsh_retvalue() %c31 = icmp ne i32 %r31, 0 br i1 %c31, label %epilogue, label %i32 i32: br label %epilogue epilogue: ret void } define void @HB_FUN_POINT_MOVE() { entry: br label %i0 i0: %r0 = call i32 @hb_vmsh_frame(i32 0, i32 2) %c0 = icmp ne i32 %r0, 0 br i1 %c0, label %epilogue, label %i3 i3: br label %i6 i6: %r6 = call i32 @hb_vmsh_message(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 20)) %c6 = icmp ne i32 %r6, 0 br i1 %c6, label %epilogue, label %i9 i9: %r9 = call i32 @hb_vmsh_pushself() %c9 = icmp ne i32 %r9, 0 br i1 %c9, label %epilogue, label %i10 i10: %r10 = call i32 @hb_vmsh_message(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 6)) %c10 = icmp ne i32 %r10, 0 br i1 %c10, label %epilogue, label %i13 i13: %r13 = call i32 @hb_vmsh_pushself() %c13 = icmp ne i32 %r13, 0 br i1 %c13, label %epilogue, label %i14 i14: %r14 = call i32 @hb_vmsh_send(i32 0) %c14 = icmp ne i32 %r14, 0 br i1 %c14, label %epilogue, label %i16 i16: %r16 = call i32 @hb_vmsh_pushlocal(i32 1) %c16 = icmp ne i32 %r16, 0 br i1 %c16, label %epilogue, label %i18 i18: %r18 = call i32 @hb_vmsh_plus() %c18 = icmp ne i32 %r18, 0 br i1 %c18, label %epilogue, label %i19 i19: %r19 = call i32 @hb_vmsh_send(i32 1) %c19 = icmp ne i32 %r19, 0 br i1 %c19, label %epilogue, label %i21 i21: %r21 = call i32 @hb_vmsh_pop() %c21 = icmp ne i32 %r21, 0 br i1 %c21, label %epilogue, label %i22 i22: br label %i25 i25: %r25 = call i32 @hb_vmsh_message(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 21)) %c25 = icmp ne i32 %r25, 0 br i1 %c25, label %epilogue, label %i28 i28: %r28 = call i32 @hb_vmsh_pushself() %c28 = icmp ne i32 %r28, 0 br i1 %c28, label %epilogue, label %i29 i29: %r29 = call i32 @hb_vmsh_message(%HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 7)) %c29 = icmp ne i32 %r29, 0 br i1 %c29, label %epilogue, label %i32 i32: %r32 = call i32 @hb_vmsh_pushself() %c32 = icmp ne i32 %r32, 0 br i1 %c32, label %epilogue, label %i33 i33: %r33 = call i32 @hb_vmsh_send(i32 0) %c33 = icmp ne i32 %r33, 0 br i1 %c33, label %epilogue, label %i35 i35: %r35 = call i32 @hb_vmsh_pushlocal(i32 2) %c35 = icmp ne i32 %r35, 0 br i1 %c35, label %epilogue, label %i37 i37: %r37 = call i32 @hb_vmsh_plus() %c37 = icmp ne i32 %r37, 0 br i1 %c37, label %epilogue, label %i38 i38: %r38 = call i32 @hb_vmsh_send(i32 1) %c38 = icmp ne i32 %r38, 0 br i1 %c38, label %epilogue, label %i40 i40: %r40 = call i32 @hb_vmsh_pop() %c40 = icmp ne i32 %r40, 0 br i1 %c40, label %epilogue, label %i41 i41: br label %i44 i44: %r44 = call i32 @hb_vmsh_pushself() %c44 = icmp ne i32 %r44, 0 br i1 %c44, label %epilogue, label %i45 i45: %r45 = call i32 @hb_vmsh_retvalue() %c45 = icmp ne i32 %r45, 0 br i1 %c45, label %epilogue, label %i46 i46: br label %epilogue epilogue: ret void } define void @hb_INITSTATICS() { %s = load %HB_SYMB*, %HB_SYMB** @symbols call void @hb_vmExecute(i8* getelementptr([6 x i8], [6 x i8]* @.pcode.hb_INITSTATICS, i32 0, i32 0), %HB_SYMB* %s) ret void } define internal void @hb_vm_SymbolInit() { %r = call %HB_SYMB* @hb_vmProcessSymbols( %HB_SYMB* getelementptr([23 x %HB_SYMB], [23 x %HB_SYMB]* @symbols_table, i32 0, i32 0), i16 23, 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"