| 83 | } |
| 84 | |
| 85 | std::string YulUtilFunctions::splitExternalFunctionIdFunction() |
| 86 | { |
| 87 | std::string functionName = "split_external_function_id"; |
| 88 | return m_functionCollector.createFunction(functionName, [&]() { |
| 89 | return Whiskers(R"( |
| 90 | function <functionName>(combined) -> addr, selector { |
| 91 | combined := <shr64>(combined) |
| 92 | selector := and(combined, 0xffffffff) |
| 93 | addr := <shr32>(combined) |
| 94 | } |
| 95 | )") |
| 96 | ("functionName", functionName) |
| 97 | ("shr32", shiftRightFunction(32)) |
| 98 | ("shr64", shiftRightFunction(64)) |
| 99 | .render(); |
| 100 | }); |
| 101 | } |
| 102 | |
| 103 | std::string YulUtilFunctions::copyToMemoryFunction(bool _fromCalldata, bool _cleanup) |
| 104 | { |
no test coverage detected