aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen/AsmCodeGen.h
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-12-05 01:57:07 +0800
committerchriseth <chris@ethereum.org>2018-12-06 21:32:04 +0800
commitf6ed29b88b0a721984173df04f04ad4c48d8711d (patch)
tree58d4f4345cea8c3f4b4d236203102638b835d9b3 /libsolidity/codegen/AsmCodeGen.h
parent4721cf332f0ca8af5fa16244c651cd6a635b3cdc (diff)
downloaddexon-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.h6
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