aboutsummaryrefslogtreecommitdiffstats
path: root/CompilerUtils.h
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-06-26 00:52:19 +0800
committerchriseth <c@ethdev.com>2015-06-26 00:52:19 +0800
commit2e5c52bfabdc7ac221bf4617ed98d9a9abef85b8 (patch)
treee2cf306d37298b8de3da3a9c0c29a024bfc3f080 /CompilerUtils.h
parentfb14a586f4084d8acb3a765f3995e2a5e7b3a5b3 (diff)
parent529ed468df4c8fc9947cf92b42a5da84c7434b49 (diff)
downloaddexon-solidity-2e5c52bfabdc7ac221bf4617ed98d9a9abef85b8.tar
dexon-solidity-2e5c52bfabdc7ac221bf4617ed98d9a9abef85b8.tar.gz
dexon-solidity-2e5c52bfabdc7ac221bf4617ed98d9a9abef85b8.tar.bz2
dexon-solidity-2e5c52bfabdc7ac221bf4617ed98d9a9abef85b8.tar.lz
dexon-solidity-2e5c52bfabdc7ac221bf4617ed98d9a9abef85b8.tar.xz
dexon-solidity-2e5c52bfabdc7ac221bf4617ed98d9a9abef85b8.tar.zst
dexon-solidity-2e5c52bfabdc7ac221bf4617ed98d9a9abef85b8.zip
Merge pull request #2276 from chriseth/sol_memoryArrays7
Copy routines for non-byte arrays.
Diffstat (limited to 'CompilerUtils.h')
-rw-r--r--CompilerUtils.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/CompilerUtils.h b/CompilerUtils.h
index 9a599f7f..a9e07f74 100644
--- a/CompilerUtils.h
+++ b/CompilerUtils.h
@@ -71,6 +71,8 @@ public:
void storeInMemory(unsigned _offset);
/// Dynamic version of @see storeInMemory, expects the memory offset below the value on the stack
/// and also updates that. For arrays, only copies the data part.
+ /// @param _padToWordBoundaries if true, adds zeros to pad to multiple of 32 bytes. Array elements
+ /// are always padded (except for byte arrays), regardless of this parameter.
/// Stack pre: memory_offset value...
/// Stack post: (memory_offset+length)
void storeInMemoryDynamic(Type const& _type, bool _padToWordBoundaries = true);
@@ -93,6 +95,11 @@ public:
bool _copyDynamicDataInPlace = false
);
+ /// Uses a CALL to the identity contract to perform a memory-to-memory copy.
+ /// Stack pre: <size> <target> <source>
+ /// Stack post:
+ void memoryCopy();
+
/// Appends code for an implicit or explicit type conversion. This includes erasing higher
/// order bits (@see appendHighBitCleanup) when widening integer but also copy to memory
/// if a reference type is converted from calldata or storage to memory.