@@ -52,12 +52,10 @@ void py_show_byte_code(const byte *ip, int len) {
52
52
printf ("LOAD_CONST_ID %s" , qstr_str (qstr ));
53
53
break ;
54
54
55
- /*
56
55
case PYBC_LOAD_CONST_STRING :
57
56
DECODE_QSTR ;
58
- PUSH(rt_load_const_str (qstr));
57
+ printf ( "LOAD_CONST_STRING %s" , qstr_str (qstr ));
59
58
break ;
60
- */
61
59
62
60
case PYBC_LOAD_FAST_0 :
63
61
printf ("LOAD_FAST_0" );
@@ -71,12 +69,10 @@ void py_show_byte_code(const byte *ip, int len) {
71
69
printf ("LOAD_FAST_2" );
72
70
break ;
73
71
74
- /*
75
72
case PYBC_LOAD_FAST_N :
76
73
DECODE_UINT ;
77
- PUSH(fastn[ unum] );
74
+ printf ( "LOAD_FAST_N %lu" , unum );
78
75
break ;
79
- */
80
76
81
77
case PYBC_LOAD_NAME :
82
78
DECODE_QSTR ;
@@ -114,12 +110,10 @@ void py_show_byte_code(const byte *ip, int len) {
114
110
printf ("STORE_FAST_2" );
115
111
break ;
116
112
117
- /*
118
113
case PYBC_STORE_FAST_N :
119
114
DECODE_UINT ;
120
- fastn[unum] = POP( );
115
+ printf ( "STORE_FAST_N %lu" , unum );
121
116
break ;
122
- */
123
117
124
118
case PYBC_STORE_NAME :
125
119
DECODE_QSTR ;
@@ -138,23 +132,20 @@ void py_show_byte_code(const byte *ip, int len) {
138
132
printf ("STORE_ATTR %s" , qstr_str (qstr ));
139
133
break ;
140
134
141
- /*
142
135
case PYBC_STORE_SUBSCR :
143
- rt_store_subscr(sp[1], sp[0], sp[2]);
144
- sp += 3;
136
+ printf ("STORE_SUBSCR" );
145
137
break ;
146
138
139
+ /*
147
140
case PYBC_DUP_TOP:
148
141
obj1 = *sp;
149
142
PUSH(obj1);
150
143
break;
144
+ */
151
145
152
146
case PYBC_DUP_TOP_TWO :
153
- sp -= 2;
154
- sp[0] = sp[2];
155
- sp[1] = sp[3];
147
+ printf ("DUP_TOP_TWO" );
156
148
break ;
157
- */
158
149
159
150
case PYBC_POP_TOP :
160
151
printf ("POP_TOP" );
@@ -166,14 +157,11 @@ void py_show_byte_code(const byte *ip, int len) {
166
157
sp[0] = sp[1];
167
158
sp[1] = obj1;
168
159
break;
160
+ */
169
161
170
162
case PYBC_ROT_THREE :
171
- obj1 = sp[0];
172
- sp[0] = sp[1];
173
- sp[1] = sp[2];
174
- sp[2] = obj1;
163
+ printf ("ROT_THREE" );
175
164
break ;
176
- */
177
165
178
166
case PYBC_JUMP :
179
167
DECODE_SLABEL ;
@@ -185,14 +173,12 @@ void py_show_byte_code(const byte *ip, int len) {
185
173
printf ("POP_JUMP_IF_TRUE %lu" , ip + unum - ip_start );
186
174
break ;
187
175
188
- /*
189
176
case PYBC_POP_JUMP_IF_FALSE :
190
177
DECODE_SLABEL ;
191
- if (!rt_is_true(POP())) {
192
- ip += unum;
193
- }
178
+ printf ("POP_JUMP_IF_FALSE %lu" , ip + unum - ip_start );
194
179
break ;
195
180
181
+ /*
196
182
case PYBC_JUMP_IF_TRUE_OR_POP:
197
183
DECODE_SLABEL;
198
184
if (rt_is_true(*sp)) {
@@ -225,22 +211,18 @@ void py_show_byte_code(const byte *ip, int len) {
225
211
// else error
226
212
assert(0);
227
213
break;
214
+ */
228
215
229
216
case PYBC_GET_ITER :
230
- *sp = rt_getiter(*sp );
217
+ printf ( "GET_ITER" );
231
218
break ;
232
219
233
220
case PYBC_FOR_ITER :
234
221
DECODE_ULABEL ; // the jump offset if iteration finishes; for labels are always forward
235
- obj1 = rt_iternext(*sp);
236
- if (obj1 == py_const_stop_iteration) {
237
- ++sp; // pop the exhausted iterator
238
- ip += unum; // jump to after for-block
239
- } else {
240
- PUSH(obj1); // push the next iteration value
241
- }
222
+ printf ("FOR_ITER %lu" , ip + unum - ip_start );
242
223
break ;
243
224
225
+ /*
244
226
case PYBC_POP_BLOCK:
245
227
// pops block and restores the stack
246
228
assert(0);
@@ -272,21 +254,17 @@ void py_show_byte_code(const byte *ip, int len) {
272
254
printf ("COMPARE_OP %lu" , unum );
273
255
break ;
274
256
275
- /*
276
257
case PYBC_BUILD_TUPLE :
277
258
DECODE_UINT ;
278
- obj1 = rt_build_tuple(unum, sp);
279
- sp += unum - 1;
280
- *sp = obj1;
259
+ printf ("BUILD_TUPLE %lu" , unum );
281
260
break ;
282
261
283
262
case PYBC_BUILD_LIST :
284
263
DECODE_UINT ;
285
- obj1 = rt_build_list(unum, sp);
286
- sp += unum - 1;
287
- *sp = obj1;
264
+ printf ("BUILD_LIST %lu" , unum );
288
265
break ;
289
266
267
+ /*
290
268
case PYBC_LIST_APPEND:
291
269
DECODE_UINT;
292
270
// I think it's guaranteed by the compiler that sp[unum] is a list
@@ -326,23 +304,24 @@ void py_show_byte_code(const byte *ip, int len) {
326
304
break;
327
305
*/
328
306
307
+ case PYBC_UNPACK_SEQUENCE :
308
+ DECODE_UINT ;
309
+ printf ("UNPACK_SEQUENCE %lu" , unum );
310
+ break ;
311
+
329
312
case PYBC_MAKE_FUNCTION :
330
313
DECODE_UINT ;
331
314
printf ("MAKE_FUNCTION %lu" , unum );
332
315
break ;
333
316
334
317
case PYBC_CALL_FUNCTION :
335
318
DECODE_UINT ;
336
- assert ((unum & 0xff00 ) == 0 ); // n_keyword
337
- unum &= 0xff ; // n_positional
338
- printf ("CALL_FUNCTION %lu" , unum );
319
+ printf ("CALL_FUNCTION n=%lu nkw=%lu" , unum & 0xff , (unum >> 8 ) & 0xff );
339
320
break ;
340
321
341
322
case PYBC_CALL_METHOD :
342
323
DECODE_UINT ;
343
- assert ((unum & 0xff00 ) == 0 ); // n_keyword
344
- unum &= 0xff ;
345
- printf ("CALL_METHOD %lu" , unum );
324
+ printf ("CALL_METHOD n=%lu nkw=%lu" , unum & 0xff , (unum >> 8 ) & 0xff );
346
325
break ;
347
326
348
327
case PYBC_RETURN_VALUE :
0 commit comments