|
877 | 877 | fsize_sum_b([X|Xs], BSize) => fsize(X), tk('+'), fsize_sum_b(Xs, BSize). |
878 | 878 |
|
879 | 879 | % Jump to a given instruction keeping the same operand stream |
| 880 | +goto_ins('$label'(Lab)) => goto(Lab). % TODO: hack? |
880 | 881 | goto_ins(X+(Y+Z)) => goto_ins((X+Y)+Z). |
881 | 882 | goto_ins(Ins) => |
882 | 883 | [[ get(ins_spec(Ins).op, Op) ]], |
|
978 | 979 | trail_if_conditional_sva(U), |
979 | 980 | U <- V. |
980 | 981 |
|
981 | | -un_voidr(X), [[ mode(r) ]] => |
982 | | - (~s) <- ~heap_offset((~s), X). |
983 | | -un_voidr(X), [[ mode(w) ]] => |
984 | | - localv(intmach, I, cast(ftype_ctype(f_i_signed), X)), |
985 | | - do_while(constr_hva(tk('H')), (tk('--'),I)). |
| 982 | +un_voidr(X) => |
| 983 | + ( [[ mode(r) ]] -> |
| 984 | + (~s) <- ~heap_offset((~s), X) |
| 985 | + ; localv(intmach, I, cast(ftype_ctype(f_i_signed), X)), |
| 986 | + % (assume I>0) |
| 987 | + do_while(( |
| 988 | + cachedreg('H', H), |
| 989 | + constr_hva(H) |
| 990 | + ), (tk('--'),I)) |
| 991 | + ). |
| 992 | +% (for iter spec) |
| 993 | +unify_void(I), [[ integer(I), I>0 ]] => % (specialized case) |
| 994 | + ( [[ mode(r) ]] -> |
| 995 | + un_voidr(I), |
| 996 | + dispatch |
| 997 | + ; cachedreg('H', H), |
| 998 | + constr_hva(H), |
| 999 | + ( [[ I = 1 ]] -> |
| 1000 | + dispatch |
| 1001 | + ; [[ I1 is I-1 ]], |
| 1002 | + goto_ins(unify_void(I1)) |
| 1003 | + ) |
| 1004 | + ). |
| 1005 | +unify_void(N) => |
| 1006 | + ( [[ mode(r) ]] -> |
| 1007 | + un_voidr(N), |
| 1008 | + dispatch |
| 1009 | + ; localv(intmach, I, cast(ftype_ctype(f_i_signed), N)), |
| 1010 | + shiftf(f_i), |
| 1011 | + foreach(intmach, revrange(I,4), _I0, |
| 1012 | + (cachedreg('H', H), |
| 1013 | + constr_hva(H))), |
| 1014 | + goto_ins(unify_void(4)) |
| 1015 | + ). |
986 | 1016 |
|
987 | 1017 | un_var(X), [[ mode(r) ]] => |
988 | 1018 | ref_heap_next(X). |
|
1045 | 1075 | (~w)^.local_top <- ~stack_char_offset(E,EnvSize), |
1046 | 1076 | if(~off_stacktop(E,tk('Stack_Warn')), set_event). |
1047 | 1077 |
|
1048 | | -inittrue => decops([EnvSize]), |
| 1078 | +% TODO:[oc-merge] was: collapse cannot be used here b/c initall operand is cframe operand |
| 1079 | +alloc_init_cframe(EnvSize) => |
1049 | 1080 | alloc, |
1050 | 1081 | initfr(EnvSize), |
1051 | | - % |
1052 | 1082 | % code_cframe(~e, EnvSize, ~bc_off((~p), fsize_sum([f_e]))), |
1053 | 1083 | % dispatchf(fsize_sum([f_e])). % (was f_i before) |
1054 | | - goto('firsttrue'). |
| 1084 | + goto_ins('$label'('firsttrue')). |
1055 | 1085 |
|
1056 | | -firsttrue_n => decopsf([f_i],[N]), |
1057 | | - localv(intmach, I, cast(ftype_ctype(f_i_signed), N)), |
1058 | | - shiftf(f_i), |
1059 | | - foreach(intmach, revrange(I), _I0, put_yvoid), |
1060 | | - % |
1061 | | - goto('firsttrue'), |
| 1086 | +init_cframe => |
| 1087 | + loop_init_all('$label'('firsttrue')), |
1062 | 1088 | label_blk('firsttrue', firsttrue_). |
1063 | 1089 |
|
| 1090 | +% TODO: rename; one arg is relative to P |
1064 | 1091 | % (ins without opcode) |
1065 | 1092 | firsttrue_ => decopsf([f_e],[EnvSize]), |
1066 | 1093 | code_cframe(~e, EnvSize, ~bc_off((~p), fsize_sum([f_e]))), |
1067 | 1094 | dispatchf(fsize_sum([f_e])). % (was f_i before) |
1068 | 1095 |
|
1069 | | -initcall => decops([_,N]), |
| 1096 | +% TODO:[oc-merge] was: collapse cannot be used here b/c initall operand is cframe operand |
| 1097 | +alloc_init_fcall(PredPtr,EnvSize) => |
1070 | 1098 | alloc, |
1071 | | - initfr(N), |
| 1099 | + initfr(EnvSize), |
| 1100 | +% fcall(PredPtr,EnvSize). |
1072 | 1101 | goto_ins(fcall(f_E,f_e)). |
1073 | 1102 |
|
| 1103 | +loop_init_all(Cont) => decopsf([f_i],[N]), |
| 1104 | + localv(intmach, I, cast(ftype_ctype(f_i_signed), N)), |
| 1105 | + shiftf(f_i), |
| 1106 | + foreach(intmach, revrange(I), _I0, put_yvoid), |
| 1107 | + goto_ins(Cont). |
1074 | 1108 | loop_init_until(M, Cont) => decopsf([f_i],[N]), % N>M |
1075 | 1109 | localv(intmach, I, cast(ftype_ctype(f_i_signed), N)), |
1076 | 1110 | shiftf(f_i), |
|
1122 | 1156 | [[ mode(M) ]], |
1123 | 1157 | setmode(r), |
1124 | 1158 | A <- cfun_eval('BC_MakeBlob', [B]), |
1125 | | - setmode(M), |
1126 | | - dispatch_b(~large_size(B^)). |
| 1159 | + setmode(M). |
1127 | 1160 |
|
1128 | 1161 | ld_str(A,B) => |
1129 | 1162 | cachedreg('H', H), |
|
1146 | 1179 | ; true % (nothing left to be done) |
1147 | 1180 | ). |
1148 | 1181 |
|
1149 | | -get_large => decops([A,B]), |
1150 | | - unify_large(B,A), |
1151 | | - dispatch_b(~large_size(B^)). |
| 1182 | +u_blob(A,B) => unify_large(B,A). |
1152 | 1183 |
|
1153 | 1184 | % (x0 version: read-mode match has been done during indexing) |
1154 | | -get_large_x0, [[ mode(r) ]] => decops([A]), |
1155 | | - localv(tagged, T0, x(0)), |
1156 | | - unify_large(A,T0), |
1157 | | - dispatch_b(~large_size(A^)). |
1158 | | -get_large_x0, [[ mode(w) ]] => decops([A]), |
1159 | | - setmode(r), |
1160 | | - localv(tagged, T1, cfun_eval('BC_MakeBlob', [A])), |
1161 | | - setmode(w), |
1162 | | - localv(tagged, T0, x(0)), |
1163 | | - if(~tagged_is(hva,T0), |
1164 | | - bind(hva,T0,T1), |
1165 | | - if(T0 /\ tk('TagBitSVA'), |
1166 | | - bind(sva,T0,T1), |
1167 | | - bind(cva,T0,T1))), |
1168 | | - dispatch_b(~large_size(A^)). |
| 1185 | +u_blob_x0(A) => |
| 1186 | + ( [[ mode(r) ]] -> |
| 1187 | + localv(tagged, T0, x(0)), |
| 1188 | + unify_large(A,T0) |
| 1189 | + ; setmode(r), |
| 1190 | + localv(tagged, T1, cfun_eval('BC_MakeBlob', [A])), |
| 1191 | + setmode(w), |
| 1192 | + localv(tagged, T0, x(0)), |
| 1193 | + if(~tagged_is(hva,T0), |
| 1194 | + bind(hva,T0,T1), |
| 1195 | + if(T0 /\ tk('TagBitSVA'), |
| 1196 | + bind(sva,T0,T1), |
| 1197 | + bind(cva,T0,T1))) |
| 1198 | + ). |
1169 | 1199 |
|
1170 | 1200 | get_structure => decops([A,B]), |
1171 | 1201 | unify_structure(B,A,dispatch). |
|
1269 | 1299 | set_deep, |
1270 | 1300 | if(~choice_younger(~choice_offset(~b,tk('CHOICEPAD')), (~w)^.trail_top), |
1271 | 1301 | cvoid_call('choice_overflow', [2*tk('CHOICEPAD')*sizeof(tagged),~true])), |
1272 | | - set_e((~w)^.local_top), |
1273 | | - dispatch. |
| 1302 | + set_e((~w)^.local_top). |
1274 | 1303 |
|
| 1304 | +% TODO: use cutf/1? |
1275 | 1305 | cutf_x => decops([A]), |
1276 | 1306 | (~w)^.previous_choice <- ~choice_from_tagged(A), |
1277 | 1307 | shiftf, |
| 1308 | +% do_cut, |
| 1309 | +% set_e((~w)^.frame), |
1278 | 1310 | goto_ins(cutf). % TODO: check that pending 'format' after shift is the expected one |
| 1311 | +% dispatch. |
1279 | 1312 |
|
1280 | 1313 | cutf => |
1281 | 1314 | do_cut, |
1282 | | - set_e((~w)^.frame), |
1283 | | - dispatch. |
| 1315 | + set_e((~w)^.frame). |
1284 | 1316 |
|
1285 | | -cut_y => decops([A]), |
| 1317 | +% TODO: continue with cutf? |
| 1318 | +cutf(A) => |
1286 | 1319 | localv(tagged, T1), T1 <- A, |
1287 | 1320 | (~w)^.previous_choice <- ~choice_from_tagged(T1), |
1288 | 1321 | do_cut, |
| 1322 | + % |
1289 | 1323 | set_e((~w)^.frame), |
1290 | 1324 | dispatch. |
1291 | 1325 |
|
|
1371 | 1405 | (bind(sva,T1,T2), A <- T2), |
1372 | 1406 | bind(cva,T2,T1)). |
1373 | 1407 |
|
1374 | | -unify_void(I), [[ integer(I), I>0 ]] => % (specialized case) |
1375 | | - ( [[ mode(r) ]] -> |
1376 | | - un_voidr(I), |
1377 | | - dispatch |
1378 | | - ; cachedreg('H', H), |
1379 | | - constr_hva(H), |
1380 | | - ( [[ I = 1 ]] -> |
1381 | | - dispatch |
1382 | | - ; [[ I1 is I-1 ]], |
1383 | | - goto_ins(unify_void(I1)) |
1384 | | - ) |
1385 | | - ). |
1386 | | -unify_void(N), [[ mode(r) ]] => |
1387 | | - un_voidr(N), |
1388 | | - dispatch. |
1389 | | -unify_void(N), [[ mode(w) ]] => |
1390 | | - localv(intmach, I, cast(ftype_ctype(f_i_signed), N)), |
1391 | | - shiftf(f_i), |
1392 | | - foreach(intmach, revrange(I,4), _I0, |
1393 | | - (cachedreg('H', H), |
1394 | | - constr_hva(H))), |
1395 | | - goto_ins(unify_void(4)). |
1396 | | - |
1397 | 1408 | un_cons(A) => |
1398 | 1409 | ( [[ mode(r) ]] -> |
1399 | 1410 | localv(tagged, T1), ref_heap_next(T1), |
1400 | 1411 | unify_heap_atom(A,T1) |
1401 | 1412 | ; heap_push(A) |
1402 | 1413 | ). |
1403 | 1414 |
|
1404 | | -unify_large, [[ mode(r) ]] => decops([A]), |
1405 | | - localv(tagged, T1), ref_heap_next(T1), |
1406 | | - unify_heap_large(A,T1), |
1407 | | - dispatch_b(~large_size(A^)). |
1408 | | -unify_large, [[ mode(w) ]] => decops([A]), |
1409 | | - % TODO: try to switch to r mode properly (this code is tricky) |
1410 | | - % (this is 'heap_push and switch to read') |
1411 | | - cachedreg('H', H), |
1412 | | - (~w)^.heap_top <- ~heap_offset(H,1), |
1413 | | - H^ <- cfun_eval('BC_MakeBlob', [A]), |
1414 | | - [[ update(mode(r)) ]], |
1415 | | - dispatch_b(~large_size(A^)). |
| 1415 | +un_blob(A) => |
| 1416 | + ( [[ mode(r) ]] -> |
| 1417 | + localv(tagged, T1), ref_heap_next(T1), |
| 1418 | + unify_heap_large(A,T1) |
| 1419 | + ; % TODO: try to switch to r mode properly (this code is tricky) |
| 1420 | + % (this is 'heap_push and switch to read') |
| 1421 | + cachedreg('H', H), |
| 1422 | + (~w)^.heap_top <- ~heap_offset(H,1), |
| 1423 | + H^ <- cfun_eval('BC_MakeBlob', [A]), |
| 1424 | + [[ update(mode(r)) ]] |
| 1425 | + ). |
1416 | 1426 |
|
1417 | 1427 | unify_structure, [[ mode(r) ]] => decops([A]), |
1418 | 1428 | localv(tagged, T1), ref_heap_next(T1), |
|
1463 | 1473 | jump_fail. |
1464 | 1474 |
|
1465 | 1475 | % TODO: PATCH_LIVEINFO requires f_g (we cannot expand to f_l,f_i in instruction format like in OC) |
1466 | | - |
1467 | | -heapmargin_call => decopsf([f_l,f_i],[A,B]), % TODO: abstract code to use f_g |
| 1476 | +heapmargin_call(_G) => |
| 1477 | + [[ update(format([f_l,f_i])) ]], decops([A,B]), % TODO: abstract code to use f_g |
1468 | 1478 | cachedreg('H',H), |
1469 | 1479 | if(~heap_char_difference(H, tk('Heap_End')) < cast(intmach,A), |
1470 | 1480 | ([[ mode(M) ]], |
1471 | 1481 | setmode(r), |
1472 | 1482 | cvoid_call('explicit_heap_overflow', [cast(intmach,A)*2, cast(ftype_ctype(f_i_signed),B)]), |
1473 | 1483 | setmode(M) |
1474 | | - )), |
1475 | | - dispatch. |
| 1484 | + )). |
1476 | 1485 |
|
1477 | 1486 | neck => |
1478 | 1487 | code_neck, |
|
2310 | 2319 | if(I\==0, ( |
2311 | 2320 | localv(ptr(tagged), Pt1, (~w)^.x), |
2312 | 2321 | localv(ptr(tagged), Pt2, (~w)^.structure), |
2313 | | - do_while( |
2314 | | - push_ref_heap_next(Pt1,Pt2), |
2315 | | - (tk('--'),I) |
2316 | | - ) |
| 2322 | + % (assume I>0) |
| 2323 | + do_while(( |
| 2324 | + push_ref_heap_next(Pt1,Pt2) |
| 2325 | + ), (tk('--'),I)) |
2317 | 2326 | )), |
2318 | 2327 | jump_switch_on_pred_sub(tk('ei')). |
2319 | 2328 |
|
|
2414 | 2423 | HtabNode <- ~sw_on_key_node_from_offset(Htab, T1), |
2415 | 2424 | if(logical_or(HtabNode^.key==T2, not(HtabNode^.key)), break), |
2416 | 2425 | assign(I + sizeof(sw_on_key_node)), |
2417 | | - T1 <- (T1+I) /\ Htab^.mask |
| 2426 | + T1 <- paren(T1+I) /\ Htab^.mask % (note: paren is not needed, but C emits readability warning) |
2418 | 2427 | ), ~true), |
2419 | 2428 | jump_tryeach(HtabNode^.value.try_chain). % (this will break the loop) |
2420 | 2429 |
|
|
2593 | 2602 | % instruction spec/merge macro |
2594 | 2603 | ispec((X+Y)+Z, Fs, As, Code, Cont) => ispec(X+(Y+Z), Fs, As, Code, Cont). |
2595 | 2604 | % |
| 2605 | +ispec(init(f_Y)+cframe(f_e), [f_Y,f_e], [], init_cframe, nodecops_dispatch) => true. |
2596 | 2606 | ispec(init(f_Y)+Cont, [f_Y|ContF], [], loop_init_until(8,Cont), nodecops_dispatch) => ispec(Cont, ContF, _, _, dispatch). |
2597 | 2607 | ispec(init(s(I))+Cont, [Fs,ContF], [], loop_init_step(I,Cont), nodecops_dispatch), [[ integer(I) ]] => repf(I, f_y, Fs), ispec(Cont, ContF, _, _, dispatch). |
2598 | 2608 | % |
|
2609 | 2619 | ispec(kall(Xf,Yf), [Xf,Yf], [X,Y], kall(X,Y), dispatch) => true. |
2610 | 2620 | ispec(execute(Xf), [Xf], [X], execute(X), dispatch) => true. |
2611 | 2621 | % |
2612 | | -ispec(ld_blob(Xf,Yf), [Xf,Yf], [X,Y], ld_blob(X,Y), dispatch) => true. |
| 2622 | +ispec(alloc_init_cframe(Xf), [Xf], [X], alloc_init_cframe(X), dispatch) => true. |
| 2623 | +ispec(alloc_init_fcall(Xf,Yf), [Xf,Yf], [X,Y], alloc_init_fcall(X,Y), dispatch) => true. |
2613 | 2624 | % |
2614 | 2625 | ispec(retry_instance, [], [], retry_instance, dispatch) => true. |
2615 | 2626 | ispec(proceed, [], [], proceed, dispatch) => true. |
|
2657 | 2668 | [[ InsCode = (decops(InsArgs),InsCode0) ]] |
2658 | 2669 | ; [[ Cont = nodecops_dispatch ]] -> % (no decops, dispatch is explicit in ins) |
2659 | 2670 | [[ InsCode = InsCode0 ]] |
2660 | | - ; [[ InsCode = (decops(InsArgs),InsCode0,dispatch) ]] |
| 2671 | + ; idispatch(InsArgs, Format, Dispatch), |
| 2672 | + [[ InsCode = (decops(InsArgs),InsCode0,Dispatch) ]] |
2661 | 2673 | ) |
2662 | 2674 | ). |
2663 | 2675 |
|
| 2676 | +% TODO: improve blob arg identification |
| 2677 | +idispatch([Blob],[f_b],dispatch_b(~large_size(Blob^))) => true. |
| 2678 | +idispatch([_,Blob],[_,f_b],dispatch_b(~large_size(Blob^))) => true. |
| 2679 | +idispatch(_,_,dispatch) => true. |
| 2680 | + |
2664 | 2681 | ispeccode1(Ins,InsSpec,Format,i_ec(InsCode,InsCont)) => |
2665 | 2682 | ispeccode(Ins,InsSpec,Format,_), spec1(InsSpec, InsCode, InsCont). |
2666 | 2683 |
|
| 2684 | +%% (uncomment to disable custom alignment versions) |
| 2685 | +%ins_entry_(Ins,Opcode,InsSpec,Export,[q0w|Props]) => ins_entry_(Ins,Opcode,InsSpec,Export,[q0|Props]). |
| 2686 | +%ins_entry_(Ins,Opcode,InsSpec,Export,[q0r|Props]) => ins_entry_(Ins,Opcode,InsSpec,Export,[q0|Props]). |
| 2687 | +%ins_entry_(Ins,Opcode,InsSpec,Export,[qall|Props]) => ins_entry_(Ins,Opcode,InsSpec,Export,[q0|Props]). |
| 2688 | +%ins_entry_(Ins,Opcode,InsSpec,Export,[qqall|Props]) => ins_entry_(Ins,Opcode,InsSpec,Export,[q0|Props]). |
| 2689 | +%ins_entry_(Ins,Opcode,InsSpec,Export,[qqall|Props]) => ins_entry_(Ins,Opcode,InsSpec,Export,[q0|Props]). |
| 2690 | +%% |
2667 | 2691 | ins_entry_(Ins,Opcode,InsSpec,Export,[q0,1|Props]) => % (see q0) |
2668 | 2692 | ispecnorm(Ins,InsSpec,InsSpec2), |
2669 | 2693 | ispeccode1(Ins,InsSpec,Format,InsCode), |
|
2795 | 2819 | iset_misc2. |
2796 | 2820 |
|
2797 | 2821 | iset_init => |
2798 | | - ins_entry(inittrue, 260, [f_e], [in_mode(w)]), |
2799 | | - ins_entry(firsttrue_n, 261, [f_Y,f_e], [in_mode(w)]), |
2800 | | - ins_entry(initcall, 1, [f_E,f_e], [q0,in_mode(w)]). |
| 2822 | + ins_entry(-, 260, alloc_init_cframe(f_e), [in_mode(w)]), |
| 2823 | + ins_entry(-, 261, init(f_Y)+cframe(f_e), [in_mode(w)]), |
| 2824 | + ins_entry(-, 1, alloc_init_fcall(f_E,f_e), [q0,in_mode(w)]). |
2801 | 2825 |
|
2802 | 2826 | iset_call => |
2803 | 2827 | ins_entry(-, 21, init(f_Y)+fcall(f_E,f_e), [q0,in_mode(w)]), |
|
2871 | 2895 | ins_entry(-, 94, u_fval(f_x,f_y), [in_mode(r)]), |
2872 | 2896 | ins_entry(-, 95, u_val(f_x,f_y), [in_mode(r)]), |
2873 | 2897 | ins_entry(-, 97, u_cons(f_x,f_t), exported(get_constant)+[q0,in_mode(r)]), % (for cterm) |
2874 | | - ins_entry(get_large, 255, [f_x,f_b], exported(get_large)+[q0,in_mode(r)]), % (for cterm) |
| 2898 | + ins_entry(-, 255, u_blob(f_x,f_b), exported(get_large)+[q0,in_mode(r)]), % (for cterm) |
2875 | 2899 | ins_entry(get_structure, 99, [f_x,f_f], exported(get_structure)+[q0,in_mode(r)]), % (for cterm) |
2876 | 2900 | ins_entry(-, 100, u_nil(f_x), exported(get_nil)+[in_mode(r)]), % (for cterm) |
2877 | 2901 | ins_entry(get_list, 101, [f_x], exported(get_list)+[in_mode(r)]), % (for cterm) |
|
2886 | 2910 | ins_entry(cutb_neck_proceed, 213, [], [in_mode(r)]), |
2887 | 2911 | ins_entry(-, 214, cute(f_x), [in_mode(r)]), |
2888 | 2912 | ins_entry(cute_x_neck, 216, [f_x], [in_mode(r)]), |
2889 | | - ins_entry(cute_neck, 217, [], [in_mode(r)]), |
| 2913 | + ins_entry(-, 217, cute_neck, [in_mode(r)]), |
2890 | 2914 | ins_entry(cutf_x, 215, [f_x], [in_mode(r)]), |
2891 | | - ins_entry(cutf, 209, [], [in_mode(r)]), |
2892 | | - ins_entry(cut_y, 218, [f_y], [in_mode(r)]). |
| 2915 | + ins_entry(-, 209, cutf, [in_mode(r)]), |
| 2916 | + ins_entry(-, 218, cutf(f_y), [in_mode(r)]). |
2893 | 2917 |
|
2894 | 2918 | iset_choice => |
2895 | 2919 | ins_entry(-, 219, getchoice(f_x)), |
|
2904 | 2928 |
|
2905 | 2929 | iset_get2 => |
2906 | 2930 | ins_entry(-, 105, u_str_x0(f_f), exported(get_structure_x0)+[q0w]), % (for cterm) |
2907 | | - ins_entry(get_large_x0, 257, [f_b], [q0w]), |
| 2931 | + ins_entry(-, 257, u_blob_x0(f_b), [q0w]), |
2908 | 2932 | ins_entry(-, 103, u_cons_x0(f_t), exported(get_constant_x0)+[q0w]), % (for cterm) |
2909 | 2933 | ins_entry(-, 106, u_nil_x0, exported(get_nil_x0)+[]), % (for cterm) |
2910 | 2934 | ins_entry(-, 107, u_list_x0, exported(get_list_x0)+[]), % (for cterm) |
|
2930 | 2954 | ins_entry(-, 125, un_val(f_y), [rw(e(un_lval(f_y),0),all)]), |
2931 | 2955 | ins_entry(-, 126, un_lval(f_y), []), |
2932 | 2956 | ins_entry(-, 128, un_cons(f_t), exported(unify_constant)+[q0r]), % (for cterm) |
2933 | | - ins_entry(unify_large, 259, [f_b], exported(unify_large)+[q0]), % (for cterm) |
| 2957 | + ins_entry(-, 259, un_blob(f_b), exported(unify_large)+[q0]), % (for cterm) |
2934 | 2958 | ins_entry(unify_structure, 130, [f_f], exported(unify_structure)+[q0r]), % (for cterm) |
2935 | 2959 | ins_entry(-, 131, un_nil, exported(unify_nil)+[]), % (for cterm) |
2936 | 2960 | ins_entry(unify_list, 132, [], exported(unify_list)+[]), % (for cterm) |
|
3015 | 3039 | ins_entry(-, 249, bump_counter(f_l), [q0]), |
3016 | 3040 | ins_entry(counted_neck, 251, [f_l,f_l], [q0]), |
3017 | 3041 | ins_entry(fail, 67, [], exported(fail)+[]), % (for ciao_initcode and init_some_bytecode) |
3018 | | - ins_entry(heapmargin_call, 246, [f_g], exported(heapmargin_call)+[q0]), % (for compile_term_aux) |
| 3042 | + ins_entry(-, 246, heapmargin_call(f_g), exported(heapmargin_call)+[q0]), % (for compile_term_aux) |
3019 | 3043 | ins_entry(neck, 65, [], []), |
3020 | 3044 | ins_entry(dynamic_neck_proceed, 236, [], exported(dynamic_neck_proceed)+[in_mode(w)]), |
3021 | 3045 | ins_entry(neck_proceed, 66, [], [in_mode(w)]), |
|
0 commit comments