mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Add bitwise shift operators to libevmasm (EIP145)
This commit is contained in:
parent
9c31a0d8f5
commit
59e6ea601b
@ -50,6 +50,11 @@ const std::map<std::string, Instruction> dev::solidity::c_instructions =
|
|||||||
{ "OR", Instruction::OR },
|
{ "OR", Instruction::OR },
|
||||||
{ "XOR", Instruction::XOR },
|
{ "XOR", Instruction::XOR },
|
||||||
{ "BYTE", Instruction::BYTE },
|
{ "BYTE", Instruction::BYTE },
|
||||||
|
{ "SHL", Instruction::SHL },
|
||||||
|
{ "SHR", Instruction::SHR },
|
||||||
|
{ "SAR", Instruction::SAR },
|
||||||
|
{ "ROL", Instruction::ROL },
|
||||||
|
{ "ROR", Instruction::ROR },
|
||||||
{ "ADDMOD", Instruction::ADDMOD },
|
{ "ADDMOD", Instruction::ADDMOD },
|
||||||
{ "MULMOD", Instruction::MULMOD },
|
{ "MULMOD", Instruction::MULMOD },
|
||||||
{ "SIGNEXTEND", Instruction::SIGNEXTEND },
|
{ "SIGNEXTEND", Instruction::SIGNEXTEND },
|
||||||
@ -190,6 +195,11 @@ static const std::map<Instruction, InstructionInfo> c_instructionInfo =
|
|||||||
{ Instruction::OR, { "OR", 0, 2, 1, false, Tier::VeryLow } },
|
{ Instruction::OR, { "OR", 0, 2, 1, false, Tier::VeryLow } },
|
||||||
{ Instruction::XOR, { "XOR", 0, 2, 1, false, Tier::VeryLow } },
|
{ Instruction::XOR, { "XOR", 0, 2, 1, false, Tier::VeryLow } },
|
||||||
{ Instruction::BYTE, { "BYTE", 0, 2, 1, false, Tier::VeryLow } },
|
{ Instruction::BYTE, { "BYTE", 0, 2, 1, false, Tier::VeryLow } },
|
||||||
|
{ Instruction::SHL, { "SHL", 0, 2, 1, false, Tier::VeryLow } },
|
||||||
|
{ Instruction::SHR, { "SHR", 0, 2, 1, false, Tier::VeryLow } },
|
||||||
|
{ Instruction::SAR, { "SAR", 0, 2, 1, false, Tier::VeryLow } },
|
||||||
|
{ Instruction::ROL, { "ROL", 0, 2, 1, false, Tier::VeryLow } },
|
||||||
|
{ Instruction::ROR, { "ROR", 0, 2, 1, false, Tier::VeryLow } },
|
||||||
{ Instruction::ADDMOD, { "ADDMOD", 0, 3, 1, false, Tier::Mid } },
|
{ Instruction::ADDMOD, { "ADDMOD", 0, 3, 1, false, Tier::Mid } },
|
||||||
{ Instruction::MULMOD, { "MULMOD", 0, 3, 1, false, Tier::Mid } },
|
{ Instruction::MULMOD, { "MULMOD", 0, 3, 1, false, Tier::Mid } },
|
||||||
{ Instruction::SIGNEXTEND, { "SIGNEXTEND", 0, 2, 1, false, Tier::Low } },
|
{ Instruction::SIGNEXTEND, { "SIGNEXTEND", 0, 2, 1, false, Tier::Low } },
|
||||||
|
@ -59,8 +59,13 @@ enum class Instruction: uint8_t
|
|||||||
AND, ///< bitwise AND operation
|
AND, ///< bitwise AND operation
|
||||||
OR, ///< bitwise OR operation
|
OR, ///< bitwise OR operation
|
||||||
XOR, ///< bitwise XOR operation
|
XOR, ///< bitwise XOR operation
|
||||||
NOT, ///< bitwise NOT opertation
|
NOT, ///< bitwise NOT operation
|
||||||
BYTE, ///< retrieve single byte from word
|
BYTE, ///< retrieve single byte from word
|
||||||
|
SHL, ///< bitwise SHL operation
|
||||||
|
SHR, ///< bitwise SHR operation
|
||||||
|
SAR, ///< bitwise SAR operation
|
||||||
|
ROL, ///< bitwise ROL operation
|
||||||
|
ROR, ///< bitwise ROR operation
|
||||||
|
|
||||||
KECCAK256 = 0x20, ///< compute KECCAK-256 hash
|
KECCAK256 = 0x20, ///< compute KECCAK-256 hash
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user