Better interface for instrInfo.

This commit is contained in:
Gav Wood 2014-08-26 22:27:45 +02:00
parent 74f198c043
commit 00caaf53d2
2 changed files with 4 additions and 4 deletions

View File

@ -31,7 +31,7 @@ int AssemblyItem::deposit() const
switch (m_type) switch (m_type)
{ {
case Operation: case Operation:
return c_instructionInfo.at((Instruction)(byte)m_data).ret - c_instructionInfo.at((Instruction)(byte)m_data).args; return instructionInfo((Instruction)(byte)m_data).ret - instructionInfo((Instruction)(byte)m_data).args;
case Push: case PushString: case PushTag: case PushData: case PushSub: case PushSubSize: case Push: case PushString: case PushTag: case PushData: case PushSub: case PushSubSize:
return 1; return 1;
case Tag: case Tag:
@ -116,7 +116,7 @@ ostream& eth::operator<<(ostream& _out, AssemblyItemsConstRef _i)
switch (i.type()) switch (i.type())
{ {
case Operation: case Operation:
_out << " " << c_instructionInfo.at((Instruction)(byte)i.data()).name; _out << " " << instructionInfo((Instruction)(byte)i.data()).name;
break; break;
case Push: case Push:
_out << " PUSH" << i.data(); _out << " PUSH" << i.data();
@ -153,7 +153,7 @@ ostream& Assembly::streamOut(ostream& _out, string const& _prefix) const
switch (i.m_type) switch (i.m_type)
{ {
case Operation: case Operation:
_out << _prefix << " " << c_instructionInfo.at((Instruction)(byte)i.m_data).name << endl; _out << _prefix << " " << instructionInfo((Instruction)(byte)i.m_data).name << endl;
break; break;
case Push: case Push:
_out << _prefix << " PUSH " << i.m_data << endl; _out << _prefix << " PUSH " << i.m_data << endl;

View File

@ -369,7 +369,7 @@ void CodeFragment::constructOperation(sp::utree const& _t, CompilerState& _s)
else if (c_instructions.count(us)) else if (c_instructions.count(us))
{ {
auto it = c_instructions.find(us); auto it = c_instructions.find(us);
int ea = c_instructionInfo.at(it->second).args; int ea = instructionInfo(it->second).args;
if (ea >= 0) if (ea >= 0)
requireSize(ea); requireSize(ea);
else else