668 lines
19 KiB
Nim
668 lines
19 KiB
Nim
# Nimbus
|
|
# Copyright (c) 2019-2023 Status Research & Development GmbH
|
|
# Licensed under either of
|
|
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
|
|
# http://www.apache.org/licenses/LICENSE-2.0)
|
|
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or
|
|
# http://opensource.org/licenses/MIT)
|
|
# at your option. This file may not be copied, modified, or distributed except
|
|
# according to those terms.
|
|
|
|
import macro_assembler, unittest2
|
|
|
|
proc opBitMain*() =
|
|
suite "Bitwise Opcodes":
|
|
assembler: # AND OP
|
|
title: "AND_1"
|
|
code:
|
|
PUSH1 "0x0A"
|
|
PUSH1 "0x0A"
|
|
AND
|
|
stack: "0x000000000000000000000000000000000000000000000000000000000000000A"
|
|
|
|
assembler: # AND OP
|
|
title: "AND_2"
|
|
code:
|
|
PUSH1 "0xC0"
|
|
PUSH1 "0x0A"
|
|
AND
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # AND OP mal data
|
|
title: "AND_3"
|
|
code:
|
|
PUSH1 "0xC0"
|
|
AND
|
|
success: false
|
|
stack: "0xC0"
|
|
|
|
assembler: # OR OP
|
|
title: "OR_1"
|
|
code:
|
|
PUSH1 "0xF0"
|
|
PUSH1 "0x0F"
|
|
OR
|
|
stack: "0x00000000000000000000000000000000000000000000000000000000000000FF"
|
|
|
|
assembler: # OR OP
|
|
title: "OR_2"
|
|
code:
|
|
PUSH1 "0xC3"
|
|
PUSH1 "0x3C"
|
|
OR
|
|
stack: "0x00000000000000000000000000000000000000000000000000000000000000FF"
|
|
|
|
assembler: # OR OP mal data
|
|
title: "OR_3"
|
|
code:
|
|
PUSH1 "0xC0"
|
|
OR
|
|
success: false
|
|
stack: "0xC0"
|
|
|
|
assembler: # XOR OP
|
|
title: "XOR_1"
|
|
code:
|
|
PUSH1 "0xFF"
|
|
PUSH1 "0xFF"
|
|
XOR
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # XOR OP
|
|
title: "XOR_2"
|
|
code:
|
|
PUSH1 "0x0F"
|
|
PUSH1 "0xF0"
|
|
XOR
|
|
stack: "0x00000000000000000000000000000000000000000000000000000000000000FF"
|
|
|
|
assembler: # XOR OP mal data
|
|
title: "XOR_3"
|
|
code:
|
|
PUSH1 "0xC0"
|
|
XOR
|
|
success: false
|
|
stack: "0xC0"
|
|
|
|
assembler: # BYTE OP
|
|
title: "BYTE_1"
|
|
code:
|
|
PUSH6 "0xAABBCCDDEEFF"
|
|
PUSH1 "0x1E"
|
|
BYTE
|
|
stack: "0x00000000000000000000000000000000000000000000000000000000000000EE"
|
|
|
|
assembler: # BYTE OP
|
|
title: "BYTE_2"
|
|
code:
|
|
PUSH6 "0xAABBCCDDEEFF"
|
|
PUSH1 "0x20"
|
|
BYTE
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # BYTE OP
|
|
title: "BYTE_3"
|
|
code:
|
|
PUSH6 "0xAABBCCDDEE3A"
|
|
PUSH1 "0x1F"
|
|
BYTE
|
|
stack: "0x000000000000000000000000000000000000000000000000000000000000003A"
|
|
|
|
assembler: # BYTE OP mal data
|
|
title: "BYTE_4"
|
|
code:
|
|
PUSH6 "0xAABBCCDDEE3A"
|
|
BYTE
|
|
success: false
|
|
stack: "0xAABBCCDDEE3A"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_1"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
PUSH1 "0x00"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_2"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
PUSH1 "0x01"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000002"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_3"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
PUSH1 "0xff"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0x8000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_4"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
PUSH2 "0x0100"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_5"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
PUSH2 "0x0101"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_6"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0x00"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_7"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0x01"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_8"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0xff"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0x8000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_9"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH2 "0x0100"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_10"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH1 "0x01"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHL OP
|
|
title: "SHL_11"
|
|
code:
|
|
PUSH32 "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0x01"
|
|
SHL
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_1"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
PUSH1 "0x00"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_2"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
PUSH1 "0x01"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_3"
|
|
code:
|
|
PUSH32 "0x8000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH1 "0x01"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0x4000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_4"
|
|
code:
|
|
PUSH32 "0x8000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH1 "0xff"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_5"
|
|
code:
|
|
PUSH32 "0x8000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH2 "0x0100"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_6"
|
|
code:
|
|
PUSH32 "0x8000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH2 "0x0101"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_7"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0x00"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_8"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0x01"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_9"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0xff"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_10"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH2 "0x0100"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SHR OP
|
|
title: "SHR_11"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH1 "0x01"
|
|
SHR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_1"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
PUSH1 "0x00"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_2"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
PUSH1 "0x01"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_3"
|
|
code:
|
|
PUSH32 "0x8000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH1 "0x01"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0xC000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_4"
|
|
code:
|
|
PUSH32 "0x8000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH1 "0xff"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_5"
|
|
code:
|
|
PUSH32 "0x8000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH2 "0x0100"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_6"
|
|
code:
|
|
PUSH32 "0x8000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH2 "0x0101"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_7"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0x00"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_8"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0x01"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_9"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0xff"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_10"
|
|
code:
|
|
PUSH32 "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH2 "0x0100"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_11"
|
|
code:
|
|
PUSH32 "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH1 "0x01"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_12"
|
|
code:
|
|
PUSH32 "0x4000000000000000000000000000000000000000000000000000000000000000"
|
|
PUSH1 "0xfe"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_13"
|
|
code:
|
|
PUSH32 "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0xf8"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0x000000000000000000000000000000000000000000000000000000000000007F"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_14"
|
|
code:
|
|
PUSH32 "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0xfe"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_15"
|
|
code:
|
|
PUSH32 "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH1 "0xff"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SAR OP
|
|
title: "SAR_16"
|
|
code:
|
|
PUSH32 "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
PUSH2 "0x0100"
|
|
SAR
|
|
fork: Constantinople
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # ISZERO OP
|
|
title: "ISZERO_1"
|
|
code:
|
|
PUSH1 "0x00"
|
|
ISZERO
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # ISZERO OP
|
|
title: "ISZERO_2"
|
|
code:
|
|
PUSH1 "0x2A"
|
|
ISZERO
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # ISZERO OP mal data
|
|
title: "ISZERO_3"
|
|
code: ISZERO
|
|
success: false
|
|
|
|
assembler: # EQ OP
|
|
title: "EQ_1"
|
|
code:
|
|
PUSH1 "0x2A"
|
|
PUSH1 "0x2A"
|
|
EQ
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # EQ OP
|
|
title: "EQ_2"
|
|
code:
|
|
PUSH3 "0x2A3B4C"
|
|
PUSH3 "0x2A3B4C"
|
|
EQ
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # EQ OP
|
|
title: "EQ_3"
|
|
code:
|
|
PUSH3 "0x2A3B5C"
|
|
PUSH3 "0x2A3B4C"
|
|
EQ
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # EQ OP mal data
|
|
title: "EQ_4"
|
|
code:
|
|
PUSH3 "0x2A3B4C"
|
|
EQ
|
|
success: false
|
|
stack: "0x2A3B4C"
|
|
|
|
assembler: # GT OP
|
|
title: "GT_1"
|
|
code:
|
|
PUSH1 "0x01"
|
|
PUSH1 "0x02"
|
|
GT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # GT OP
|
|
title: "GT_2"
|
|
code:
|
|
PUSH1 "0x01"
|
|
PUSH2 "0x0F00"
|
|
GT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # GT OP
|
|
title: "GT_3"
|
|
code:
|
|
PUSH4 "0x01020304"
|
|
PUSH2 "0x0F00"
|
|
GT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # GT OP mal data
|
|
title: "GT_4"
|
|
code:
|
|
PUSH3 "0x2A3B4C"
|
|
GT
|
|
success: false
|
|
stack: "0x2A3B4C"
|
|
|
|
assembler: # SGT OP
|
|
title: "SGT_1"
|
|
code:
|
|
PUSH1 "0x01"
|
|
PUSH1 "0x02"
|
|
SGT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # SGT OP
|
|
title: "SGT_2"
|
|
code:
|
|
PUSH32 "0x000000000000000000000000000000000000000000000000000000000000001E" # 30
|
|
PUSH32 "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56" # -170
|
|
SGT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SGT OP
|
|
title: "SGT_3"
|
|
code:
|
|
PUSH32 "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56" # -170
|
|
PUSH32 "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57" # -169
|
|
SGT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # SGT OP mal
|
|
title: "SGT_4"
|
|
code:
|
|
PUSH32 "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56" # -170
|
|
SGT
|
|
success: false
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56"
|
|
|
|
assembler: # LT OP
|
|
title: "LT_1"
|
|
code:
|
|
PUSH1 "0x01"
|
|
PUSH1 "0x02"
|
|
LT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # LT OP
|
|
title: "LT_2"
|
|
code:
|
|
PUSH1 "0x01"
|
|
PUSH2 "0x0F00"
|
|
LT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # LT OP
|
|
title: "LT_3"
|
|
code:
|
|
PUSH4 "0x01020304"
|
|
PUSH2 "0x0F00"
|
|
LT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # LT OP mal data
|
|
title: "LT_4"
|
|
code:
|
|
PUSH3 "0x2A3B4C"
|
|
LT
|
|
success: false
|
|
stack: "0x2A3B4C"
|
|
|
|
assembler: # SLT OP
|
|
title: "SLT_1"
|
|
code:
|
|
PUSH1 "0x01"
|
|
PUSH1 "0x02"
|
|
SLT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SLT OP
|
|
title: "SLT_2"
|
|
code:
|
|
PUSH32 "0x000000000000000000000000000000000000000000000000000000000000001E" # 30
|
|
PUSH32 "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56" # -170
|
|
SLT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
|
|
assembler: # SLT OP
|
|
title: "SLT_3"
|
|
code:
|
|
PUSH32 "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56" # -170
|
|
PUSH32 "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57" # -169
|
|
SLT
|
|
stack: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
|
|
assembler: # SLT OP mal
|
|
title: "SLT_4"
|
|
code:
|
|
PUSH32 "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56" # -170
|
|
SLT
|
|
success: false
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56"
|
|
|
|
assembler: # NOT OP
|
|
title: "NOT_1"
|
|
code:
|
|
PUSH1 "0x01"
|
|
NOT
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE"
|
|
|
|
assembler: # NOT OP
|
|
title: "NOT_2"
|
|
code:
|
|
PUSH2 "0xA003"
|
|
NOT
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5FFC"
|
|
|
|
assembler: # BNOT OP
|
|
title: "BNOT_4"
|
|
code: NOT
|
|
success: false
|
|
|
|
assembler: # NOT OP
|
|
title: "NOT_5"
|
|
code:
|
|
PUSH1 "0x00"
|
|
NOT
|
|
stack: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
|
|
when isMainModule:
|
|
opBitMain()
|