| 120 | } |
| 121 | |
| 122 | void CompilerContext::callLowLevelFunction( |
| 123 | std::string const& _name, |
| 124 | unsigned _inArgs, |
| 125 | unsigned _outArgs, |
| 126 | std::function<void(CompilerContext&)> const& _generator |
| 127 | ) |
| 128 | { |
| 129 | evmasm::AssemblyItem retTag = pushNewTag(); |
| 130 | CompilerUtils(*this).moveIntoStack(_inArgs); |
| 131 | |
| 132 | *this << lowLevelFunctionTag(_name, _inArgs, _outArgs, _generator); |
| 133 | |
| 134 | appendJump(evmasm::AssemblyItem::JumpType::IntoFunction); |
| 135 | adjustStackOffset(static_cast<int>(_outArgs) - 1 - static_cast<int>(_inArgs)); |
| 136 | *this << retTag.tag(); |
| 137 | } |
| 138 | |
| 139 | void CompilerContext::callYulFunction( |
| 140 | std::string const& _name, |
no test coverage detected