@@ -1280,30 +1280,20 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg)
1280
1280
*/
1281
1281
1282
1282
static int
1283
- basicblock_addop (basicblock * b , int opcode , int oparg ,
1284
- jump_target_label target , struct location loc )
1283
+ basicblock_addop (basicblock * b , int opcode , int oparg , struct location loc )
1285
1284
{
1286
1285
assert (IS_WITHIN_OPCODE_RANGE (opcode ));
1287
1286
assert (!IS_ASSEMBLER_OPCODE (opcode ));
1288
- assert (HAS_ARG (opcode ) || oparg == 0 );
1287
+ assert (HAS_ARG (opcode ) || HAS_TARGET ( opcode ) || oparg == 0 );
1289
1288
assert (0 <= oparg && oparg < (1 << 30 ));
1290
- assert (!IS_LABEL (target ) ||
1291
- IS_JUMP_OPCODE (opcode ) ||
1292
- IS_BLOCK_PUSH_OPCODE (opcode ));
1293
- assert (oparg == 0 || !IS_LABEL (target ));
1294
1289
1295
1290
int off = basicblock_next_instr (b );
1296
1291
if (off < 0 ) {
1297
1292
return 0 ;
1298
1293
}
1299
1294
struct instr * i = & b -> b_instr [off ];
1300
1295
i -> i_opcode = opcode ;
1301
- if (HAS_TARGET (opcode )) {
1302
- i -> i_oparg = target .id ;
1303
- }
1304
- else {
1305
- i -> i_oparg = oparg ;
1306
- }
1296
+ i -> i_oparg = oparg ;
1307
1297
i -> i_target = NULL ;
1308
1298
i -> i_loc = loc ;
1309
1299
@@ -1336,20 +1326,19 @@ cfg_builder_maybe_start_new_block(cfg_builder *g)
1336
1326
}
1337
1327
1338
1328
static int
1339
- cfg_builder_addop (cfg_builder * g , int opcode , int oparg , jump_target_label target ,
1340
- struct location loc )
1329
+ cfg_builder_addop (cfg_builder * g , int opcode , int oparg , struct location loc )
1341
1330
{
1342
1331
if (cfg_builder_maybe_start_new_block (g ) != 0 ) {
1343
1332
return -1 ;
1344
1333
}
1345
- return basicblock_addop (g -> g_curblock , opcode , oparg , target , loc );
1334
+ return basicblock_addop (g -> g_curblock , opcode , oparg , loc );
1346
1335
}
1347
1336
1348
1337
static int
1349
1338
cfg_builder_addop_noarg (cfg_builder * g , int opcode , struct location loc )
1350
1339
{
1351
1340
assert (!HAS_ARG (opcode ));
1352
- return cfg_builder_addop (g , opcode , 0 , NO_LABEL , loc );
1341
+ return cfg_builder_addop (g , opcode , 0 , loc );
1353
1342
}
1354
1343
1355
1344
static Py_ssize_t
@@ -1561,15 +1550,15 @@ cfg_builder_addop_i(cfg_builder *g, int opcode, Py_ssize_t oparg, struct locatio
1561
1550
EXTENDED_ARG is used for 16, 24, and 32-bit arguments. */
1562
1551
1563
1552
int oparg_ = Py_SAFE_DOWNCAST (oparg , Py_ssize_t , int );
1564
- return cfg_builder_addop (g , opcode , oparg_ , NO_LABEL , loc );
1553
+ return cfg_builder_addop (g , opcode , oparg_ , loc );
1565
1554
}
1566
1555
1567
1556
static int
1568
1557
cfg_builder_addop_j (cfg_builder * g , int opcode , jump_target_label target , struct location loc )
1569
1558
{
1570
1559
assert (IS_LABEL (target ));
1571
1560
assert (IS_JUMP_OPCODE (opcode ) || IS_BLOCK_PUSH_OPCODE (opcode ));
1572
- return cfg_builder_addop (g , opcode , 0 , target , loc );
1561
+ return cfg_builder_addop (g , opcode , target . id , loc );
1573
1562
}
1574
1563
1575
1564
@@ -7406,8 +7395,7 @@ push_cold_blocks_to_end(cfg_builder *g, int code_flags) {
7406
7395
if (explicit_jump == NULL ) {
7407
7396
return -1 ;
7408
7397
}
7409
- jump_target_label next_label = {b -> b_next -> b_label };
7410
- basicblock_addop (explicit_jump , JUMP , 0 , next_label , NO_LOCATION );
7398
+ basicblock_addop (explicit_jump , JUMP , b -> b_next -> b_label , NO_LOCATION );
7411
7399
explicit_jump -> b_cold = 1 ;
7412
7400
explicit_jump -> b_next = b -> b_next ;
7413
7401
b -> b_next = explicit_jump ;
0 commit comments