aboutsummaryrefslogtreecommitdiffstats
path: root/docs/assembly.rst
diff options
context:
space:
mode:
authorDimitry <winsvega@mail.ru>2017-06-08 22:44:03 +0800
committerchriseth <chris@ethereum.org>2017-06-15 00:18:12 +0800
commitc20cdd0a0574c350b5cde7b38e87321479cecab3 (patch)
tree5e7bc76cba1ec47124eb3bba453a2c994c0d766a /docs/assembly.rst
parentd693822a6fce5d1c853e50f4c7758bc003542644 (diff)
downloaddexon-solidity-c20cdd0a0574c350b5cde7b38e87321479cecab3.tar
dexon-solidity-c20cdd0a0574c350b5cde7b38e87321479cecab3.tar.gz
dexon-solidity-c20cdd0a0574c350b5cde7b38e87321479cecab3.tar.bz2
dexon-solidity-c20cdd0a0574c350b5cde7b38e87321479cecab3.tar.lz
dexon-solidity-c20cdd0a0574c350b5cde7b38e87321479cecab3.tar.xz
dexon-solidity-c20cdd0a0574c350b5cde7b38e87321479cecab3.tar.zst
dexon-solidity-c20cdd0a0574c350b5cde7b38e87321479cecab3.zip
add new opcode instructions to the parser
STATICCALL 0xfa 6 inputs (gas address mem1 mem2 mem3 mem4)
Diffstat (limited to 'docs/assembly.rst')
-rw-r--r--docs/assembly.rst9
1 files changed, 8 insertions, 1 deletions
diff --git a/docs/assembly.rst b/docs/assembly.rst
index cd3ff4c0..938b72fa 100644
--- a/docs/assembly.rst
+++ b/docs/assembly.rst
@@ -236,11 +236,15 @@ In the grammar, opcodes are represented as pre-defined identifiers.
+-------------------------+------+-----------------------------------------------------------------+
| returndatasize | | size of the last returndata |
+-------------------------+------+-----------------------------------------------------------------+
-| returndatacopy(t, f, s) | `*` | copy s bytes from returndata at position f to mem at position t |
+| returndatacopy(t, f, s) | `-` | copy s bytes from returndata at position f to mem at position t |
+-------------------------+------+-----------------------------------------------------------------+
| create(v, p, s) | | create new contract with code mem[p..(p+s)) and send v wei |
| | | and return the new address |
+-------------------------+------+-----------------------------------------------------------------+
+| create2(v, n, p, s) | | create new contract with code mem[p..(p+s)) at address |
+| | | keccak256(<address> . n . keccak256(mem[p..(p+s))) and send v |
+| | | wei and return the new address |
++-------------------------+------+-----------------------------------------------------------------+
| call(g, a, v, in, | | call contract at address a with input mem[in..(in+insize)) |
| insize, out, outsize) | | providing g gas and v wei and output area |
| | | mem[out..(out+outsize)) returning 0 on error (eg. out of gas) |
@@ -252,6 +256,9 @@ In the grammar, opcodes are represented as pre-defined identifiers.
| delegatecall(g, a, in, | | identical to `callcode` but also keep ``caller`` |
| insize, out, outsize) | | and ``callvalue`` |
+-------------------------+------+-----------------------------------------------------------------+
+| staticcall(g, a, in, | | identical to `call(g, a, 0, in, insize, out, outsize)` but do |
+| insize, out, outsize) | | not allow state modifications |
++-------------------------+------+-----------------------------------------------------------------+
| return(p, s) | `-` | end execution, return data mem[p..(p+s)) |
+-------------------------+------+-----------------------------------------------------------------+
| revert(p, s) | `-` | end execution, revert state changes, return data mem[p..(p+s)) |