aboutsummaryrefslogtreecommitdiffstats
path: root/libjulia/backends/evm/EVMAssembly.h
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-09-16 10:46:29 +0800
committerGitHub <noreply@github.com>2017-09-16 10:46:29 +0800
commita0d171722a211720773aae0ded8a80991d44ba9d (patch)
treeae1376cd7d128573edb235f92191dd30118d07bf /libjulia/backends/evm/EVMAssembly.h
parent7dd372ce5c9ea1cacf2c70a16f0285bb74314db8 (diff)
parent80ce3ca66f063d8d87c2393e689f92d8608b4e0a (diff)
downloaddexon-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.h3
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;