Skip to content

Commit

Permalink
Fix swap opcode
Browse files Browse the repository at this point in the history
  • Loading branch information
0xVolosnikov committed Aug 19, 2024
1 parent 74803d2 commit 9c1b9f3
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ function swapStackItem(sp, evmGas, position, oldStackHead) -> evmGasLeft, stack
evmGasLeft := chargeGas(evmGas, 3)
let tempSp := sub(sp, mul(0x20, position))

if or(iszero(lt(tempSp, BYTECODE_OFFSET())), lt(tempSp, STACK_OFFSET())) {
if lt(tempSp, STACK_OFFSET()) {
revertWithGas(evmGasLeft)
}

Expand Down
5 changes: 3 additions & 2 deletions system-contracts/contracts/EvmInterpreterLoop.template.yul
Original file line number Diff line number Diff line change
Expand Up @@ -1127,8 +1127,9 @@ for { } true { } {
sp, stackHead := pushStackItem(sp, value, evmGasLeft, stackHead)
ip := add(ip, 32)
}
case 0x80 { // OP_DUP1
sp, evmGasLeft, stackHead := dupStackItem(sp, evmGasLeft, 1, stackHead)
case 0x80 { // OP_DUP1
evmGasLeft := chargeGas(evmGasLeft, 3)
sp, stackHead := pushStackItem(sp, stackHead, evmGasLeft, stackHead)
ip := add(ip, 1)
}
case 0x81 { // OP_DUP2
Expand Down
14 changes: 8 additions & 6 deletions system-contracts/contracts/EvmInterpreterPreprocessed.yul
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ object "EVMInterpreter" {
evmGasLeft := chargeGas(evmGas, 3)
let tempSp := sub(sp, mul(0x20, position))

if or(iszero(lt(tempSp, BYTECODE_OFFSET())), lt(tempSp, STACK_OFFSET())) {
if lt(tempSp, STACK_OFFSET()) {
revertWithGas(evmGasLeft)
}

Expand Down Expand Up @@ -2662,8 +2662,9 @@ object "EVMInterpreter" {
sp, stackHead := pushStackItem(sp, value, evmGasLeft, stackHead)
ip := add(ip, 32)
}
case 0x80 { // OP_DUP1
sp, evmGasLeft, stackHead := dupStackItem(sp, evmGasLeft, 1, stackHead)
case 0x80 { // OP_DUP1
evmGasLeft := chargeGas(evmGasLeft, 3)
sp, stackHead := pushStackItem(sp, stackHead, evmGasLeft, stackHead)
ip := add(ip, 1)
}
case 0x81 { // OP_DUP2
Expand Down Expand Up @@ -3150,7 +3151,7 @@ object "EVMInterpreter" {
evmGasLeft := chargeGas(evmGas, 3)
let tempSp := sub(sp, mul(0x20, position))

if or(iszero(lt(tempSp, BYTECODE_OFFSET())), lt(tempSp, STACK_OFFSET())) {
if lt(tempSp, STACK_OFFSET()) {
revertWithGas(evmGasLeft)
}

Expand Down Expand Up @@ -5630,8 +5631,9 @@ object "EVMInterpreter" {
sp, stackHead := pushStackItem(sp, value, evmGasLeft, stackHead)
ip := add(ip, 32)
}
case 0x80 { // OP_DUP1
sp, evmGasLeft, stackHead := dupStackItem(sp, evmGasLeft, 1, stackHead)
case 0x80 { // OP_DUP1
evmGasLeft := chargeGas(evmGasLeft, 3)
sp, stackHead := pushStackItem(sp, stackHead, evmGasLeft, stackHead)
ip := add(ip, 1)
}
case 0x81 { // OP_DUP2
Expand Down

0 comments on commit 9c1b9f3

Please sign in to comment.