Skip to content

Instantly share code, notes, and snippets.

@timo
Created October 12, 2024 04:38
Show Gist options
  • Save timo/22f18ecdf37836e43da6a81139b5f1bb to your computer and use it in GitHub Desktop.
Save timo/22f18ecdf37836e43da6a81139b5f1bb to your computer and use it in GitHub Desktop.
looking at a case where trying to run an arg guard for osr reasons after an uninline, we access a low-level null in the first argument
Thread 1 hit Breakpoint 1, MVM_spesh_deopt_one (tc=0x355d2020000, deopt_idx=146) at src/spesh/deopt.c:256
256 MVMFrame *f = tc->cur_frame;
(rr) call fputs(MVM_spesh_dump_register_layout(tc, tc->cur_frame), stderr);
Invalid character ';' in expression.
(rr) call fputs(MVM_spesh_dump_register_layout(tc, tc->cur_frame), stderr)
Inlines:
- 0 'fully-reified' (cuuid 5943)
bytecode from 500 to 582
Callsite 0x7f3c5d294f20 (1 args, 1 pos)
Positional flags: obj
- 1 'elems' (cuuid 5962)
bytecode from 320 to 784
Callsite 0x7f3c5d294f20 (1 args, 1 pos)
Positional flags: obj
- 2 'splice' (cuuid 7445)
bytecode from 1162 to 1396
Callsite 0x355d24524e0 (4 args, 4 pos)
Positional flags: obj, obj, obj, obj
- 3 'sink' (cuuid 5991)
bytecode from 1408 to 1408
Callsite 0x7f3c5d294f20 (1 args, 1 pos)
Positional flags: obj
- 4 'insert' (cuuid 26)
bytecode from 974 to 1432
Callsite 0x7f3c5d295040 (3 args, 3 pos)
Positional flags: obj, obj, obj
- 5 'insert-also' (cuuid 24)
bytecode from 236 to 1456
Callsite 0x7f3c5d294f80 (2 args, 2 pos)
Positional flags: obj, obj
Parameters:
source: f->caller->work: (MVMRegister *)0x355d2482988
frame of source: (MVMFrame *)0x355d229b638
callsite of params: Callsite 0x355d24524e0 (4 args, 4 pos)
Positional flags: obj, obj, obj, obj
Locals (registers)
0: ( obj) (nil) [inline 3's result register]
1: ( obj) 0x355d20ceee8 (conc of VMArray name array[str])
2: ( obj) 0x355da9f9c18 (conc of P6opaque name Str)
3: ( obj) 0x355d229b808 (conc of P6opaque name Array)
4: ( obj) 0x355d229b958 (conc of P6opaque name Scalar)
5: ( obj) (nil) [inline 1's result register]
6: ( obj) (nil)
7: ( obj) 0x355d229b7b0 (conc of VMArray name BOOTArray)
8: ( obj) 0x355d260d178 (type of P6opaque name Any) [inline 0's result register] [inline 2's result register]
9: ( str) 0x355ddb35ef0
10: ( obj) 0x355d229ba90 (conc of P6opaque name Int) [inline 5's result register]
11: ( int64) 0x0
12: ( obj) 0x355d229b958 (conc of P6opaque name Scalar)
13: ( obj) (nil)
14: ( obj) (nil)
15: ( obj) 0x355d260d190 (type of P6opaque name Array)
16: ( obj) (nil)
17: ( int64) 0x1
18: ( obj) 0x355d8a67250 (conc of MVMCode name BOOTCode) [inline 5's code ref register]
19: ( obj) 0x355d2600830 (type of Null name VMNull)
20: ( obj) (nil) [start of inline 5's registers]
21: ( obj) 0x355d229ba90 (conc of P6opaque name Int)
22: ( obj) 0x355d229b808 (conc of P6opaque name Array)
23: ( obj) 0x355d229ba90 (conc of P6opaque name Int)
24: ( obj) 0x355d229b808 (conc of P6opaque name Array)
25: ( obj) (nil)
26: ( str) 0x355d3691a50
27: ( obj) (nil)
28: ( int64) 0x0
29: ( int64) 0x0
30: ( obj) 0x355d2600830 (type of Null name VMNull)
31: ( obj) 0x355d229ba90 (conc of P6opaque name Int)
32: ( int64) 0x1
33: ( obj) 0x355d229b808 (conc of P6opaque name Array)
34: ( obj) 0x355d50d1558 (conc of MVMCode name BOOTCode) [inline 1's code ref register]
35: ( obj) 0x355d2600830 (type of Null name VMNull)
36: ( obj) 0x355d2600830 (type of Null name VMNull)
37: ( obj) 0x355d229b808 (conc of P6opaque name Array) [start of inline 1's registers]
38: ( obj) (nil)
39: ( obj) (nil)
40: ( obj) (nil)
41: ( obj) 0x355d4771078 (conc of P6opaque name Int)
42: ( obj) 0x355d4771078 (conc of P6opaque name Int)
43: ( int64) 0x0
44: ( str) 0x355d4952c20
45: ( obj) 0x355d229b8a0 (conc of P6opaque name List::Reifier)
46: ( obj) (nil)
47: ( obj) (nil)
48: ( int64) 0x0
49: ( obj) (nil)
50: ( int64) 0x0
51: ( int64) 0x0
52: ( obj) (nil)
53: ( obj) 0x355d50d3520 (conc of MVMCode name BOOTCode) [inline 0's code ref register]
54: ( obj) 0x355d2600830 (type of Null name VMNull)
55: ( obj) 0x355d2600830 (type of Null name VMNull)
56: ( obj) 0x355d229b8a0 (conc of P6opaque name List::Reifier) [start of inline 0's registers]
57: ( obj) (nil)
58: ( obj) (nil)
59: ( obj) (nil)
60: ( obj) (nil)
61: ( obj) 0x355d229bad8 (conc of P6opaque name Scalar)
62: ( int64) 0x0
63: ( int64) 0x0
64: ( int64) 0x0
65: ( obj) (nil) [last of 0's registers] [last of 1's registers]
66: ( obj) (nil) [inline 4's code ref register]
67: ( obj) (nil)
68: ( obj) (nil)
69: ( obj) (nil) [start of inline 4's registers]
70: ( obj) (nil)
71: ( obj) (nil)
72: ( obj) (nil)
73: ( obj) (nil)
74: ( obj) (nil)
75: ( obj) (nil)
76: ( str) (nil)
77: ( obj) (nil)
78: ( obj) (nil)
79: ( int64) 0x0
80: ( obj) (nil)
81: ( obj) (nil)
82: ( obj) (nil)
83: ( obj) (nil) [inline 3's code ref register]
84: ( obj) (nil)
85: ( obj) (nil) [inline 2's code ref register]
86: ( obj) (nil)
87: ( obj) (nil)
88: ( obj) (nil)
89: ( obj) (nil) [start of inline 2's registers]
90: ( obj) (nil)
91: ( obj) (nil)
92: ( obj) (nil)
93: ( obj) (nil)
94: ( obj) (nil)
95: ( obj) (nil)
96: ( obj) (nil)
97: ( obj) (nil)
98: ( obj) (nil)
99: ( obj) (nil)
100: ( str) (nil)
101: ( obj) (nil)
102: ( obj) (nil)
103: ( obj) (nil)
104: ( int64) 0x0
105: ( obj) (nil)
106: ( obj) (nil)
107: ( int64) 0x0
108: ( obj) (nil)
109: ( obj) (nil)
110: ( obj) (nil)
111: ( obj) (nil) [last of 2's registers]
112: ( obj) (nil) [start of inline 3's registers]
113: ( obj) (nil)
114: ( obj) (nil)
115: ( obj) (nil)
116: ( obj) (nil)
117: ( obj) (nil)
118: ( obj) (nil)
119: ( int64) 0x0 [last of 3's registers] [last of 4's registers] [last of 5's registers]
Spesh slots:
0 = 0x355d27283f0 STable (BOOTArray)
1 = 0x355d5afb8c0 STable (array[str])
2 = 0x355d273c490 STable (Str)
3 = 0x355d273a900 STable (Array)
4 = 0x355d273a858 STable (Any)
5 = 0x355d273c730 STable (Sub)
6 = 0x355d273b0e0 STable (Int)
7 = 0x355d5bc3060 Type Object (array[str])
8 = 0x355d260d568 Type Object (Str)
9 = 0x355d260d190 Type Object (Array)
10 = 0x355d50d1120 Instance (BOOTCode) - 'from-slurpy' (5947)
11 = 0x355d260d178 Type Object (Any)
12 = 0x355d260d4f0 Type Object (Scalar)
13 = 0x355d273c148 STable (Scalar)
14 = 0x355d536e400 Instance (BOOTStaticFrame) - 'inserts' (35)
15 = 0x355d8557298 Instance (Sub)
16 = 0x355d260d3a0 Type Object (Nil)
17 = 0x355d8557f58 Instance (Sub)
18 = 0x355d8a67250 Instance (BOOTCode) - 'insert-also' (24)
19 = 0x355d273b0e0 STable (Int)
20 = 0x355d273a900 STable (Array)
21 = 0x355d273b380 STable (IterationBuffer)
22 = 0x355d273c730 STable (Sub)
23 = 0x355d9757138 STable (Array[Any])
24 = 0x355d260d298 Type Object (Int)
25 = 0x355d3729b98 Type Object (PositionalBindFailover)
26 = 0x355d37293b8 Type Object (Positional[Any])
27 = 0x355d50d1558 Instance (BOOTCode) - 'elems' (5962)
28 = 0x355d2728498 STable (BOOTHash)
29 = 0x355d273a900 STable (Array)
30 = 0x355d5aec4e8 STable (List::Reifier)
31 = 0x355d273b0e0 STable (Int)
32 = 0x355d273aaf8 STable (Bool)
33 = 0x355d273b380 STable (IterationBuffer)
34 = 0x355d260d328 Type Object (List)
35 = 0x355d260d388 Type Object (Mu)
36 = 0x355d260d388 Type Object (Mu)
37 = 0x355d50d3490 Instance (BOOTCode) - 'reify-until-lazy' (5941)
38 = 0x355d260d388 Type Object (Mu)
39 = 0x355d50d3520 Instance (BOOTCode) - 'fully-reified' (5943)
40 = 0x355d2728498 STable (BOOTHash)
41 = 0x355d5aec4e8 STable (List::Reifier)
42 = 0x355d278eee8 STable (Iterator)
43 = 0x355d273c148 STable (Scalar)
44 = 0x355d273a858 STable (Any)
45 = 0x355d5bc1c98 Type Object (List::Reifier)
46 = 0x355d5bbaff0 Instance (Scalar)
47 = 0x355d5bbb020 Instance (Scalar)
48 = 0x355d45cda18 Instance (Bool)
49 = 0x355d2552f00 Instance (BOOTCCode)
50 = 0x355d260d388 Type Object (Mu)
51 = 0x355d4771348 Instance (Str)
52 = 0x355d4c6f600 Instance (BOOTStaticFrame) - 'elems' (5962)
53 = 0x355d273b0e0 STable (Int)
54 = 0x355d2689ba0 Instance (BOOTCompUnit)
55 = 0x355d260d388 Type Object (Mu)
56 = 0x355d8557fe0 Instance (Sub)
57 = 0x355d273b8c0 STable (Num)
58 = 0x355d8a672e0 Instance (BOOTCode) - 'insert' (26)
59 = 0x355d9757138 STable (Array[Any])
60 = 0x355d273b0e0 STable (Int)
61 = 0x355d273b8c0 STable (Num)
62 = 0x355d3729b98 Type Object (PositionalBindFailover)
63 = 0x355d37293b8 Type Object (Positional[Any])
64 = 0x355d260d178 Type Object (Any)
65 = 0x355d260d4f0 Type Object (Scalar)
66 = 0x355d273c148 STable (Scalar)
67 = 0x355d536db00 Instance (BOOTStaticFrame) - 'insert' (26)
68 = 0x355dd8e3b28 Instance (Int)
69 = 0x355d50eb2d8 Instance (BOOTCode) - 'splice' (7445)
70 = 0x355d2728498 STable (BOOTHash)
71 = 0x355d27283f0 STable (BOOTArray)
72 = 0x355d9757138 STable (Array[Any])
73 = 0x355d273b0e0 STable (Int)
74 = 0x355d273a900 STable (Array)
75 = 0x355d260d190 Type Object (Array)
76 = 0x355d260d298 Type Object (Int)
77 = 0x355d50d1120 Instance (BOOTCode) - 'from-slurpy' (5947)
78 = 0x355d50eba70 Instance (BOOTCode) - 'splice' (7485)
79 = 0x355d372a348 Type Object (Array:D)
80 = 0x355d2689ba0 Instance (BOOTCompUnit)
81 = 0x355d50d1ca8 Instance (BOOTCode) - 'sink' (5991)
82 = 0x355d2728498 STable (BOOTHash)
83 = 0x355d9757138 STable (Array[Any])
84 = 0x355d260d328 Type Object (List)
85 = 0x355d260d3a0 Type Object (Nil)
$1 = 1
(rr) call MVM_dump_bytecode(tc)
unknown type 19521
00000 sp_getarg_o loc_1_obj, 0
00001 sp_getarg_o loc_2_obj, 1
00002 sp_fastcreate loc_7_obj, 56, sslot(0)
00003 const_i64_16 loc_17_int, 0
00004 sp_getarg_o loc_18_obj, 2
00005 bindpos_o loc_7_obj, loc_17_int, loc_18_obj
00006 const_i64_16 loc_17_int, 1
00007 sp_getarg_o loc_18_obj, 3
00008 bindpos_o loc_7_obj, loc_17_int, loc_18_obj
00009 sp_getspeshslot loc_12_obj, sslot(9)
00010 set loc_15_obj, loc_12_obj
00011 set loc_15_obj, loc_15_obj
00012 const_s loc_9_str, 'from-slurpy'
00013 sp_getspeshslot loc_18_obj, sslot(10)
00014 sp_resumption loc_19_obj, 0, 4, loc_15_obj, loc_9_str, loc_12_obj, loc_7_obj
00015 sp_runbytecode_o loc_12_obj, loc_18_obj, 3667134844320, 0, loc_12_obj, loc_7_obj
00016 sp_guardconc loc_12_obj, loc_12_obj, sslot(3), 20
00017 set loc_3_obj, loc_12_obj
00018 sp_getspeshslot loc_8_obj, sslot(11)
00019 sp_fastcreate loc_12_obj, 48, sslot(13)
00020 sp_bind_o loc_12_obj, 40, loc_8_obj
00021 set loc_4_obj, loc_12_obj
00022 sp_bindcomplete sslot(14), 71
00023 sp_getspeshslot loc_10_obj, sslot(15)
00024 set loc_10_obj, loc_10_obj
00025 sp_dispatch_o loc_10_obj, 'lang-call', Callsite_19, sslot(14), 77, loc_10_obj, loc_1_obj, loc_2_obj, loc_4_obj
00026 sp_guardconc loc_10_obj, loc_10_obj, sslot(6), 30
00027 sp_getspeshslot loc_18_obj, sslot(18)
00028 null loc_30_obj
00029 set loc_23_obj, loc_10_obj
00030 set loc_31_obj, loc_23_obj
00031 set loc_21_obj, loc_31_obj
00032 set loc_24_obj, loc_3_obj
00033 set loc_33_obj, loc_24_obj
00034 const_i64_16 loc_32_int, 1
00035 set loc_22_obj, loc_24_obj
00036 const_s loc_26_str, 'elems'
00037 sp_getspeshslot loc_34_obj, sslot(27)
00038 sp_resumption loc_35_obj, 1, 1, loc_22_obj
00039 sp_resumption loc_36_obj, 2, 3, loc_22_obj, loc_26_str, loc_22_obj
00040 set loc_37_obj, loc_22_obj
00041 sp_getvt_o loc_42_obj, loc_37_obj, 40, sslot(35)
00042 sp_guardconc loc_42_obj, loc_42_obj, sslot(30), 97
00043 sp_getvt_o loc_42_obj, loc_37_obj, 40, sslot(36)
00044 sp_guardconc loc_42_obj, loc_42_obj, sslot(30), 100
00045 set loc_41_obj, loc_42_obj
00046 set loc_41_obj, loc_41_obj
00047 sp_getstringfrom loc_44_str, sslot(54), 4706
00048 sp_getspeshslot loc_53_obj, sslot(37)
00049 sp_resumption loc_54_obj, 3, 3, loc_41_obj, loc_44_str, loc_42_obj
00050 sp_runbytecode_o loc_42_obj, loc_53_obj, 139897237753632, 0, loc_42_obj
00051 -> sp_guardconc loc_42_obj, loc_42_obj, sslot(31), 104
00052 set loc_41_obj, loc_42_obj
00053 sp_getvt_o loc_45_obj, loc_37_obj, 40, sslot(38)
00054 sp_guardconc loc_45_obj, loc_45_obj, sslot(30), 109
00055 sp_getstringfrom loc_44_str, sslot(54), 4707
00056 sp_getspeshslot loc_53_obj, sslot(39)
00057 sp_resumption loc_55_obj, 4, 3, loc_45_obj, loc_44_str, loc_45_obj
00058 set loc_56_obj, loc_45_obj
00059 sp_getvc_o loc_61_obj, loc_56_obj, 40, sslot(46)
00060 sp_guardtype loc_61_obj, loc_61_obj, sslot(42), 146
00061 const_i64_16 loc_64_int, 0
00062 sp_getvc_o loc_61_obj, loc_56_obj, 48, sslot(47)
00063 sp_guardconc loc_61_obj, loc_61_obj, sslot(43), 149
00064 sp_get_o loc_60_obj, loc_61_obj, 40
00065 sp_guardtype loc_60_obj, loc_60_obj, sslot(44), 150
00066 sp_getspeshslot loc_45_obj, sslot(48)
00067 set loc_45_obj, loc_45_obj
00068 sp_getspeshslot loc_53_obj, sslot(49)
00069 sp_runcfunc_i loc_50_int, loc_53_obj, 139897237753632, loc_45_obj
00070 unless_i loc_50_int, label_1(00078)
00071 null loc_46_obj
00072 sp_bind_o loc_37_obj, 40, loc_46_obj
00073 sp_getvt_o loc_47_obj, loc_37_obj, 32, sslot(50)
00074 sp_guardconc loc_47_obj, loc_47_obj, sslot(33), 122
00075 sp_get_i64 loc_48_int, loc_47_obj, 24
00076 sp_fastbox_bi_ic loc_49_obj, 40, sslot(53), 32, loc_48_int, 1
00077 goto label_2(00085)
label_1:
00078 set loc_47_obj, loc_37_obj
00079 sp_getstringfrom loc_44_str, sslot(54), 1217
00080 wval loc_45_obj, 0, 27723
00081 sp_getspeshslot loc_49_obj, sslot(51)
00082 sp_dispatch_o loc_49_obj, 'lang-meth-call', Callsite_16, sslot(52), 96, loc_47_obj, loc_44_str, loc_37_obj, loc_45_obj, loc_49_obj
00083 sp_dispatch_o loc_45_obj, 'lang-hllize', Callsite_5, sslot(52), 101, loc_49_obj
00084 set loc_49_obj, loc_45_obj
label_2:
00085 set loc_45_obj, loc_49_obj
00086 sp_guardconc loc_42_obj, loc_45_obj, sslot(31), 135
00087 set loc_25_obj, loc_42_obj
00088 set loc_25_obj, loc_25_obj
00089 sp_p6oget_bi loc_28_int, loc_25_obj, 8
00090 sp_bindlex_in lex_Frame_33_lex11_UNKNOWN, loc_28_int
00091 sp_getspeshslot loc_27_obj, sslot(34)
00092 sp_getvt_o loc_20_obj, loc_22_obj, 32, sslot(55)
label_3:
00093 elems loc_29_int, loc_20_obj
00094 unless_i loc_29_int, label_4(00161)
00095 sp_getspeshslot loc_25_obj, sslot(56)
00096 set loc_25_obj, loc_25_obj
00097 shift_o loc_27_obj, loc_20_obj
00098 sp_decont loc_27_obj, loc_27_obj
00099 sp_guardconc loc_27_obj, loc_27_obj, sslot(23), 81
00100 shift_o loc_30_obj, loc_20_obj
00101 sp_guard loc_21_obj, loc_21_obj, sslot(19), 83
00102 sp_guardconc loc_30_obj, loc_30_obj, sslot(43), 152
00103 sp_p6oget_o loc_34_obj, loc_30_obj, 16
00104 sp_guard loc_34_obj, loc_34_obj, sslot(57), 153
00105 sp_getspeshslot loc_66_obj, sslot(58)
00106 sp_resumption loc_67_obj, 5, 4, loc_25_obj, loc_27_obj, loc_21_obj, loc_30_obj
00107 sp_guardjustconc loc_80_obj, loc_21_obj, 154
00108 sp_get_o loc_68_obj, loc_30_obj, 40
00109 sp_guardconc loc_68_obj, loc_68_obj, sslot(57), 155
00110 set loc_69_obj, loc_27_obj
00111 sp_fastcreate loc_77_obj, 48, sslot(66)
00112 sp_bind_o loc_77_obj, 40, loc_80_obj
00113 set loc_70_obj, loc_77_obj
00114 set loc_74_obj, loc_30_obj
00115 sp_get_o loc_77_obj, loc_74_obj, 40
00116 sp_guardconc loc_77_obj, loc_77_obj, sslot(61), 186
00117 set loc_71_obj, loc_74_obj
00118 set loc_75_obj, loc_69_obj
00119 set loc_75_obj, loc_75_obj
00120 const_s loc_76_str, 'splice'
00121 sp_getspeshslot loc_77_obj, sslot(68)
00122 sp_p6oget_o loc_83_obj, loc_70_obj, 16
00123 sp_guardconc loc_91_obj, loc_83_obj, sslot(60), 194
00124 sp_p6oget_o loc_84_obj, loc_71_obj, 16
00125 sp_guard loc_84_obj, loc_84_obj, sslot(61), 205
00126 sp_getspeshslot loc_85_obj, sslot(69)
00127 sp_resumption loc_86_obj, 6, 4, loc_69_obj, loc_70_obj, loc_77_obj, loc_71_obj
00128 sp_resumption loc_87_obj, 7, 6, loc_75_obj, loc_76_str, loc_69_obj, loc_70_obj, loc_77_obj, loc_71_obj
00129 sp_get_o loc_88_obj, loc_71_obj, 40
00130 sp_guardconc loc_88_obj, loc_88_obj, sslot(61), 206
00131 set loc_89_obj, loc_69_obj
00132 set loc_92_obj, loc_77_obj
00133 sp_fastcreate loc_97_obj, 56, sslot(71)
00134 const_i64_16 loc_107_int, 0
00135 bindpos_o loc_97_obj, loc_107_int, loc_71_obj
00136 sp_getspeshslot loc_101_obj, sslot(75)
00137 set loc_99_obj, loc_101_obj
00138 set loc_99_obj, loc_99_obj
00139 sp_getstringfrom loc_100_str, sslot(80), 2240
00140 sp_getspeshslot loc_108_obj, sslot(77)
00141 sp_resumption loc_109_obj, 8, 4, loc_99_obj, loc_100_str, loc_101_obj, loc_97_obj
00142 sp_runbytecode_o loc_101_obj, loc_108_obj, 3667134844320, 0, loc_101_obj, loc_97_obj
00143 sp_guardconc loc_101_obj, loc_101_obj, sslot(74), 237
00144 set loc_93_obj, loc_101_obj
00145 set loc_99_obj, loc_89_obj
00146 set loc_99_obj, loc_99_obj
00147 sp_getstringfrom loc_100_str, sslot(80), 819
00148 sp_getspeshslot loc_108_obj, sslot(78)
00149 sp_resumption loc_110_obj, 9, 4, loc_89_obj, loc_91_obj, loc_92_obj, loc_93_obj
00150 sp_resumption loc_111_obj, 10, 6, loc_99_obj, loc_100_str, loc_89_obj, loc_91_obj, loc_92_obj, loc_93_obj
00151 sp_runbytecode_o loc_99_obj, loc_108_obj, 3667134850272, 0, loc_89_obj, loc_91_obj, loc_92_obj, loc_93_obj
00152 sp_guardconc loc_99_obj, loc_99_obj, sslot(72), 244
00153 set loc_101_obj, loc_99_obj
00154 set loc_77_obj, loc_101_obj
00155 set loc_77_obj, loc_77_obj
00156 sp_getspeshslot loc_83_obj, sslot(81)
00157 sp_p6oget_o loc_83_obj, loc_70_obj, 8
00158 sp_guardjusttype loc_83_obj, loc_83_obj, 202
00159 set loc_75_obj, loc_70_obj
00160 goto label_3(00093)
label_4:
00161 sp_guardconc loc_30_obj, loc_21_obj, sslot(19), 85
00162 set loc_10_obj, loc_30_obj
00163 set loc_10_obj, loc_10_obj
00164 set loc_12_obj, loc_10_obj
00165 set loc_10_obj, loc_12_obj
00166 return_o loc_10_obj
(rr) bt
#0 MVM_spesh_deopt_one (tc=0x355d2020000, deopt_idx=146) at src/spesh/deopt.c:256
#1 0x00007f3c5cc462fb in MVM_interp_run (tc=0x355d2020000,
initial_invoke=0x7f3c5cde53a4 <toplevel_initial_invoke>, invoke_data=0x355d2880700, outer_runloop=0x0)
at src/core/interp.c:5601
#2 0x00007f3c5cde54fe in MVM_vm_run_file (instance=0x355d2010400,
filename=0x65994e0 "/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm") at src/moar.c:505
#3 0x0000000000401705 in main (argc=<optimized out>, argv=<optimized out>) at src/vm/moar/runner/main.c:480
(rr) up
#1 0x00007f3c5cc462fb in MVM_interp_run (tc=0x355d2020000,
initial_invoke=0x7f3c5cde53a4 <toplevel_initial_invoke>, invoke_data=0x355d2880700, outer_runloop=0x0)
at src/core/interp.c:5601
5601 MVM_spesh_deopt_one(tc, GET_UI32(cur_op, -4));
(rr) list
5596 MVMObject *check = GET_REG(cur_op, 2).o;
5597 MVMSTable *want = (MVMSTable *)tc->cur_frame
5598 ->effective_spesh_slots[GET_UI16(cur_op, 4)];
5599 cur_op += 10;
5600 if (!check || IS_CONCRETE(check) || STABLE(check) != want)
5601 MVM_spesh_deopt_one(tc, GET_UI32(cur_op, -4));
5602 else
5603 target->o = check;
5604 goto NEXT;
5605 }
(rr) print check
$2 = (MVMObject *) 0x355d229bad8
(rr) print want
$3 = (MVMSTable *) 0x355d278eee8
(rr) print STABLE(check)[0]
$4 = {header = {sc_forward_u = {forwarder = 0x1fb0000001c, sc = {sc_idx = 28, idx = 507}, st = 0x1fb0000001c},
owner = 1, flags1 = 2 '\002', flags2 = 2 '\002', size = 168}, REPR = 0x7f3c5d288c60 <P6opaque_this_repr>,
REPR_data = 0x355d551d3c0, size = 48, type_check_cache_length = 3, mode_flags = 64,
type_check_cache = 0x355d557c0c0, type_cache_id = 102144, container_spec = 0x7f3c5d24f2a0 <value_desc_cont_spec>,
container_data = 0x355d54b9cd0, boolification_spec = 0x355d55288b0, hll_owner = 0x355d42f9580, hll_role = 0,
WHAT = 0x355d260d4f0, WHO = 0x355d4780c40, HOW = 0x355d295cb00, paramet = {ric = {parameterizer = 0x0,
lookup = 0x0}, erized = {parametric_type = 0x0, parameters = 0x0}}, HOW_sc = 0x355d8f5ed20, HOW_idx = 14043,
debug_name = 0x355d5557a90 "Scalar", being_repossessed = 0 '\000', is_mixin_type = 0 '\000'}
(rr) print want
$6 = (MVMSTable *) 0x355d278eee8
(rr) print want[0]
$7 = {header = {sc_forward_u = {forwarder = 0x10a0000001c, sc = {sc_idx = 28, idx = 266}, st = 0x10a0000001c},
owner = 1, flags1 = 2 '\002', flags2 = 2 '\002', size = 168}, REPR = 0x7f3c5d289980 <Uninstantiable_this_repr>,
REPR_data = 0x0, size = 24, type_check_cache_length = 4, mode_flags = 17, type_check_cache = 0x355d557daa0,
type_cache_id = 317440, container_spec = 0x0, container_data = 0x0, boolification_spec = 0x355d5529680,
hll_owner = 0x355d42f9580, hll_role = 0, WHAT = 0x355d3729be0, WHO = 0x355d4789f80, HOW = 0x355d59d9230,
paramet = {ric = {parameterizer = 0x355d53c4d80, lookup = 0x355d56386b8}, erized = {
parametric_type = 0x355d53c4d80, parameters = 0x355d56386b8}}, HOW_sc = 0x355d8f5ed20, HOW_idx = 99645,
debug_name = 0x355d5529690 "Iterator", being_repossessed = 0 '\000', is_mixin_type = 0 '\000'}
(rr) bt
#0 MVM_spesh_deopt_one (tc=0x355d2020000, deopt_idx=146) at src/spesh/deopt.c:256
#1 0x00007f3c5cc462fb in MVM_interp_run (tc=0x355d2020000,
initial_invoke=0x7f3c5cde53a4 <toplevel_initial_invoke>, invoke_data=0x355d2880700, outer_runloop=0x0)
at src/core/interp.c:5601
#2 0x00007f3c5cde54fe in MVM_vm_run_file (instance=0x355d2010400,
filename=0x65994e0 "/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm") at src/moar.c:505
#3 0x0000000000401705 in main (argc=<optimized out>, argv=<optimized out>) at src/vm/moar/runner/main.c:480
(rr) call MVM_dump_backtrace(tc)
at <unknown>:1 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/1C/1CA230DD87FD1ED08E9604B09C828C9D9EA80971:inserts)
from site#sources/9DED2AA6C7112FD48B15023E49E394BD47CF97F3 (Hash::Sorted):107 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/9D/9DED2AA6C7112FD48B15023E49E394BD47CF97F3:ASSIGN-KEY)
from site#sources/501CE482D25397A4184CD87A1E26A98490F81A13 (Hash::Agnostic):74 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/50/501CE482D25397A4184CD87A1E26A98490F81A13:)
from site#sources/501CE482D25397A4184CD87A1E26A98490F81A13 (Hash::Agnostic):71 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/50/501CE482D25397A4184CD87A1E26A98490F81A13:STORE)
from site#sources/501CE482D25397A4184CD87A1E26A98490F81A13 (Hash::Agnostic):63 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/50/501CE482D25397A4184CD87A1E26A98490F81A13:STORE)
from moar_osr_crash_hash_sorted.raku:8 (<ephemeral file>:<unit>)
from moar_osr_crash_hash_sorted.raku:1 (<ephemeral file>:<unit-outer>)
from NQP::src/HLL/Compiler.nqp:196 (/var/home/timo/raku/prefix/share/nqp/lib/NQPHLL.moarvm:eval)
from NQP::src/HLL/Compiler.nqp:420 (/var/home/timo/raku/prefix/share/nqp/lib/NQPHLL.moarvm:evalfiles)
from NQP::src/HLL/Compiler.nqp:310 (/var/home/timo/raku/prefix/share/nqp/lib/NQPHLL.moarvm:command_eval)
from src/Perl6/Compiler.nqp:234 (/var/home/timo/raku/prefix/share/perl6/lib/Perl6/Compiler.moarvm:command_eval)
from NQP::src/HLL/Compiler.nqp:268 (/var/home/timo/raku/prefix/share/nqp/lib/NQPHLL.moarvm:command_line)
from src/main.nqp:81 (/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm:MAIN)
from src/main.nqp:63 (/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm:<mainline>)
from <unknown>:1 (/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm:<main>)
from <unknown>:1 (/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm:<entry>)
(rr) next
257 if (tc->instance->profiling)
(rr)
266 if (f->spesh_cand) {
(rr)
267 MVMuint32 deopt_target = f->spesh_cand->body.deopts[deopt_idx * 2];
(rr)
268 MVMuint32 deopt_offset = MVM_spesh_deopt_bytecode_pos(f->spesh_cand->body.deopts[deopt_idx * 2 + 1]);
(rr)
269 MVMint32 is_pre = MVM_spesh_deopt_is_pre(f->spesh_cand->body.deopts[deopt_idx * 2 + 1]);
(rr)
274 MVMROOT(tc, f) {
(rr)
275 begin_frame_deopt(tc, f, deopt_idx);
(rr)
278 if (f->spesh_cand->body.inlines) {
(rr)
281 uninline(tc, f, f->spesh_cand, deopt_offset, 0, is_pre);
(rr) list
276
277 /* Perform any uninlining. */
278 if (f->spesh_cand->body.inlines) {
279 /* Perform uninlining. The top frame may have changes, so sync things
280 * up. */
281 uninline(tc, f, f->spesh_cand, deopt_offset, 0, is_pre);
282 top_frame = MVM_callstack_current_frame(tc);
283 tc->cur_frame = top_frame;
284 *(tc->interp_reg_base) = top_frame->work;
285 *(tc->interp_cu) = top_frame->static_info->body.cu;
(rr) next
282 top_frame = MVM_callstack_current_frame(tc);
(rr)
283 tc->cur_frame = top_frame;
(rr)
284 *(tc->interp_reg_base) = top_frame->work;
(rr)
285 *(tc->interp_cu) = top_frame->static_info->body.cu;
(rr)
274 MVMROOT(tc, f) {
(rr)
294 *(tc->interp_cur_op) = top_frame->static_info->body.bytecode + deopt_target;
(rr)
295 *(tc->interp_bytecode_start) = top_frame->static_info->body.bytecode;
(rr)
301 finish_frame_deopt(tc, f);
(rr)
310 }
(rr)
MVM_interp_run (tc=0x355d2020000, initial_invoke=0x7f3c5cde53a4 <toplevel_initial_invoke>,
invoke_data=0x355d2880700, outer_runloop=0x0) at src/core/interp.c:5604
5604 goto NEXT;
(rr) bt
#0 MVM_interp_run (tc=0x355d2020000, initial_invoke=0x7f3c5cde53a4 <toplevel_initial_invoke>,
invoke_data=0x355d2880700, outer_runloop=0x0) at src/core/interp.c:5604
#1 0x00007f3c5cde54fe in MVM_vm_run_file (instance=0x355d2010400,
filename=0x65994e0 "/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm") at src/moar.c:505
#2 0x0000000000401705 in main (argc=<optimized out>, argv=<optimized out>) at src/vm/moar/runner/main.c:480
(rr) call fputs(MVM_spesh_dump_register_layout(tc, tc->cur_frame), stderr)
Parameters:
source: f->caller->work: (MVMRegister *)0x355d2483300
frame of source: (MVMFrame *)0x355d2483258
callsite of params: Callsite 0x7f3c5d294f20 (1 args, 1 pos)
Positional flags: obj
Locals (registers)
0: ( obj) 0x355d229b8a0 (conc of P6opaque name List::Reifier)
1: ( obj) (nil)
2: ( obj) (nil)
3: ( obj) (nil)
4: ( obj) (nil)
5: ( obj) 0x355d229bad8 (conc of P6opaque name Scalar)
6: ( int64) 0x0
7: ( int64) 0x0
8: ( int64) 0x0
9: ( obj) (nil)
$8 = 1
(rr) call MVM_dump_backtrace(tc)
at SETTING::src/core.c/List.rakumod:167 (/var/home/timo/raku/prefix/share/perl6/runtime/CORE.c.setting.moarvm:fully-reified)
from SETTING::src/core.c/List.rakumod:458 (/var/home/timo/raku/prefix/share/perl6/runtime/CORE.c.setting.moarvm:elems)
from site#sources/1CA230DD87FD1ED08E9604B09C828C9D9EA80971 (Array::Sorted::Util):154 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/1C/1CA230DD87FD1ED08E9604B09C828C9D9EA80971:insert-also)
from site#sources/1CA230DD87FD1ED08E9604B09C828C9D9EA80971 (Array::Sorted::Util):219 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/1C/1CA230DD87FD1ED08E9604B09C828C9D9EA80971:inserts)
from site#sources/9DED2AA6C7112FD48B15023E49E394BD47CF97F3 (Hash::Sorted):107 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/9D/9DED2AA6C7112FD48B15023E49E394BD47CF97F3:ASSIGN-KEY)
from site#sources/501CE482D25397A4184CD87A1E26A98490F81A13 (Hash::Agnostic):74 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/50/501CE482D25397A4184CD87A1E26A98490F81A13:)
from site#sources/501CE482D25397A4184CD87A1E26A98490F81A13 (Hash::Agnostic):71 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/50/501CE482D25397A4184CD87A1E26A98490F81A13:STORE)
from site#sources/501CE482D25397A4184CD87A1E26A98490F81A13 (Hash::Agnostic):63 (/var/home/timo/raku/prefix/share/perl6/site/precomp/4E7BD9243F06AAA401D49D16C049E69C6FB3AA6E/50/501CE482D25397A4184CD87A1E26A98490F81A13:STORE)
from moar_osr_crash_hash_sorted.raku:8 (<ephemeral file>:<unit>)
from moar_osr_crash_hash_sorted.raku:1 (<ephemeral file>:<unit-outer>)
from NQP::src/HLL/Compiler.nqp:196 (/var/home/timo/raku/prefix/share/nqp/lib/NQPHLL.moarvm:eval)
from NQP::src/HLL/Compiler.nqp:420 (/var/home/timo/raku/prefix/share/nqp/lib/NQPHLL.moarvm:evalfiles)
from NQP::src/HLL/Compiler.nqp:310 (/var/home/timo/raku/prefix/share/nqp/lib/NQPHLL.moarvm:command_eval)
from src/Perl6/Compiler.nqp:234 (/var/home/timo/raku/prefix/share/perl6/lib/Perl6/Compiler.moarvm:command_eval)
from NQP::src/HLL/Compiler.nqp:268 (/var/home/timo/raku/prefix/share/nqp/lib/NQPHLL.moarvm:command_line)
from src/main.nqp:81 (/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm:MAIN)
from src/main.nqp:63 (/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm:<mainline>)
from <unknown>:1 (/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm:<main>)
from <unknown>:1 (/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm:<entry>)
(rr) bt
#0 MVM_interp_run (tc=0x355d2020000, initial_invoke=0x7f3c5cde53a4 <toplevel_initial_invoke>,
invoke_data=0x355d2880700, outer_runloop=0x0) at src/core/interp.c:5604
#1 0x00007f3c5cde54fe in MVM_vm_run_file (instance=0x355d2010400,
filename=0x65994e0 "/var/home/timo/raku/prefix/share/perl6/runtime/perl6.moarvm") at src/moar.c:505
#2 0x0000000000401705 in main (argc=<optimized out>, argv=<optimized out>) at src/vm/moar/runner/main.c:480
(rr) next
2829 MVMuint8 *prev_op = cur_op;
(rr)
2830 MVMObject *obj = GET_REG(cur_op, 2).o;
(rr)
2831 MVMRegister *r = &GET_REG(cur_op, 0);
(rr)
2832 cur_op += 4;
(rr)
2833 if (IS_CONCRETE(obj) && STABLE(obj)->container_spec) {
(rr)
2834 STABLE(obj)->container_spec->fetch(tc, obj, r);
(rr)
2839 if (MVM_spesh_log_is_logging(tc))
(rr)
2841 goto NEXT;
(rr)
1705 MVMObject *obj = GET_REG(cur_op, 2).o;
(rr)
1706 GET_REG(cur_op, 0).i64 = obj && IS_CONCRETE(obj) ? 1 : 0;
(rr)
1707 cur_op += 4;
(rr)
1708 goto NEXT;
(rr)
231 GET_REG(cur_op, 0) = GET_REG(cur_op, 2);
(rr)
232 cur_op += 4;
(rr)
233 goto NEXT;
(rr)
295 if (GET_REG(cur_op, 0).i64)
(rr)
298 cur_op += 6;
(rr)
299 GC_SYNC_POINT(tc);
(rr)
300 goto NEXT;
(rr)
2978 MVMuint16 dep = GET_UI16(cur_op, 2);
(rr)
2979 MVMuint16 idx = GET_UI16(cur_op, 4);
(rr)
2980 GET_REG(cur_op, 0).o = MVM_sc_get_sc_object(tc, cu, dep, idx);
(rr)
2981 cur_op += 6;
(rr)
2982 goto NEXT;
(rr)
1964 MVMObject *obj = GET_REG(cur_op, 2).o;
(rr)
1965 if (!IS_CONCRETE(obj))
(rr)
1967 REPR(obj)->attr_funcs.get_attribute(tc,
(rr)
1970 GET_I16(cur_op, 10), &GET_REG(cur_op, 0), MVM_reg_obj);
(rr)
1967 REPR(obj)->attr_funcs.get_attribute(tc,
(rr) list
1962 }
1963 OP(getattr_o): {
1964 MVMObject *obj = GET_REG(cur_op, 2).o;
1965 if (!IS_CONCRETE(obj))
1966 MVM_exception_throw_adhoc(tc, "Cannot look up attributes in a %s type object. Did you forget a '.new'?", MVM_6model_get_debug_name(tc, obj));
1967 REPR(obj)->attr_funcs.get_attribute(tc,
1968 STABLE(obj), obj, OBJECT_BODY(obj),
1969 GET_REG(cur_op, 4).o, MVM_cu_string(tc, cu, GET_UI32(cur_op, 6)),
1970 GET_I16(cur_op, 10), &GET_REG(cur_op, 0), MVM_reg_obj);
1971 if (MVM_spesh_log_is_logging(tc))
(rr) call MVM_str MVM_cu_string(tc, cu, GET_UI32(cur_op, 6))
Display all 200 possibilities? (y or n)
(rr) call MVM_string_utf8_encode_C_string(tc, MVM_cu_string(tc, cu, GET_UI32(cur_op, 6))
A syntax error in expression, near the end of `MVM_string_utf8_encode_C_string(tc, MVM_cu_string(tc, cu, GET_UI32(cur_op, 6))'.
(rr) print MVM_string_utf8_encode_C_string(tc, MVM_cu_string(tc, cu, GET_UI32(cur_op, 6)))
$9 = 0x355d2c72280 "$!future"
(rr) call MVM_dump_bytecode(tc)
00000 checkarity 1, 1
00001 param_rp_o loc_2_obj, 0
00002 dispatch_o loc_5_obj, 'lang-hllize', Callsite_1, loc_2_obj
00003 set loc_2_obj, loc_5_obj
00004 decont loc_5_obj, loc_2_obj
00005 set loc_9_obj, loc_5_obj
00006 wval loc_5_obj, 1, 4720
00007 istype loc_8_int, loc_9_obj, loc_5_obj
00008 assertparamcheck loc_8_int
00009 set loc_0_obj, loc_9_obj
00010 param_sn loc_3_obj
annotation: SETTING::src/core.c/List.rakumod:167
00011 wval loc_4_obj, 1, 4720
00012 getattr_o loc_5_obj, loc_0_obj, loc_4_obj, '$!current-iter', 1
00013 decont loc_4_obj, loc_5_obj
00014 isconcrete loc_6_int, loc_4_obj
00015 set loc_8_int, loc_6_int
00016 if_i loc_6_int, label_1(00022)
00017 wval loc_4_obj, 1, 4720
00018 -> getattr_o loc_5_obj, loc_0_obj, loc_4_obj, '$!future', 2
00019 decont loc_4_obj, loc_5_obj
00020 isconcrete loc_7_int, loc_4_obj
00021 set loc_8_int, loc_7_int
label_1:
00022 not_i loc_8_int, loc_8_int
00023 hllbool loc_4_obj, loc_8_int
00024 return_o loc_4_obj
(rr) next
1970 GET_I16(cur_op, 10), &GET_REG(cur_op, 0), MVM_reg_obj);
(rr)
1967 REPR(obj)->attr_funcs.get_attribute(tc,
(rr)
1969 GET_REG(cur_op, 4).o, MVM_cu_string(tc, cu, GET_UI32(cur_op, 6)),
(rr)
1967 REPR(obj)->attr_funcs.get_attribute(tc,
(rr)
1968 STABLE(obj), obj, OBJECT_BODY(obj),
(rr)
1967 REPR(obj)->attr_funcs.get_attribute(tc,
(rr)
1971 if (MVM_spesh_log_is_logging(tc))
(rr)
1973 cur_op += 12;
(rr)
1974 goto NEXT;
(rr)
2829 MVMuint8 *prev_op = cur_op;
(rr)
2830 MVMObject *obj = GET_REG(cur_op, 2).o;
(rr)
2831 MVMRegister *r = &GET_REG(cur_op, 0);
(rr)
2832 cur_op += 4;
(rr)
2833 if (IS_CONCRETE(obj) && STABLE(obj)->container_spec) {
(rr) list
2828 OP(decont): {
2829 MVMuint8 *prev_op = cur_op;
2830 MVMObject *obj = GET_REG(cur_op, 2).o;
2831 MVMRegister *r = &GET_REG(cur_op, 0);
2832 cur_op += 4;
2833 if (IS_CONCRETE(obj) && STABLE(obj)->container_spec) {
2834 STABLE(obj)->container_spec->fetch(tc, obj, r);
2835 }
2836 else {
2837 r->o = obj;
(rr) next
2837 r->o = obj;
(rr)
2839 if (MVM_spesh_log_is_logging(tc))
(rr)
2841 goto NEXT;
(rr)
1705 MVMObject *obj = GET_REG(cur_op, 2).o;
(rr)
1706 GET_REG(cur_op, 0).i64 = obj && IS_CONCRETE(obj) ? 1 : 0;
(rr)
1707 cur_op += 4;
(rr)
1708 goto NEXT;
(rr)
231 GET_REG(cur_op, 0) = GET_REG(cur_op, 2);
(rr) list
226 OP(const_s):
227 GET_REG(cur_op, 0).s = MVM_cu_string(tc, cu, GET_UI32(cur_op, 2));
228 cur_op += 6;
229 goto NEXT;
230 OP(set):
231 GET_REG(cur_op, 0) = GET_REG(cur_op, 2);
232 cur_op += 4;
233 goto NEXT;
234 OP(extend_u8):
235 GET_REG(cur_op, 0).u64 = (MVMuint64)GET_REG(cur_op, 2).u8;
(rr) next
232 cur_op += 4;
(rr)
233 goto NEXT;
(rr)
771 GET_REG(cur_op, 0).i64 = GET_REG(cur_op, 2).i64 ? 0 : 1;
(rr)
772 cur_op += 4;
(rr)
773 goto NEXT;
(rr)
5230 MVMObject *bool_value = GET_REG(cur_op, 2).i64
(rr)
5232 : cu->body.hll_config->false_value;
(rr)
5231 ? cu->body.hll_config->true_value
(rr)
5232 : cu->body.hll_config->false_value;
(rr)
5230 MVMObject *bool_value = GET_REG(cur_op, 2).i64
(rr)
5233 if (!bool_value)
(rr)
5235 GET_REG(cur_op, 0).o = bool_value;
(rr)
5236 cur_op += 4;
(rr)
5237 goto NEXT;
(rr)
576 MVMObject *value = GET_REG(cur_op, 0).o;
(rr) list
571 MVM_RETURN_CALLER_FRAME);
572 if (MVM_frame_try_return(tc) == 0)
573 goto return_label;
574 goto NEXT;
575 OP(return_o): {
576 MVMObject *value = GET_REG(cur_op, 0).o;
577 MVM_args_set_result_obj(tc, value, MVM_RETURN_CALLER_FRAME);
578 if (MVM_frame_try_return(tc) == 0)
579 goto return_label;
580 goto NEXT;
(rr) next
577 MVM_args_set_result_obj(tc, value, MVM_RETURN_CALLER_FRAME);
(rr)
578 if (MVM_frame_try_return(tc) == 0)
(rr)
580 goto NEXT;
(rr)
5508 MVMDispInlineCacheEntry **ice_ptr = MVM_disp_inline_cache_get(
(rr) list
5503 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
5504 tc->cur_frame->static_info, bytecode_offset);
5505 goto NEXT;
5506 }
5507 OP(dispatch_o): {
5508 MVMDispInlineCacheEntry **ice_ptr = MVM_disp_inline_cache_get(
5509 cur_op, bytecode_start, tc->cur_frame);
5510 MVMDispInlineCacheEntry *ice = *ice_ptr;
5511 MVMString *id = MVM_cu_string(tc, cu, GET_UI32(cur_op, 2));
5512 MVMCallsite *callsite = cu->body.callsites[GET_UI16(cur_op, 6)];
(rr) call MVM_dump_bytecode(tc)
00000 checkarity 1, 1
00001 param_rp_o loc_2_obj, 0
00002 dispatch_o loc_8_obj, 'lang-hllize', Callsite_1, loc_2_obj
00003 set loc_2_obj, loc_8_obj
00004 decont loc_8_obj, loc_2_obj
00005 set loc_15_obj, loc_8_obj
00006 wval loc_8_obj, 0, 45
00007 istype loc_6_int, loc_15_obj, loc_8_obj
00008 assertparamcheck loc_6_int
00009 isconcrete loc_6_int, loc_15_obj
00010 assertparamcheck loc_6_int
00011 set loc_0_obj, loc_15_obj
00012 param_sn loc_3_obj
annotation: SETTING::src/core.c/List.rakumod:458
00013 wval loc_4_obj, 0, 45
00014 getattr_o loc_5_obj, loc_0_obj, loc_4_obj, '$!todo', 1
00015 decont loc_4_obj, loc_5_obj
00016 isconcrete loc_6_int, loc_4_obj
00017 unless_i loc_6_int, label_3(00052)
00018 wval loc_4_obj, 0, 45
00019 getattr_o loc_5_obj, loc_0_obj, loc_4_obj, '$!todo', 1
00020 decont loc_4_obj, loc_5_obj
00021 const_s loc_7_str, 'reify-until-lazy'
00022 dispatch_o loc_5_obj, 'lang-meth-call', Callsite_6, loc_4_obj, loc_7_str, loc_5_obj
00023 dispatch_o loc_4_obj, 'lang-hllize', Callsite_1, loc_5_obj
00024 wval loc_5_obj, 0, 45
00025 getattr_o loc_8_obj, loc_0_obj, loc_5_obj, '$!todo', 1
00026 decont loc_5_obj, loc_8_obj
00027 const_s loc_7_str, 'fully-reified'
00028 dispatch_o loc_8_obj, 'lang-meth-call', Callsite_6, loc_5_obj, loc_7_str, loc_8_obj
00029 -> dispatch_o loc_5_obj, 'lang-hllize', Callsite_1, loc_8_obj
00030 decont loc_10_obj, loc_5_obj
00031 dispatch_i loc_13_int, 'boot-boolify', Callsite_1, loc_10_obj
00032 unless_i loc_13_int, label_1(00043)
00033 wval loc_8_obj, 0, 45
00034 null loc_9_obj
00035 bindattr_o loc_0_obj, loc_8_obj, '$!todo', loc_9_obj, 1
00036 wval loc_8_obj, 0, 45
00037 getattr_o loc_10_obj, loc_0_obj, loc_8_obj, '$!reified', 0
00038 elems loc_11_int, loc_10_obj
00039 hllboxtype_i loc_10_obj
00040 box_i loc_10_obj, loc_11_int, loc_10_obj
00041 set loc_12_obj, loc_10_obj
00042 goto label_2(00050)
label_1:
00043 decont loc_10_obj, loc_0_obj
00044 const_s loc_7_str, 'fail-iterator-cannot-be-lazy'
00045 wval loc_8_obj, 1, 27723
00046 wval loc_12_obj, 1, 194
00047 dispatch_o loc_12_obj, 'lang-meth-call', Callsite_17, loc_10_obj, loc_7_str, loc_0_obj, loc_8_obj, loc_12_obj
00048 dispatch_o loc_8_obj, 'lang-hllize', Callsite_1, loc_12_obj
00049 set loc_12_obj, loc_8_obj
label_2:
00050 set loc_8_obj, loc_12_obj
00051 goto label_5(00065)
label_3:
00052 wval loc_5_obj, 0, 45
00053 getattr_o loc_8_obj, loc_0_obj, loc_5_obj, '$!reified', 0
00054 decont loc_5_obj, loc_8_obj
00055 isconcrete loc_11_int, loc_5_obj
00056 set loc_14_int, loc_11_int
00057 unless_i loc_11_int, label_4(00062)
00058 wval loc_5_obj, 0, 45
00059 getattr_o loc_8_obj, loc_0_obj, loc_5_obj, '$!reified', 0
00060 elems loc_13_int, loc_8_obj
00061 set loc_14_int, loc_13_int
label_4:
00062 hllboxtype_i loc_12_obj
00063 box_i loc_12_obj, loc_14_int, loc_12_obj
00064 set loc_8_obj, loc_12_obj
label_5:
00065 dispatch_o loc_5_obj, 'raku-rv-decont', Callsite_1, loc_8_obj
00066 return_o loc_5_obj
(rr) call MVM_spesh_dump_
MVM_spesh_dump_arg_guard MVM_spesh_dump_planned@got.plt MVM_spesh_dump_stats@got.plt
MVM_spesh_dump_arg_guard@got.plt MVM_spesh_dump_planned@plt MVM_spesh_dump_stats@plt
MVM_spesh_dump_arg_guard@plt MVM_spesh_dump_register_layout
MVM_spesh_dump_planned MVM_spesh_dump_stats
(rr) call fputs(MVM_spesh_dump_register_layout(tc, tc->cur_frame), stderr)
Parameters:
source: f->caller->work: (MVMRegister *)0x355d2483118
frame of source: (MVMFrame *)0x355d2483070
callsite of params: Callsite 0x7f3c5d294f20 (1 args, 1 pos)
Positional flags: obj
Locals (registers)
0: ( obj) 0x355d229b808 (conc of P6opaque name Array)
1: ( obj) (nil)
2: ( obj) (nil)
3: ( obj) (nil)
4: ( obj) 0x355d4771078 (conc of P6opaque name Int)
5: ( obj) 0x355d4771078 (conc of P6opaque name Int)
6: ( int64) 0x0
7: ( str) 0x355d4952c20
8: ( obj) 0x355d45cda18 (conc of P6opaque name Bool)
9: ( obj) (nil)
10: ( obj) (nil)
11: ( int64) 0x0
12: ( obj) (nil)
13: ( int64) 0x0
14: ( int64) 0x0
15: ( obj) (nil)
$10 = 1
(rr)
(rr) next
5510 MVMDispInlineCacheEntry *ice = *ice_ptr;
(rr)
5511 MVMString *id = MVM_cu_string(tc, cu, GET_UI32(cur_op, 2));
(rr)
5512 MVMCallsite *callsite = cu->body.callsites[GET_UI16(cur_op, 6)];
(rr)
5513 MVMuint16 *args = (MVMuint16 *)(cur_op + 8);
(rr)
5514 MVMuint32 bytecode_offset = (cur_op - bytecode_start) - 2;
(rr)
5515 tc->cur_frame->return_value = &GET_REG(cur_op, 0);
(rr)
5516 tc->cur_frame->return_type = MVM_RETURN_OBJ;
(rr)
5517 cur_op += 8 + 2 * callsite->flag_count;
(rr) list
5512 MVMCallsite *callsite = cu->body.callsites[GET_UI16(cur_op, 6)];
5513 MVMuint16 *args = (MVMuint16 *)(cur_op + 8);
5514 MVMuint32 bytecode_offset = (cur_op - bytecode_start) - 2;
5515 tc->cur_frame->return_value = &GET_REG(cur_op, 0);
5516 tc->cur_frame->return_type = MVM_RETURN_OBJ;
5517 cur_op += 8 + 2 * callsite->flag_count;
5518 tc->cur_frame->return_address = cur_op;
5519 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
5520 tc->cur_frame->static_info, bytecode_offset);
5521 goto NEXT;
(rr) next
5518 tc->cur_frame->return_address = cur_op;
(rr)
5519 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
(rr)
5520 tc->cur_frame->static_info, bytecode_offset);
(rr)
5519 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
(rr)
5521 goto NEXT;
(rr)
2829 MVMuint8 *prev_op = cur_op;
(rr)
2830 MVMObject *obj = GET_REG(cur_op, 2).o;
(rr)
2831 MVMRegister *r = &GET_REG(cur_op, 0);
(rr)
2832 cur_op += 4;
(rr)
2833 if (IS_CONCRETE(obj) && STABLE(obj)->container_spec) {
(rr)
2837 r->o = obj;
(rr)
2839 if (MVM_spesh_log_is_logging(tc))
(rr)
2841 goto NEXT;
(rr)
5444 MVMDispInlineCacheEntry **ice_ptr = MVM_disp_inline_cache_get(
(rr) list
5439 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
5440 tc->cur_frame->static_info, bytecode_offset);
5441 goto NEXT;
5442 }
5443 OP(dispatch_i): {
5444 MVMDispInlineCacheEntry **ice_ptr = MVM_disp_inline_cache_get(
5445 cur_op, bytecode_start, tc->cur_frame);
5446 MVMDispInlineCacheEntry *ice = *ice_ptr;
5447 MVMString *id = MVM_cu_string(tc, cu, GET_UI32(cur_op, 2));
5448 MVMCallsite *callsite = cu->body.callsites[GET_UI16(cur_op, 6)];
(rr) next
5446 MVMDispInlineCacheEntry *ice = *ice_ptr;
(rr)
5447 MVMString *id = MVM_cu_string(tc, cu, GET_UI32(cur_op, 2));
(rr)
5448 MVMCallsite *callsite = cu->body.callsites[GET_UI16(cur_op, 6)];
(rr)
5449 MVMuint16 *args = (MVMuint16 *)(cur_op + 8);
(rr)
5450 MVMuint32 bytecode_offset = (cur_op - bytecode_start) - 2;
(rr)
5451 tc->cur_frame->return_value = &GET_REG(cur_op, 0);
(rr)
5452 tc->cur_frame->return_type = MVM_RETURN_INT;
(rr)
5453 cur_op += 8 + 2 * callsite->flag_count;
(rr)
5454 tc->cur_frame->return_address = cur_op;
(rr)
5455 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
(rr)
5456 tc->cur_frame->static_info, bytecode_offset);
(rr)
5455 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
(rr)
5457 goto NEXT;
(rr)
302 if (GET_REG(cur_op, 0).i64)
(rr)
303 cur_op += 6;
(rr)
306 GC_SYNC_POINT(tc);
(rr)
307 goto NEXT;
(rr)
2978 MVMuint16 dep = GET_UI16(cur_op, 2);
(rr) list
2973 sh, cr, conf, blob);
2974 cur_op += 10;
2975 goto NEXT;
2976 }
2977 OP(wval): {
2978 MVMuint16 dep = GET_UI16(cur_op, 2);
2979 MVMuint16 idx = GET_UI16(cur_op, 4);
2980 GET_REG(cur_op, 0).o = MVM_sc_get_sc_object(tc, cu, dep, idx);
2981 cur_op += 6;
2982 goto NEXT;
(rr) next
2979 MVMuint16 idx = GET_UI16(cur_op, 4);
(rr)
2980 GET_REG(cur_op, 0).o = MVM_sc_get_sc_object(tc, cu, dep, idx);
(rr)
2981 cur_op += 6;
(rr)
2982 goto NEXT;
(rr)
1646 GET_REG(cur_op, 0).o = tc->instance->VMNull;
(rr) call MVM_dump_bytecode(tc)
00000 checkarity 1, 1
00001 param_rp_o loc_2_obj, 0
00002 dispatch_o loc_8_obj, 'lang-hllize', Callsite_1, loc_2_obj
00003 set loc_2_obj, loc_8_obj
00004 decont loc_8_obj, loc_2_obj
00005 set loc_15_obj, loc_8_obj
00006 wval loc_8_obj, 0, 45
00007 istype loc_6_int, loc_15_obj, loc_8_obj
00008 assertparamcheck loc_6_int
00009 isconcrete loc_6_int, loc_15_obj
00010 assertparamcheck loc_6_int
00011 set loc_0_obj, loc_15_obj
00012 param_sn loc_3_obj
annotation: SETTING::src/core.c/List.rakumod:458
00013 wval loc_4_obj, 0, 45
00014 getattr_o loc_5_obj, loc_0_obj, loc_4_obj, '$!todo', 1
00015 decont loc_4_obj, loc_5_obj
00016 isconcrete loc_6_int, loc_4_obj
00017 unless_i loc_6_int, label_3(00052)
00018 wval loc_4_obj, 0, 45
00019 getattr_o loc_5_obj, loc_0_obj, loc_4_obj, '$!todo', 1
00020 decont loc_4_obj, loc_5_obj
00021 const_s loc_7_str, 'reify-until-lazy'
00022 dispatch_o loc_5_obj, 'lang-meth-call', Callsite_6, loc_4_obj, loc_7_str, loc_5_obj
00023 dispatch_o loc_4_obj, 'lang-hllize', Callsite_1, loc_5_obj
00024 wval loc_5_obj, 0, 45
00025 getattr_o loc_8_obj, loc_0_obj, loc_5_obj, '$!todo', 1
00026 decont loc_5_obj, loc_8_obj
00027 const_s loc_7_str, 'fully-reified'
00028 dispatch_o loc_8_obj, 'lang-meth-call', Callsite_6, loc_5_obj, loc_7_str, loc_8_obj
00029 dispatch_o loc_5_obj, 'lang-hllize', Callsite_1, loc_8_obj
00030 decont loc_10_obj, loc_5_obj
00031 dispatch_i loc_13_int, 'boot-boolify', Callsite_1, loc_10_obj
00032 -> unless_i loc_13_int, label_1(00043)
00033 wval loc_8_obj, 0, 45
00034 null loc_9_obj
00035 bindattr_o loc_0_obj, loc_8_obj, '$!todo', loc_9_obj, 1
00036 wval loc_8_obj, 0, 45
00037 getattr_o loc_10_obj, loc_0_obj, loc_8_obj, '$!reified', 0
00038 elems loc_11_int, loc_10_obj
00039 hllboxtype_i loc_10_obj
00040 box_i loc_10_obj, loc_11_int, loc_10_obj
00041 set loc_12_obj, loc_10_obj
00042 goto label_2(00050)
label_1:
00043 decont loc_10_obj, loc_0_obj
00044 const_s loc_7_str, 'fail-iterator-cannot-be-lazy'
00045 wval loc_8_obj, 1, 27723
00046 wval loc_12_obj, 1, 194
00047 dispatch_o loc_12_obj, 'lang-meth-call', Callsite_17, loc_10_obj, loc_7_str, loc_0_obj, loc_8_obj, loc_12_obj
00048 dispatch_o loc_8_obj, 'lang-hllize', Callsite_1, loc_12_obj
00049 set loc_12_obj, loc_8_obj
label_2:
00050 set loc_8_obj, loc_12_obj
00051 goto label_5(00065)
label_3:
00052 wval loc_5_obj, 0, 45
00053 getattr_o loc_8_obj, loc_0_obj, loc_5_obj, '$!reified', 0
00054 decont loc_5_obj, loc_8_obj
00055 isconcrete loc_11_int, loc_5_obj
00056 set loc_14_int, loc_11_int
00057 unless_i loc_11_int, label_4(00062)
00058 wval loc_5_obj, 0, 45
00059 getattr_o loc_8_obj, loc_0_obj, loc_5_obj, '$!reified', 0
00060 elems loc_13_int, loc_8_obj
00061 set loc_14_int, loc_13_int
label_4:
00062 hllboxtype_i loc_12_obj
00063 box_i loc_12_obj, loc_14_int, loc_12_obj
00064 set loc_8_obj, loc_12_obj
label_5:
00065 dispatch_o loc_5_obj, 'raku-rv-decont', Callsite_1, loc_8_obj
00066 return_o loc_5_obj
(rr) next
1647 cur_op += 2;
(rr)
1648 goto NEXT;
(rr)
1848 MVMObject *obj = GET_REG(cur_op, 0).o;
(rr)
1849 if (!IS_CONCRETE(obj))
(rr)
1851 REPR(obj)->attr_funcs.bind_attribute(tc,
(rr)
1854 GET_I16(cur_op, 10), GET_REG(cur_op, 8), MVM_reg_obj);
(rr)
1851 REPR(obj)->attr_funcs.bind_attribute(tc,
(rr)
1853 GET_REG(cur_op, 2).o, MVM_cu_string(tc, cu, GET_UI32(cur_op, 4)),
(rr)
1851 REPR(obj)->attr_funcs.bind_attribute(tc,
(rr)
1852 STABLE(obj), obj, OBJECT_BODY(obj),
(rr)
1851 REPR(obj)->attr_funcs.bind_attribute(tc,
(rr)
1855 MVM_SC_WB_OBJ(tc, obj);
(rr)
1856 cur_op += 12;
(rr)
1857 goto NEXT;
(rr)
2978 MVMuint16 dep = GET_UI16(cur_op, 2);
(rr)
2979 MVMuint16 idx = GET_UI16(cur_op, 4);
(rr)
2980 GET_REG(cur_op, 0).o = MVM_sc_get_sc_object(tc, cu, dep, idx);
(rr)
2981 cur_op += 6;
(rr)
2982 goto NEXT;
(rr)
1964 MVMObject *obj = GET_REG(cur_op, 2).o;
(rr) list
1959 GET_I16(cur_op, 10), &GET_REG(cur_op, 0), MVM_reg_str);
1960 cur_op += 12;
1961 goto NEXT;
1962 }
1963 OP(getattr_o): {
1964 MVMObject *obj = GET_REG(cur_op, 2).o;
1965 if (!IS_CONCRETE(obj))
1966 MVM_exception_throw_adhoc(tc, "Cannot look up attributes in a %s type object. Did you forget a '.new'?", MVM_6model_get_debug_name(tc, obj));
1967 REPR(obj)->attr_funcs.get_attribute(tc,
1968 STABLE(obj), obj, OBJECT_BODY(obj),
(rr) next
1965 if (!IS_CONCRETE(obj))
(rr)
1967 REPR(obj)->attr_funcs.get_attribute(tc,
(rr)
1970 GET_I16(cur_op, 10), &GET_REG(cur_op, 0), MVM_reg_obj);
(rr)
1967 REPR(obj)->attr_funcs.get_attribute(tc,
(rr)
1970 GET_I16(cur_op, 10), &GET_REG(cur_op, 0), MVM_reg_obj);
(rr)
1967 REPR(obj)->attr_funcs.get_attribute(tc,
(rr)
1969 GET_REG(cur_op, 4).o, MVM_cu_string(tc, cu, GET_UI32(cur_op, 6)),
(rr)
1967 REPR(obj)->attr_funcs.get_attribute(tc,
(rr)
1968 STABLE(obj), obj, OBJECT_BODY(obj),
(rr)
1967 REPR(obj)->attr_funcs.get_attribute(tc,
(rr)
1971 if (MVM_spesh_log_is_logging(tc))
(rr)
1973 cur_op += 12;
(rr)
1974 goto NEXT;
(rr)
2408 MVMObject *obj = GET_REG(cur_op, 2).o;
(rr) list
2403 MVM_SC_WB_OBJ(tc, obj);
2404 cur_op += 4;
2405 goto NEXT;
2406 }
2407 OP(elems): {
2408 MVMObject *obj = GET_REG(cur_op, 2).o;
2409 CHECK_CONC(obj);
2410 GET_REG(cur_op, 0).i64 = (MVMint64)REPR(obj)->elems(tc, STABLE(obj), obj, OBJECT_BODY(obj));
2411 cur_op += 4;
2412 goto NEXT;
(rr) next
2409 CHECK_CONC(obj);
(rr)
2410 GET_REG(cur_op, 0).i64 = (MVMint64)REPR(obj)->elems(tc, STABLE(obj), obj, OBJECT_BODY(obj));
(rr)
2411 cur_op += 4;
(rr)
2412 goto NEXT;
(rr)
2547 GET_REG(cur_op, 0).o = cu->body.hll_config->int_box_type;
(rr)
2548 cur_op += 2;
(rr)
2549 goto NEXT;
(rr)
2044 GET_REG(cur_op, 0).o = MVM_repr_box_int(tc, GET_REG(cur_op, 4).o, GET_REG(cur_op, 2).i64);
(rr)
2045 cur_op += 6;
(rr)
2046 goto NEXT;
(rr)
231 GET_REG(cur_op, 0) = GET_REG(cur_op, 2);
(rr) next
232 cur_op += 4;
(rr)
233 goto NEXT;
(rr)
291 cur_op = bytecode_start + GET_UI32(cur_op, 0);
(rr)
292 GC_SYNC_POINT(tc);
(rr)
293 goto NEXT;
(rr)
231 GET_REG(cur_op, 0) = GET_REG(cur_op, 2);
(rr)
232 cur_op += 4;
(rr)
233 goto NEXT;
(rr)
291 cur_op = bytecode_start + GET_UI32(cur_op, 0);
(rr)
292 GC_SYNC_POINT(tc);
(rr)
293 goto NEXT;
(rr)
5508 MVMDispInlineCacheEntry **ice_ptr = MVM_disp_inline_cache_get(
(rr) list
5503 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
5504 tc->cur_frame->static_info, bytecode_offset);
5505 goto NEXT;
5506 }
5507 OP(dispatch_o): {
5508 MVMDispInlineCacheEntry **ice_ptr = MVM_disp_inline_cache_get(
5509 cur_op, bytecode_start, tc->cur_frame);
5510 MVMDispInlineCacheEntry *ice = *ice_ptr;
5511 MVMString *id = MVM_cu_string(tc, cu, GET_UI32(cur_op, 2));
5512 MVMCallsite *callsite = cu->body.callsites[GET_UI16(cur_op, 6)];
(rr) next
5510 MVMDispInlineCacheEntry *ice = *ice_ptr;
(rr)
5511 MVMString *id = MVM_cu_string(tc, cu, GET_UI32(cur_op, 2));
(rr)
5512 MVMCallsite *callsite = cu->body.callsites[GET_UI16(cur_op, 6)];
(rr) print id[0]
$11 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, st = 0x0}, owner = 1,
flags1 = 0 '\000', flags2 = 2 '\002', size = 48}, st = 0x355d2728000}, body = {storage = {
blob_32 = 0x355d8150240, blob_ascii = 0x355d8150240 "raku-rv-decont",
blob_8 = 0x355d8150240 "raku-rv-decont", strands = 0x355d8150240, in_situ_8 = "@\002\025\330U\003\000",
in_situ_32 = {-669711808, 853}, any = 3667232358976, any_ptr = 0x355d8150240}, storage_type = 2,
num_strands = 0, num_graphs = 14, cached_hash_code = 7923231971703762741}}
(rr) next
5513 MVMuint16 *args = (MVMuint16 *)(cur_op + 8);
(rr)
5514 MVMuint32 bytecode_offset = (cur_op - bytecode_start) - 2;
(rr)
5515 tc->cur_frame->return_value = &GET_REG(cur_op, 0);
(rr)
5516 tc->cur_frame->return_type = MVM_RETURN_OBJ;
(rr)
5517 cur_op += 8 + 2 * callsite->flag_count;
(rr)
5518 tc->cur_frame->return_address = cur_op;
(rr)
5519 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
(rr)
5520 tc->cur_frame->static_info, bytecode_offset);
(rr)
5519 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
(rr)
5521 goto NEXT;
(rr)
576 MVMObject *value = GET_REG(cur_op, 0).o;
(rr) list
571 MVM_RETURN_CALLER_FRAME);
572 if (MVM_frame_try_return(tc) == 0)
573 goto return_label;
574 goto NEXT;
575 OP(return_o): {
576 MVMObject *value = GET_REG(cur_op, 0).o;
577 MVM_args_set_result_obj(tc, value, MVM_RETURN_CALLER_FRAME);
578 if (MVM_frame_try_return(tc) == 0)
579 goto return_label;
580 goto NEXT;
(rr) call fputs(MVM_spesh_dump_register_layout(tc, tc->cur_frame), stderr)
Parameters:
source: f->caller->work: (MVMRegister *)0x355d2483118
frame of source: (MVMFrame *)0x355d2483070
callsite of params: Callsite 0x7f3c5d294f20 (1 args, 1 pos)
Positional flags: obj
Locals (registers)
0: ( obj) 0x355d229b808 (conc of P6opaque name Array)
1: ( obj) (nil)
2: ( obj) (nil)
3: ( obj) (nil)
4: ( obj) 0x355d4771078 (conc of P6opaque name Int)
5: ( obj) 0x355d4771078 (conc of P6opaque name Int)
6: ( int64) 0x0
7: ( str) 0x355d4952c20
8: ( obj) 0x355d4771078 (conc of P6opaque name Int)
9: ( obj) 0x355d2600830 (type of Null name VMNull)
10: ( obj) 0x355d4771078 (conc of P6opaque name Int)
11: ( int64) 0x2
12: ( obj) 0x355d4771078 (conc of P6opaque name Int)
13: ( int64) 0x1
14: ( int64) 0x0
15: ( obj) (nil)
$12 = 1
(rr) next
577 MVM_args_set_result_obj(tc, value, MVM_RETURN_CALLER_FRAME);
(rr)
578 if (MVM_frame_try_return(tc) == 0)
(rr)
580 goto NEXT;
(rr)
5508 MVMDispInlineCacheEntry **ice_ptr = MVM_disp_inline_cache_get(
(rr) list
5503 ice->run_dispatch(tc, ice_ptr, ice, id, callsite, args, tc->cur_frame->work,
5504 tc->cur_frame->static_info, bytecode_offset);
5505 goto NEXT;
5506 }
5507 OP(dispatch_o): {
5508 MVMDispInlineCacheEntry **ice_ptr = MVM_disp_inline_cache_get(
5509 cur_op, bytecode_start, tc->cur_frame);
5510 MVMDispInlineCacheEntry *ice = *ice_ptr;
5511 MVMString *id = MVM_cu_string(tc, cu, GET_UI32(cur_op, 2));
5512 MVMCallsite *callsite = cu->body.callsites[GET_UI16(cur_op, 6)];
(rr) call fputs(MVM_spesh_dump_register_layout(tc, tc->cur_frame), stderr)
Parameters:
source: f->caller->work: (MVMRegister *)0x355d2482ca0
frame of source: (MVMFrame *)0x355d229b708
callsite of params: Callsite 0x7f3c5d294f80 (2 args, 2 pos)
Positional flags: obj, obj
Locals (registers)
0: ( obj) (nil)
1: ( obj) 0x355d229ba90 (conc of P6opaque name Int)
2: ( obj) 0x355d229b808 (conc of P6opaque name Array)
3: ( obj) 0x355d229ba90 (conc of P6opaque name Int)
4: ( obj) 0x355d229b808 (conc of P6opaque name Array)
5: ( obj) 0x355d4771078 (conc of P6opaque name Int)
6: ( str) 0x355d3691a50
7: ( obj) (nil)
8: ( int64) 0x0
9: ( int64) 0x0
10: ( obj) 0x355d2600830 (type of Null name VMNull)
11: ( obj) 0x355d229ba90 (conc of P6opaque name Int)
12: ( int64) 0x1
13: ( obj) 0x355d229b808 (conc of P6opaque name Array)
$13 = 1
(rr) call MVM_dump_bytecode(tc)
00000 checkarity 2, 2
00001 param_rp_o loc_3_obj, 0
00002 dispatch_o loc_7_obj, 'lang-hllize', Callsite_5, loc_3_obj
00003 set loc_3_obj, loc_7_obj
00004 decont loc_7_obj, loc_3_obj
00005 set loc_11_obj, loc_7_obj
00006 wval loc_7_obj, 2, 43
00007 istype loc_12_int, loc_11_obj, loc_7_obj
00008 assertparamcheck loc_12_int
00009 isconcrete loc_12_int, loc_11_obj
00010 assertparamcheck loc_12_int
00011 set loc_1_obj, loc_11_obj
00012 param_rp_o loc_4_obj, 1
00013 dispatch_o loc_7_obj, 'lang-hllize', Callsite_5, loc_4_obj
00014 set loc_4_obj, loc_7_obj
00015 decont loc_7_obj, loc_4_obj
00016 set loc_13_obj, loc_7_obj
00017 wval loc_7_obj, 0, 73
00018 istype loc_12_int, loc_13_obj, loc_7_obj
00019 unless_i loc_12_int, label_1(00026)
00020 decont loc_7_obj, loc_13_obj
00021 const_s loc_6_str, 'cache'
00022 dispatch_o loc_7_obj, 'lang-meth-call', Callsite_7, loc_7_obj, loc_6_str, loc_13_obj
00023 set loc_4_obj, loc_7_obj
00024 decont loc_7_obj, loc_4_obj
00025 set loc_13_obj, loc_7_obj
label_1:
00026 wval loc_7_obj, 0, 48
00027 istype loc_12_int, loc_13_obj, loc_7_obj
00028 assertparamcheck loc_12_int
00029 decont loc_7_obj, loc_4_obj
00030 set loc_2_obj, loc_7_obj
00031 paramnamesused
annotation: site#sources/1CA230DD87FD1ED08E9604B09C828C9D9EA80971 (Array::Sorted::Util):154
00032 decont loc_5_obj, loc_2_obj
00033 const_s loc_6_str, 'elems'
00034 dispatch_o loc_5_obj, 'lang-meth-call', Callsite_7, loc_5_obj, loc_6_str, loc_2_obj
00035 -> dispatch_o loc_7_obj, 'lang-hllize', Callsite_5, loc_5_obj
00036 decont_i loc_8_int, loc_7_obj
00037 bindlex lex_Frame_22_lex3_int, loc_8_int
annotation: site#sources/1CA230DD87FD1ED08E9604B09C828C9D9EA80971 (Array::Sorted::Util):155
00038 wval loc_7_obj, 2, 45
00039 getattr_o loc_5_obj, loc_2_obj, loc_7_obj, '$!reified', 0
00040 set loc_0_obj, loc_5_obj
label_2:
00041 elems loc_9_int, loc_0_obj
00042 unless_i loc_9_int, label_3(00052)
00043 osrpoint
00044 const_s loc_6_str, '&insert'
00045 getlexstatic_o loc_5_obj, loc_6_str
00046 decont loc_5_obj, loc_5_obj
00047 shift_o loc_7_obj, loc_0_obj
00048 decont loc_7_obj, loc_7_obj
00049 shift_o loc_10_obj, loc_0_obj
00050 dispatch_v 'lang-call', Callsite_12, loc_5_obj, loc_7_obj, loc_1_obj, loc_10_obj
00051 goto label_2(00041)
annotation: site#sources/1CA230DD87FD1ED08E9604B09C828C9D9EA80971 (Array::Sorted::Util):162
label_3:
00052 dispatch_o loc_10_obj, 'raku-rv-decont', Callsite_5, loc_1_obj
00053 return_o loc_10_obj
(rr) print tc->cur_frame->params.
arg_info named_used named_used_size
(rr) print tc->cur_frame->params.arg_info.
callsite map source
(rr) print tc->cur_frame->params.arg_info.map[0]@2
$14 = {0, 3}
(rr) print tc->cur_frame->params.arg_info.source[0]
$15 = {o = 0x0, s = 0x0, i8 = 0 '\000', u8 = 0 '\000', i16 = 0, u16 = 0, i32 = 0, u32 = 0, i64 = 0, u64 = 0,
n32 = 0, n64 = 0}
(rr) print tc->cur_frame->params.arg_info.source[3]
$16 = {o = 0x355d229b808, s = 0x355d229b808, i8 = 8 '\b', u8 = 8 '\b', i16 = -18424, u16 = 47112, i32 = -769017848,
u32 = 3525949448, i64 = 3667133052936, u64 = 3667133052936, n32 = -1.82234251e+11, n64 = 1.811804460184607e-311}
(rr) print &tc->cur_frame->params.arg_info.source[0]
$17 = (MVMRegister *) 0x355d2482ca0
(rr) print &tc->cur_frame->params.arg_info.source[3]
$18 = (MVMRegister *) 0x355d2482cb8
(rr)
@timo
Copy link
Author

timo commented Oct 12, 2024

download the packed rr recording here: https://storage.aperture-labs.org/s/cM6pkKAGPezBs9g

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment