aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen/CompilerUtils.h
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2016-12-12 00:51:17 +0800
committerchriseth <c@ethdev.com>2016-12-12 00:57:15 +0800
commitbfa4f451160bff14d79bf6e25d969b1f586a8b00 (patch)
treedd16eb515fd3c1594a044d1ec7235782ef6ffa36 /libsolidity/codegen/CompilerUtils.h
parent4184525d4ad7aff3acb2d521c3cdc21054e36eff (diff)
downloaddexon-solidity-bfa4f451160bff14d79bf6e25d969b1f586a8b00.tar.gz
dexon-solidity-bfa4f451160bff14d79bf6e25d969b1f586a8b00.tar.zst
dexon-solidity-bfa4f451160bff14d79bf6e25d969b1f586a8b00.zip
Split memcopy into three functions.
Diffstat (limited to 'libsolidity/codegen/CompilerUtils.h')
-rw-r--r--libsolidity/codegen/CompilerUtils.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/libsolidity/codegen/CompilerUtils.h b/libsolidity/codegen/CompilerUtils.h
index 52b5b0d6..ad53efea 100644
--- a/libsolidity/codegen/CompilerUtils.h
+++ b/libsolidity/codegen/CompilerUtils.h
@@ -112,7 +112,15 @@ public:
/// Uses a CALL to the identity contract to perform a memory-to-memory copy.
/// Stack pre: <size> <target> <source>
/// Stack post:
- void memoryCopy(bool _useIdentityPrecompile = false);
+ void memoryCopyPrecompile();
+ /// Copies full 32 byte words in memory (regions cannot overlap), i.e. may copy more than length.
+ /// Stack pre: <size> <target> <source>
+ /// Stack post:
+ void memoryCopy32();
+ /// Copies data in memory (regions cannot overlap).
+ /// Stack pre: <size> <target> <source>
+ /// Stack post:
+ void memoryCopy();
/// Converts the combined and left-aligned (right-aligned if @a _rightAligned is true)
/// external function type <address><function identifier> into two stack slots: