mirror of https://github.com/status-im/evmc.git
instructions: add repricing from EIP-1884
This commit is contained in:
parent
3e9e76d5d6
commit
0d53dfa8bc
|
@ -71,7 +71,7 @@ static struct evmc_instruction_metrics istanbul_metrics[256] = {
|
|||
/* = 0x2e */ {UNDEFINED, 0, 0},
|
||||
/* = 0x2f */ {UNDEFINED, 0, 0},
|
||||
/* ADDRESS = 0x30 */ {BASE, 0, 1},
|
||||
/* BALANCE = 0x31 */ {400, 1, 1},
|
||||
/* BALANCE = 0x31 */ {700, 1, 1},
|
||||
/* ORIGIN = 0x32 */ {BASE, 0, 1},
|
||||
/* CALLER = 0x33 */ {BASE, 0, 1},
|
||||
/* CALLVALUE = 0x34 */ {BASE, 0, 1},
|
||||
|
@ -85,7 +85,7 @@ static struct evmc_instruction_metrics istanbul_metrics[256] = {
|
|||
/* EXTCODECOPY = 0x3c */ {700, 4, 0},
|
||||
/* RETURNDATASIZE = 0x3d */ {BASE, 0, 1},
|
||||
/* RETURNDATACOPY = 0x3e */ {VERYLOW, 3, 0},
|
||||
/* EXTCODEHASH = 0x3f */ {400, 1, 1},
|
||||
/* EXTCODEHASH = 0x3f */ {700, 1, 1},
|
||||
/* BLOCKHASH = 0x40 */ {20, 1, 1},
|
||||
/* COINBASE = 0x41 */ {BASE, 0, 1},
|
||||
/* TIMESTAMP = 0x42 */ {BASE, 0, 1},
|
||||
|
@ -106,7 +106,7 @@ static struct evmc_instruction_metrics istanbul_metrics[256] = {
|
|||
/* MLOAD = 0x51 */ {VERYLOW, 1, 1},
|
||||
/* MSTORE = 0x52 */ {VERYLOW, 2, 0},
|
||||
/* MSTORE8 = 0x53 */ {VERYLOW, 2, 0},
|
||||
/* SLOAD = 0x54 */ {200, 1, 1},
|
||||
/* SLOAD = 0x54 */ {800, 1, 1},
|
||||
/* SSTORE = 0x55 */ {0, 2, 0},
|
||||
/* JUMP = 0x56 */ {MID, 1, 0},
|
||||
/* JUMPI = 0x57 */ {HIGH, 2, 0},
|
||||
|
|
|
@ -253,8 +253,11 @@ TEST(instructions, istanbul_hard_fork)
|
|||
{
|
||||
switch (op)
|
||||
{
|
||||
case OP_BALANCE:
|
||||
case OP_EXTCODEHASH:
|
||||
case OP_CHAINID:
|
||||
case OP_SELFBALANCE:
|
||||
case OP_SLOAD:
|
||||
continue;
|
||||
default:
|
||||
EXPECT_EQ(i[op], p[op]) << op;
|
||||
|
@ -276,6 +279,11 @@ TEST(instructions, istanbul_hard_fork)
|
|||
EXPECT_EQ(p[OP_SELFBALANCE].gas_cost, -1);
|
||||
EXPECT_EQ(in[OP_SELFBALANCE], std::string{"SELFBALANCE"});
|
||||
EXPECT_TRUE(pn[OP_SELFBALANCE] == nullptr);
|
||||
|
||||
// Repricings
|
||||
EXPECT_EQ(i[OP_BALANCE].gas_cost, 700);
|
||||
EXPECT_EQ(i[OP_EXTCODEHASH].gas_cost, 700);
|
||||
EXPECT_EQ(i[OP_SLOAD].gas_cost, 800);
|
||||
}
|
||||
|
||||
TEST(instructions, berlin_hard_fork)
|
||||
|
|
Loading…
Reference in New Issue