From 4b3fdbbae7cfc1382f3580f693a7d07d0fb06e6b Mon Sep 17 00:00:00 2001 From: Sahil-4555 Date: Thu, 27 Nov 2025 10:04:21 +0530 Subject: [PATCH 1/2] vm: inline minStack/minDupStack/minSwapStack and delete unused functions --- core/vm/eips.go | 60 ++++----- core/vm/jump_table.go | 282 ++++++++++++++++++++--------------------- core/vm/stack_table.go | 11 +- 3 files changed, 172 insertions(+), 181 deletions(-) diff --git a/core/vm/eips.go b/core/vm/eips.go index dfcac4b93029..d999de1df325 100644 --- a/core/vm/eips.go +++ b/core/vm/eips.go @@ -85,7 +85,7 @@ func enable1884(jt *JumpTable) { jt[SELFBALANCE] = &operation{ execute: opSelfBalance, constantGas: GasFastStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), } } @@ -103,7 +103,7 @@ func enable1344(jt *JumpTable) { jt[CHAINID] = &operation{ execute: opChainID, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), } } @@ -175,7 +175,7 @@ func enable3198(jt *JumpTable) { jt[BASEFEE] = &operation{ execute: opBaseFee, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), } } @@ -187,14 +187,14 @@ func enable1153(jt *JumpTable) { jt[TLOAD] = &operation{ execute: opTload, constantGas: params.WarmStorageReadCostEIP2929, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), } jt[TSTORE] = &operation{ execute: opTstore, constantGas: params.WarmStorageReadCostEIP2929, - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(2, 0), } } @@ -232,7 +232,7 @@ func enable3855(jt *JumpTable) { jt[PUSH0] = &operation{ execute: opPush0, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), } } @@ -257,7 +257,7 @@ func enable5656(jt *JumpTable) { execute: opMcopy, constantGas: GasFastestStep, dynamicGas: gasMcopy, - minStack: minStack(3, 0), + minStack: 3, maxStack: maxStack(3, 0), memorySize: memoryMcopy, } @@ -307,7 +307,7 @@ func enable4844(jt *JumpTable) { jt[BLOBHASH] = &operation{ execute: opBlobHash, constantGas: GasFastestStep, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), } } @@ -317,7 +317,7 @@ func enable7939(jt *JumpTable) { jt[CLZ] = &operation{ execute: opCLZ, constantGas: GasFastStep, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), } } @@ -327,7 +327,7 @@ func enable7516(jt *JumpTable) { jt[BLOBBASEFEE] = &operation{ execute: opBlobBaseFee, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), } } @@ -338,7 +338,7 @@ func enable6780(jt *JumpTable) { execute: opSelfdestruct6780, dynamicGas: gasSelfdestructEIP3529, constantGas: params.SelfdestructGasEIP150, - minStack: minStack(1, 0), + minStack: 1, maxStack: maxStack(1, 0), } } @@ -348,19 +348,19 @@ func enable8024(jt *JumpTable) { jt[DUPN] = &operation{ execute: opDupN, constantGas: GasFastestStep, - minStack: minStack(1, 0), + minStack: 1, maxStack: maxStack(0, 1), } jt[SWAPN] = &operation{ execute: opSwapN, constantGas: GasFastestStep, - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(0, 0), } jt[EXCHANGE] = &operation{ execute: opExchange, constantGas: GasFastestStep, - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(0, 0), } } @@ -450,41 +450,41 @@ func enable4762(jt *JumpTable) { jt[SSTORE] = &operation{ dynamicGas: gasSStore4762, execute: opSstore, - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(2, 0), } jt[SLOAD] = &operation{ dynamicGas: gasSLoad4762, execute: opSload, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), } jt[BALANCE] = &operation{ execute: opBalance, dynamicGas: gasBalance4762, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), } jt[EXTCODESIZE] = &operation{ execute: opExtCodeSize, dynamicGas: gasExtCodeSize4762, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), } jt[EXTCODEHASH] = &operation{ execute: opExtCodeHash, dynamicGas: gasExtCodeHash4762, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), } jt[EXTCODECOPY] = &operation{ execute: opExtCodeCopyEIP4762, dynamicGas: gasExtCodeCopyEIP4762, - minStack: minStack(4, 0), + minStack: 4, maxStack: maxStack(4, 0), memorySize: memoryExtCodeCopy, } @@ -493,7 +493,7 @@ func enable4762(jt *JumpTable) { execute: opCodeCopy, constantGas: GasFastestStep, dynamicGas: gasCodeCopyEip4762, - minStack: minStack(3, 0), + minStack: 3, maxStack: maxStack(3, 0), memorySize: memoryCodeCopy, } @@ -502,7 +502,7 @@ func enable4762(jt *JumpTable) { execute: opSelfdestruct6780, dynamicGas: gasSelfdestructEIP4762, constantGas: params.SelfdestructGasEIP150, - minStack: minStack(1, 0), + minStack: 1, maxStack: maxStack(1, 0), } @@ -510,7 +510,7 @@ func enable4762(jt *JumpTable) { execute: opCreate, constantGas: params.CreateNGasEip4762, dynamicGas: gasCreateEip3860, - minStack: minStack(3, 1), + minStack: 3, maxStack: maxStack(3, 1), memorySize: memoryCreate, } @@ -519,7 +519,7 @@ func enable4762(jt *JumpTable) { execute: opCreate2, constantGas: params.CreateNGasEip4762, dynamicGas: gasCreate2Eip3860, - minStack: minStack(4, 1), + minStack: 4, maxStack: maxStack(4, 1), memorySize: memoryCreate2, } @@ -527,7 +527,7 @@ func enable4762(jt *JumpTable) { jt[CALL] = &operation{ execute: opCall, dynamicGas: gasCallEIP4762, - minStack: minStack(7, 1), + minStack: 7, maxStack: maxStack(7, 1), memorySize: memoryCall, } @@ -535,7 +535,7 @@ func enable4762(jt *JumpTable) { jt[CALLCODE] = &operation{ execute: opCallCode, dynamicGas: gasCallCodeEIP4762, - minStack: minStack(7, 1), + minStack: 7, maxStack: maxStack(7, 1), memorySize: memoryCall, } @@ -543,7 +543,7 @@ func enable4762(jt *JumpTable) { jt[STATICCALL] = &operation{ execute: opStaticCall, dynamicGas: gasStaticCallEIP4762, - minStack: minStack(6, 1), + minStack: 6, maxStack: maxStack(6, 1), memorySize: memoryStaticCall, } @@ -551,7 +551,7 @@ func enable4762(jt *JumpTable) { jt[DELEGATECALL] = &operation{ execute: opDelegateCall, dynamicGas: gasDelegateCallEIP4762, - minStack: minStack(6, 1), + minStack: 6, maxStack: maxStack(6, 1), memorySize: memoryDelegateCall, } @@ -559,14 +559,14 @@ func enable4762(jt *JumpTable) { jt[PUSH1] = &operation{ execute: opPush1EIP4762, constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), } for i := 1; i < 32; i++ { jt[PUSH1+OpCode(i)] = &operation{ execute: makePushEIP4762(uint64(i+1), i+1), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), } } diff --git a/core/vm/jump_table.go b/core/vm/jump_table.go index d7a4d9da1d93..b77dd1389c84 100644 --- a/core/vm/jump_table.go +++ b/core/vm/jump_table.go @@ -127,7 +127,7 @@ func newMergeInstructionSet() JumpTable { instructionSet[PREVRANDAO] = &operation{ execute: opRandom, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), } return validate(instructionSet) @@ -169,32 +169,32 @@ func newConstantinopleInstructionSet() JumpTable { instructionSet[SHL] = &operation{ execute: opSHL, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), } instructionSet[SHR] = &operation{ execute: opSHR, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), } instructionSet[SAR] = &operation{ execute: opSAR, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), } instructionSet[EXTCODEHASH] = &operation{ execute: opExtCodeHash, constantGas: params.ExtcodeHashGasConstantinople, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), } instructionSet[CREATE2] = &operation{ execute: opCreate2, constantGas: params.Create2Gas, dynamicGas: gasCreate2, - minStack: minStack(4, 1), + minStack: 4, maxStack: maxStack(4, 1), memorySize: memoryCreate2, } @@ -209,28 +209,28 @@ func newByzantiumInstructionSet() JumpTable { execute: opStaticCall, constantGas: params.CallGasEIP150, dynamicGas: gasStaticCall, - minStack: minStack(6, 1), + minStack: 6, maxStack: maxStack(6, 1), memorySize: memoryStaticCall, } instructionSet[RETURNDATASIZE] = &operation{ execute: opReturnDataSize, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), } instructionSet[RETURNDATACOPY] = &operation{ execute: opReturnDataCopy, constantGas: GasFastestStep, dynamicGas: gasReturnDataCopy, - minStack: minStack(3, 0), + minStack: 3, maxStack: maxStack(3, 0), memorySize: memoryReturnDataCopy, } instructionSet[REVERT] = &operation{ execute: opRevert, dynamicGas: gasRevert, - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(2, 0), memorySize: memoryRevert, } @@ -265,7 +265,7 @@ func newHomesteadInstructionSet() JumpTable { execute: opDelegateCall, dynamicGas: gasDelegateCall, constantGas: params.CallGasFrontier, - minStack: minStack(6, 1), + minStack: 6, maxStack: maxStack(6, 1), memorySize: memoryDelegateCall, } @@ -279,280 +279,280 @@ func newFrontierInstructionSet() JumpTable { STOP: { execute: opStop, constantGas: 0, - minStack: minStack(0, 0), + minStack: 0, maxStack: maxStack(0, 0), }, ADD: { execute: opAdd, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, MUL: { execute: opMul, constantGas: GasFastStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, SUB: { execute: opSub, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, DIV: { execute: opDiv, constantGas: GasFastStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, SDIV: { execute: opSdiv, constantGas: GasFastStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, MOD: { execute: opMod, constantGas: GasFastStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, SMOD: { execute: opSmod, constantGas: GasFastStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, ADDMOD: { execute: opAddmod, constantGas: GasMidStep, - minStack: minStack(3, 1), + minStack: 3, maxStack: maxStack(3, 1), }, MULMOD: { execute: opMulmod, constantGas: GasMidStep, - minStack: minStack(3, 1), + minStack: 3, maxStack: maxStack(3, 1), }, EXP: { execute: opExp, dynamicGas: gasExpFrontier, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, SIGNEXTEND: { execute: opSignExtend, constantGas: GasFastStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, LT: { execute: opLt, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, GT: { execute: opGt, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, SLT: { execute: opSlt, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, SGT: { execute: opSgt, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, EQ: { execute: opEq, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, ISZERO: { execute: opIszero, constantGas: GasFastestStep, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), }, AND: { execute: opAnd, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, XOR: { execute: opXor, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, OR: { execute: opOr, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, NOT: { execute: opNot, constantGas: GasFastestStep, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), }, BYTE: { execute: opByte, constantGas: GasFastestStep, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), }, KECCAK256: { execute: opKeccak256, constantGas: params.Keccak256Gas, dynamicGas: gasKeccak256, - minStack: minStack(2, 1), + minStack: 2, maxStack: maxStack(2, 1), memorySize: memoryKeccak256, }, ADDRESS: { execute: opAddress, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, BALANCE: { execute: opBalance, constantGas: params.BalanceGasFrontier, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), }, ORIGIN: { execute: opOrigin, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, CALLER: { execute: opCaller, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, CALLVALUE: { execute: opCallValue, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, CALLDATALOAD: { execute: opCallDataLoad, constantGas: GasFastestStep, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), }, CALLDATASIZE: { execute: opCallDataSize, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, CALLDATACOPY: { execute: opCallDataCopy, constantGas: GasFastestStep, dynamicGas: gasCallDataCopy, - minStack: minStack(3, 0), + minStack: 3, maxStack: maxStack(3, 0), memorySize: memoryCallDataCopy, }, CODESIZE: { execute: opCodeSize, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, CODECOPY: { execute: opCodeCopy, constantGas: GasFastestStep, dynamicGas: gasCodeCopy, - minStack: minStack(3, 0), + minStack: 3, maxStack: maxStack(3, 0), memorySize: memoryCodeCopy, }, GASPRICE: { execute: opGasprice, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, EXTCODESIZE: { execute: opExtCodeSize, constantGas: params.ExtcodeSizeGasFrontier, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), }, EXTCODECOPY: { execute: opExtCodeCopy, constantGas: params.ExtcodeCopyBaseFrontier, dynamicGas: gasExtCodeCopy, - minStack: minStack(4, 0), + minStack: 4, maxStack: maxStack(4, 0), memorySize: memoryExtCodeCopy, }, BLOCKHASH: { execute: opBlockhash, constantGas: GasExtStep, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), }, COINBASE: { execute: opCoinbase, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, TIMESTAMP: { execute: opTimestamp, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, NUMBER: { execute: opNumber, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, DIFFICULTY: { execute: opDifficulty, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, GASLIMIT: { execute: opGasLimit, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, POP: { execute: opPop, constantGas: GasQuickStep, - minStack: minStack(1, 0), + minStack: 1, maxStack: maxStack(1, 0), }, MLOAD: { execute: opMload, constantGas: GasFastestStep, dynamicGas: gasMLoad, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), memorySize: memoryMLoad, }, @@ -560,7 +560,7 @@ func newFrontierInstructionSet() JumpTable { execute: opMstore, constantGas: GasFastestStep, dynamicGas: gasMStore, - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(2, 0), memorySize: memoryMStore, }, @@ -569,473 +569,473 @@ func newFrontierInstructionSet() JumpTable { constantGas: GasFastestStep, dynamicGas: gasMStore8, memorySize: memoryMStore8, - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(2, 0), }, SLOAD: { execute: opSload, constantGas: params.SloadGasFrontier, - minStack: minStack(1, 1), + minStack: 1, maxStack: maxStack(1, 1), }, SSTORE: { execute: opSstore, dynamicGas: gasSStore, - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(2, 0), }, JUMP: { execute: opJump, constantGas: GasMidStep, - minStack: minStack(1, 0), + minStack: 1, maxStack: maxStack(1, 0), }, JUMPI: { execute: opJumpi, constantGas: GasSlowStep, - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(2, 0), }, PC: { execute: opPc, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, MSIZE: { execute: opMsize, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, GAS: { execute: opGas, constantGas: GasQuickStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, JUMPDEST: { execute: opJumpdest, constantGas: params.JumpdestGas, - minStack: minStack(0, 0), + minStack: 0, maxStack: maxStack(0, 0), }, PUSH1: { execute: opPush1, constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH2: { execute: opPush2, constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH3: { execute: makePush(3, 3), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH4: { execute: makePush(4, 4), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH5: { execute: makePush(5, 5), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH6: { execute: makePush(6, 6), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH7: { execute: makePush(7, 7), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH8: { execute: makePush(8, 8), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH9: { execute: makePush(9, 9), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH10: { execute: makePush(10, 10), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH11: { execute: makePush(11, 11), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH12: { execute: makePush(12, 12), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH13: { execute: makePush(13, 13), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH14: { execute: makePush(14, 14), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH15: { execute: makePush(15, 15), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH16: { execute: makePush(16, 16), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH17: { execute: makePush(17, 17), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH18: { execute: makePush(18, 18), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH19: { execute: makePush(19, 19), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH20: { execute: makePush(20, 20), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH21: { execute: makePush(21, 21), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH22: { execute: makePush(22, 22), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH23: { execute: makePush(23, 23), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH24: { execute: makePush(24, 24), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH25: { execute: makePush(25, 25), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH26: { execute: makePush(26, 26), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH27: { execute: makePush(27, 27), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH28: { execute: makePush(28, 28), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH29: { execute: makePush(29, 29), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH30: { execute: makePush(30, 30), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH31: { execute: makePush(31, 31), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, PUSH32: { execute: makePush(32, 32), constantGas: GasFastestStep, - minStack: minStack(0, 1), + minStack: 0, maxStack: maxStack(0, 1), }, DUP1: { execute: makeDup(1), constantGas: GasFastestStep, - minStack: minDupStack(1), + minStack: 1, maxStack: maxDupStack(1), }, DUP2: { execute: makeDup(2), constantGas: GasFastestStep, - minStack: minDupStack(2), + minStack: 2, maxStack: maxDupStack(2), }, DUP3: { execute: makeDup(3), constantGas: GasFastestStep, - minStack: minDupStack(3), + minStack: 3, maxStack: maxDupStack(3), }, DUP4: { execute: makeDup(4), constantGas: GasFastestStep, - minStack: minDupStack(4), + minStack: 4, maxStack: maxDupStack(4), }, DUP5: { execute: makeDup(5), constantGas: GasFastestStep, - minStack: minDupStack(5), + minStack: 5, maxStack: maxDupStack(5), }, DUP6: { execute: makeDup(6), constantGas: GasFastestStep, - minStack: minDupStack(6), + minStack: 6, maxStack: maxDupStack(6), }, DUP7: { execute: makeDup(7), constantGas: GasFastestStep, - minStack: minDupStack(7), + minStack: 7, maxStack: maxDupStack(7), }, DUP8: { execute: makeDup(8), constantGas: GasFastestStep, - minStack: minDupStack(8), + minStack: 8, maxStack: maxDupStack(8), }, DUP9: { execute: makeDup(9), constantGas: GasFastestStep, - minStack: minDupStack(9), + minStack: 9, maxStack: maxDupStack(9), }, DUP10: { execute: makeDup(10), constantGas: GasFastestStep, - minStack: minDupStack(10), + minStack: 10, maxStack: maxDupStack(10), }, DUP11: { execute: makeDup(11), constantGas: GasFastestStep, - minStack: minDupStack(11), + minStack: 11, maxStack: maxDupStack(11), }, DUP12: { execute: makeDup(12), constantGas: GasFastestStep, - minStack: minDupStack(12), + minStack: 12, maxStack: maxDupStack(12), }, DUP13: { execute: makeDup(13), constantGas: GasFastestStep, - minStack: minDupStack(13), + minStack: 13, maxStack: maxDupStack(13), }, DUP14: { execute: makeDup(14), constantGas: GasFastestStep, - minStack: minDupStack(14), + minStack: 14, maxStack: maxDupStack(14), }, DUP15: { execute: makeDup(15), constantGas: GasFastestStep, - minStack: minDupStack(15), + minStack: 15, maxStack: maxDupStack(15), }, DUP16: { execute: makeDup(16), constantGas: GasFastestStep, - minStack: minDupStack(16), + minStack: 16, maxStack: maxDupStack(16), }, SWAP1: { execute: opSwap1, constantGas: GasFastestStep, - minStack: minSwapStack(2), + minStack: 2, maxStack: maxSwapStack(2), }, SWAP2: { execute: opSwap2, constantGas: GasFastestStep, - minStack: minSwapStack(3), + minStack: 3, maxStack: maxSwapStack(3), }, SWAP3: { execute: opSwap3, constantGas: GasFastestStep, - minStack: minSwapStack(4), + minStack: 4, maxStack: maxSwapStack(4), }, SWAP4: { execute: opSwap4, constantGas: GasFastestStep, - minStack: minSwapStack(5), + minStack: 5, maxStack: maxSwapStack(5), }, SWAP5: { execute: opSwap5, constantGas: GasFastestStep, - minStack: minSwapStack(6), + minStack: 6, maxStack: maxSwapStack(6), }, SWAP6: { execute: opSwap6, constantGas: GasFastestStep, - minStack: minSwapStack(7), + minStack: 7, maxStack: maxSwapStack(7), }, SWAP7: { execute: opSwap7, constantGas: GasFastestStep, - minStack: minSwapStack(8), + minStack: 8, maxStack: maxSwapStack(8), }, SWAP8: { execute: opSwap8, constantGas: GasFastestStep, - minStack: minSwapStack(9), + minStack: 9, maxStack: maxSwapStack(9), }, SWAP9: { execute: opSwap9, constantGas: GasFastestStep, - minStack: minSwapStack(10), + minStack: 10, maxStack: maxSwapStack(10), }, SWAP10: { execute: opSwap10, constantGas: GasFastestStep, - minStack: minSwapStack(11), + minStack: 11, maxStack: maxSwapStack(11), }, SWAP11: { execute: opSwap11, constantGas: GasFastestStep, - minStack: minSwapStack(12), + minStack: 12, maxStack: maxSwapStack(12), }, SWAP12: { execute: opSwap12, constantGas: GasFastestStep, - minStack: minSwapStack(13), + minStack: 13, maxStack: maxSwapStack(13), }, SWAP13: { execute: opSwap13, constantGas: GasFastestStep, - minStack: minSwapStack(14), + minStack: 14, maxStack: maxSwapStack(14), }, SWAP14: { execute: opSwap14, constantGas: GasFastestStep, - minStack: minSwapStack(15), + minStack: 15, maxStack: maxSwapStack(15), }, SWAP15: { execute: opSwap15, constantGas: GasFastestStep, - minStack: minSwapStack(16), + minStack: 16, maxStack: maxSwapStack(16), }, SWAP16: { execute: opSwap16, constantGas: GasFastestStep, - minStack: minSwapStack(17), + minStack: 17, maxStack: maxSwapStack(17), }, LOG0: { execute: makeLog(0), dynamicGas: makeGasLog(0), - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(2, 0), memorySize: memoryLog, }, LOG1: { execute: makeLog(1), dynamicGas: makeGasLog(1), - minStack: minStack(3, 0), + minStack: 3, maxStack: maxStack(3, 0), memorySize: memoryLog, }, LOG2: { execute: makeLog(2), dynamicGas: makeGasLog(2), - minStack: minStack(4, 0), + minStack: 4, maxStack: maxStack(4, 0), memorySize: memoryLog, }, LOG3: { execute: makeLog(3), dynamicGas: makeGasLog(3), - minStack: minStack(5, 0), + minStack: 5, maxStack: maxStack(5, 0), memorySize: memoryLog, }, LOG4: { execute: makeLog(4), dynamicGas: makeGasLog(4), - minStack: minStack(6, 0), + minStack: 6, maxStack: maxStack(6, 0), memorySize: memoryLog, }, @@ -1043,7 +1043,7 @@ func newFrontierInstructionSet() JumpTable { execute: opCreate, constantGas: params.CreateGas, dynamicGas: gasCreate, - minStack: minStack(3, 1), + minStack: 3, maxStack: maxStack(3, 1), memorySize: memoryCreate, }, @@ -1051,7 +1051,7 @@ func newFrontierInstructionSet() JumpTable { execute: opCall, constantGas: params.CallGasFrontier, dynamicGas: gasCall, - minStack: minStack(7, 1), + minStack: 7, maxStack: maxStack(7, 1), memorySize: memoryCall, }, @@ -1059,26 +1059,26 @@ func newFrontierInstructionSet() JumpTable { execute: opCallCode, constantGas: params.CallGasFrontier, dynamicGas: gasCallCode, - minStack: minStack(7, 1), + minStack: 7, maxStack: maxStack(7, 1), memorySize: memoryCall, }, RETURN: { execute: opReturn, dynamicGas: gasReturn, - minStack: minStack(2, 0), + minStack: 2, maxStack: maxStack(2, 0), memorySize: memoryReturn, }, SELFDESTRUCT: { execute: opSelfdestruct, dynamicGas: gasSelfdestruct, - minStack: minStack(1, 0), + minStack: 1, maxStack: maxStack(1, 0), }, INVALID: { execute: opUndefined, - minStack: minStack(0, 0), + minStack: 0, maxStack: maxStack(0, 0), }, } diff --git a/core/vm/stack_table.go b/core/vm/stack_table.go index 10c12901afdb..9da51ff1e581 100644 --- a/core/vm/stack_table.go +++ b/core/vm/stack_table.go @@ -20,23 +20,14 @@ import ( "github.com/ethereum/go-ethereum/params" ) -func minSwapStack(n int) int { - return minStack(n, n) -} func maxSwapStack(n int) int { return maxStack(n, n) } -func minDupStack(n int) int { - return minStack(n, n+1) -} func maxDupStack(n int) int { return maxStack(n, n+1) } func maxStack(pop, push int) int { return int(params.StackLimit) + pop - push -} -func minStack(pops, push int) int { - return pops -} +} \ No newline at end of file From 16df2f45dd31026845ef5c5608e4515616614e2c Mon Sep 17 00:00:00 2001 From: Sahil-4555 Date: Thu, 27 Nov 2025 10:14:31 +0530 Subject: [PATCH 2/2] fix lint --- core/vm/stack_table.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/vm/stack_table.go b/core/vm/stack_table.go index 9da51ff1e581..983867f655a9 100644 --- a/core/vm/stack_table.go +++ b/core/vm/stack_table.go @@ -30,4 +30,4 @@ func maxDupStack(n int) int { func maxStack(pop, push int) int { return int(params.StackLimit) + pop - push -} \ No newline at end of file +}