Skip to content

Commit

Permalink
Change opcode generated by (panic) to INVALID
Browse files Browse the repository at this point in the history
EIP-141 ethereum/EIPs#141 has preserved 0xfe as an invalid opcode for aborting EVM execution. The EVM assembler supports this via the INVALID opcode.

The LLL "panic" expression used to generate a jump to an invalid location in order to abort EVM execution.  This change brings "panic" into line with EIP-141 by generating the INVALID opcode instead.
  • Loading branch information
benjaminion committed Jun 13, 2017
1 parent 40f5690 commit 1fea6b1
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 4 deletions.
4 changes: 0 additions & 4 deletions liblll/CodeFragment.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -573,10 +573,6 @@ void CodeFragment::constructOperation(sp::utree const& _t, CompilerState& _s)
m_asm.append(i.m_asm);
m_asm.popTo(1);
}
else if (us == "PANIC")
{
m_asm.appendJump(m_asm.errorTag());
}
else if (us == "BYTECODESIZE")
{
m_asm.appendProgramSize();
Expand Down
1 change: 1 addition & 0 deletions liblll/CompilerState.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ CodeFragment const& CompilerState::getDef(std::string const& _s)
void CompilerState::populateStandard()
{
static const string s = "{"
"(def 'panic () (asm INVALID))"
"(def 'allgas (- (gas) 21))"
"(def 'send (to value) (call allgas to value 0 0 0 0))"
"(def 'send (gaslimit to value) (call gaslimit to value 0 0 0 0))"
Expand Down

0 comments on commit 1fea6b1

Please sign in to comment.