@@ -7,7 +7,7 @@ use crate::{
77 self , BinaryOperator , BuildSliceArgCount , CommonConstant , ComparisonOperator ,
88 ConvertValueOparg , IntrinsicFunction1 , IntrinsicFunction2 , Invert , Label , LoadAttr ,
99 LoadSuperAttr , MakeFunctionFlag , NameIdx , OpArg , OpArgByte , OpArgType , RaiseKind ,
10- SpecialMethod , StoreFastLoadFast , UnpackExArgs ,
10+ SpecialMethod , UnpackExArgs ,
1111 } ,
1212 } ,
1313 marshal:: MarshalError ,
@@ -201,13 +201,13 @@ pub enum Instruction {
201201 var_num : Arg < oparg:: VarNum > ,
202202 } = 86 ,
203203 LoadFastBorrowLoadFastBorrow {
204- var_nums : Arg < u32 > ,
204+ var_nums : Arg < oparg :: VarNums > ,
205205 } = 87 ,
206206 LoadFastCheck {
207207 var_num : Arg < oparg:: VarNum > ,
208208 } = 88 ,
209209 LoadFastLoadFast {
210- var_nums : Arg < u32 > ,
210+ var_nums : Arg < oparg :: VarNums > ,
211211 } = 89 ,
212212 LoadFromDictOrDeref {
213213 i : Arg < NameIdx > ,
@@ -279,10 +279,10 @@ pub enum Instruction {
279279 var_num : Arg < oparg:: VarNum > ,
280280 } = 112 ,
281281 StoreFastLoadFast {
282- var_nums : Arg < StoreFastLoadFast > ,
282+ var_nums : Arg < oparg :: VarNums > ,
283283 } = 113 ,
284284 StoreFastStoreFast {
285- var_nums : Arg < u32 > ,
285+ var_nums : Arg < oparg :: VarNums > ,
286286 } = 114 ,
287287 StoreGlobal {
288288 namei : Arg < NameIdx > ,
@@ -1342,20 +1342,22 @@ impl InstructionMetadata for Instruction {
13421342 // Oparg needs to be passed into a function.
13431343 ( $map: ident = $arg_marker: expr) => { {
13441344 let arg = $arg_marker. get( arg) ;
1345- write!( f, "{:pad$}({}, {})" , self . name ( ) , arg, $map( arg) )
1345+ write!( f, "{:pad$}({}, {})" , opname , arg, $map( arg) )
13461346 } } ;
13471347
13481348 // Oparg to be shown via `fmt::Display`
13491349 ( $arg_marker: expr) => {
1350- write!( f, "{:pad$}({})" , self . name ( ) , $arg_marker. get( arg) )
1350+ write!( f, "{:pad$}({})" , opname , $arg_marker. get( arg) )
13511351 } ;
13521352
13531353 // Oparg to be shown via `fmt::Debug`
13541354 ( ?$arg_marker: expr) => {
1355- write!( f, "{:pad$}({:?})" , self . name ( ) , $arg_marker. get( arg) )
1355+ write!( f, "{:pad$}({:?})" , opname , $arg_marker. get( arg) )
13561356 } ;
13571357 }
13581358
1359+ let opname = self . name ( ) ;
1360+
13591361 let varname = |var_num : oparg:: VarNum | ctx. get_varname ( var_num) ;
13601362 let name = |i : u32 | ctx. get_name ( i as usize ) ;
13611363 let cell_name = |i : u32 | ctx. get_cell_name ( i as usize ) ;
@@ -1382,7 +1384,7 @@ impl InstructionMetadata for Instruction {
13821384
13831385 match self {
13841386 Self :: BinarySlice => w ! ( ) ,
1385- Self :: BinaryOp { op } => write ! ( f, "{:pad$}({})" , self . name ( ) , op. get( arg) ) ,
1387+ Self :: BinaryOp { op } => write ! ( f, "{:pad$}({})" , opname , op. get( arg) ) ,
13861388 Self :: BinaryOpInplaceAddUnicode => w ! ( ) ,
13871389 Self :: BuildList { count } => w ! ( count) ,
13881390 Self :: BuildMap { count } => w ! ( count) ,
@@ -1401,7 +1403,7 @@ impl InstructionMetadata for Instruction {
14011403 Self :: CleanupThrow => w ! ( ) ,
14021404 Self :: CompareOp { opname } => w ! ( ?opname) ,
14031405 Self :: ContainsOp { invert } => w ! ( ?invert) ,
1404- Self :: ConvertValue { oparg } => write ! ( f, "{:pad$}{}" , self . name ( ) , oparg. get( arg) ) ,
1406+ Self :: ConvertValue { oparg } => write ! ( f, "{:pad$}{}" , opname , oparg. get( arg) ) ,
14051407 Self :: Copy { i } => w ! ( i) ,
14061408 Self :: CopyFreeVars { n } => w ! ( n) ,
14071409 Self :: DeleteAttr { namei } => w ! ( name = namei) ,
@@ -1438,7 +1440,6 @@ impl InstructionMetadata for Instruction {
14381440 let oparg = namei. get ( arg) ;
14391441 let oparg_u32 = u32:: from ( oparg) ;
14401442 let attr_name = name ( oparg. name_idx ( ) ) ;
1441- let opname = self . name ( ) ;
14421443 if oparg. is_method ( ) {
14431444 write ! (
14441445 f,
@@ -1452,7 +1453,7 @@ impl InstructionMetadata for Instruction {
14521453 Self :: LoadBuildClass => w ! ( ) ,
14531454 Self :: LoadCommonConstant { idx } => w ! ( ?idx) ,
14541455 Self :: LoadFromDictOrDeref { i } => w ! ( cell_name = i) ,
1455- Self :: LoadConst { consti } => fmt_const ( self . name ( ) , arg, f, consti) ,
1456+ Self :: LoadConst { consti } => fmt_const ( opname , arg, f, consti) ,
14561457 Self :: LoadSmallInt { i } => w ! ( i) ,
14571458 Self :: LoadDeref { i } => w ! ( cell_name = i) ,
14581459 Self :: LoadFast { var_num } => w ! ( varname = var_num) ,
@@ -1461,25 +1462,22 @@ impl InstructionMetadata for Instruction {
14611462 Self :: LoadFastCheck { var_num } => w ! ( varname = var_num) ,
14621463 Self :: LoadFastLoadFast { var_nums } => {
14631464 let oparg = var_nums. get ( arg) ;
1464- let idx1 = oparg >> 4 ;
1465- let idx2 = oparg & 15 ;
1466- let name1 = varname ( idx1. into ( ) ) ;
1467- let name2 = varname ( idx2. into ( ) ) ;
1468- write ! ( f, "{:pad$}({}, {})" , self . name( ) , name1, name2)
1465+ let ( idx1, idx2) = oparg. indexes ( ) ;
1466+ let name1 = varname ( idx1) ;
1467+ let name2 = varname ( idx2) ;
1468+ write ! ( f, "{:pad$}({}, {})" , opnmae, name1, name2)
14691469 }
14701470 Self :: LoadFastBorrowLoadFastBorrow { var_nums } => {
14711471 let oparg = var_nums. get ( arg) ;
1472- let idx1 = oparg >> 4 ;
1473- let idx2 = oparg & 15 ;
1474- let name1 = varname ( idx1. into ( ) ) ;
1475- let name2 = varname ( idx2. into ( ) ) ;
1476- write ! ( f, "{:pad$}({}, {})" , self . name( ) , name1, name2)
1472+ let ( idx1, idx2) = oparg. indexes ( ) ;
1473+ let name1 = varname ( idx1) ;
1474+ let name2 = varname ( idx2) ;
1475+ write ! ( f, "{:pad$}({}, {})" , opname, name1, name2)
14771476 }
14781477 Self :: LoadFromDictOrGlobals { i } => w ! ( name = i) ,
14791478 Self :: LoadGlobal { namei } => {
14801479 let oparg = namei. get ( arg) ;
14811480 let name_idx = oparg >> 1 ;
1482- let opname = self . name ( ) ;
14831481 if ( oparg & 1 ) != 0 {
14841482 write ! ( f, "{:pad$}({}, NULL + {})" , opname, oparg, name( name_idx) )
14851483 } else {
@@ -1489,7 +1487,6 @@ impl InstructionMetadata for Instruction {
14891487 Self :: LoadGlobalBuiltin => {
14901488 let oparg = u32:: from ( arg) ;
14911489 let name_idx = oparg >> 1 ;
1492- let opname = self . name ( ) ;
14931490 if ( oparg & 1 ) != 0 {
14941491 write ! ( f, "{:pad$}({}, NULL + {})" , opname, oparg, name( name_idx) )
14951492 } else {
@@ -1499,7 +1496,6 @@ impl InstructionMetadata for Instruction {
14991496 Self :: LoadGlobalModule => {
15001497 let oparg = u32:: from ( arg) ;
15011498 let name_idx = oparg >> 1 ;
1502- let opname = self . name ( ) ;
15031499 if ( oparg & 1 ) != 0 {
15041500 write ! ( f, "{:pad$}({}, NULL + {})" , opname, oparg, name( name_idx) )
15051501 } else {
@@ -1514,7 +1510,7 @@ impl InstructionMetadata for Instruction {
15141510 write ! (
15151511 f,
15161512 "{:pad$}({}, {}, method={}, class={})" ,
1517- self . name ( ) ,
1513+ opname ,
15181514 u32 :: from( oparg) ,
15191515 name( oparg. name_idx( ) ) ,
15201516 oparg. is_load_method( ) ,
@@ -1555,21 +1551,13 @@ impl InstructionMetadata for Instruction {
15551551 Self :: StoreFast { var_num } => w ! ( varname = var_num) ,
15561552 Self :: StoreFastLoadFast { var_nums } => {
15571553 let oparg = var_nums. get ( arg) ;
1558- let store_idx = oparg. store_idx ( ) ;
1559- let load_idx = oparg. load_idx ( ) ;
1560- write ! ( f, "{:pad$}({}, {})" , self . name( ) , store_idx, load_idx)
1554+ let ( store_idx, load_idx) = oparg. indexes ( ) ;
1555+ write ! ( f, " {:pad$}({}, {})" , opnmae, store_idx, load_idx)
15611556 }
15621557 Self :: StoreFastStoreFast { var_nums } => {
15631558 let oparg = var_nums. get ( arg) ;
1564- let idx1 = oparg >> 4 ;
1565- let idx2 = oparg & 15 ;
1566- write ! (
1567- f,
1568- "{:pad$}({}, {})" ,
1569- self . name( ) ,
1570- varname( idx1. into( ) ) ,
1571- varname( idx2. into( ) )
1572- )
1559+ let ( idx1, idx2) = oparg. indexes ( ) ;
1560+ write ! ( f, "{:pad$}({}, {})" , opname, varname( idx1) , varname( idx2) )
15731561 }
15741562 Self :: StoreGlobal { namei } => w ! ( name = namei) ,
15751563 Self :: StoreName { namei } => w ! ( name = namei) ,
0 commit comments