diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2017-09-16 10:46:29 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-16 10:46:29 +0800 |
commit | a0d171722a211720773aae0ded8a80991d44ba9d (patch) | |
tree | ae1376cd7d128573edb235f92191dd30118d07bf /libjulia/backends/evm/EVMAssembly.h | |
parent | 7dd372ce5c9ea1cacf2c70a16f0285bb74314db8 (diff) | |
parent | 80ce3ca66f063d8d87c2393e689f92d8608b4e0a (diff) | |
download | dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar.gz dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar.bz2 dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar.lz dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar.xz dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.tar.zst dexon-solidity-a0d171722a211720773aae0ded8a80991d44ba9d.zip |
Merge pull request #2823 from ethereum/iuliaCompressor
Combine all ABI functions into a single assembly.
Diffstat (limited to 'libjulia/backends/evm/EVMAssembly.h')
-rw-r--r-- | libjulia/backends/evm/EVMAssembly.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libjulia/backends/evm/EVMAssembly.h b/libjulia/backends/evm/EVMAssembly.h index 69585822..593cee6a 100644 --- a/libjulia/backends/evm/EVMAssembly.h +++ b/libjulia/backends/evm/EVMAssembly.h @@ -52,6 +52,8 @@ public: virtual void appendLabelReference(LabelID _labelId) override; /// Generate a new unique label. virtual LabelID newLabelId() override; + /// Returns a label identified by the given name. Creates it if it does not yet exist. + virtual LabelID namedLabel(std::string const& _name) override; /// Append a reference to a to-be-linked symobl. /// Currently, we assume that the value is always a 20 byte number. virtual void appendLinkerSymbol(std::string const& _name) override; @@ -85,6 +87,7 @@ private: LabelID m_nextLabelId = 0; int m_stackHeight = 0; bytes m_bytecode; + std::map<std::string, LabelID> m_namedLabels; std::map<LabelID, size_t> m_labelPositions; std::map<size_t, LabelID> m_labelReferences; std::vector<size_t> m_assemblySizePositions; |