diff options
author | chriseth <chris@ethereum.org> | 2018-12-05 01:57:07 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2018-12-06 21:32:04 +0800 |
commit | f6ed29b88b0a721984173df04f04ad4c48d8711d (patch) | |
tree | 58d4f4345cea8c3f4b4d236203102638b835d9b3 /libsolidity/codegen/AsmCodeGen.h | |
parent | 4721cf332f0ca8af5fa16244c651cd6a635b3cdc (diff) | |
download | dexon-solidity-f6ed29b88b0a721984173df04f04ad4c48d8711d.tar dexon-solidity-f6ed29b88b0a721984173df04f04ad4c48d8711d.tar.gz dexon-solidity-f6ed29b88b0a721984173df04f04ad4c48d8711d.tar.bz2 dexon-solidity-f6ed29b88b0a721984173df04f04ad4c48d8711d.tar.lz dexon-solidity-f6ed29b88b0a721984173df04f04ad4c48d8711d.tar.xz dexon-solidity-f6ed29b88b0a721984173df04f04ad4c48d8711d.tar.zst dexon-solidity-f6ed29b88b0a721984173df04f04ad4c48d8711d.zip |
Extend abstract assembly to be able to handle sub-objects.
Diffstat (limited to 'libsolidity/codegen/AsmCodeGen.h')
-rw-r--r-- | libsolidity/codegen/AsmCodeGen.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libsolidity/codegen/AsmCodeGen.h b/libsolidity/codegen/AsmCodeGen.h index b5bd33d5..4c6d97f4 100644 --- a/libsolidity/codegen/AsmCodeGen.h +++ b/libsolidity/codegen/AsmCodeGen.h @@ -63,11 +63,17 @@ public: void appendJumpsub(LabelID, int, int) override; void appendReturnsub(int, int) override; void appendAssemblySize() override; + std::pair<std::shared_ptr<AbstractAssembly>, SubID> createSubAssembly() override; + void appendDataOffset(SubID _sub) override; + void appendDataSize(SubID _sub) override; + SubID appendData(dev::bytes const& _data) override; private: static LabelID assemblyTagToIdentifier(eth::AssemblyItem const& _tag); eth::Assembly& m_assembly; + std::map<SubID, dev::u256> m_dataHashBySubId; + size_t m_nextDataCounter = std::numeric_limits<size_t>::max() / 2; }; class CodeGenerator |