Merge pull request #766 from mir-protocol/more_inc_dec_macros

Some more uses of %increment, %decrement
This commit is contained in:
Daniel Lubarov 2022-10-07 12:17:13 -07:00 committed by GitHub
commit 39fc7a2a9e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 44 additions and 44 deletions

View File

@ -22,7 +22,7 @@ count_zeros_loop:
// stack: zeros', i, retdest
SWAP1
// stack: i, zeros', retdest
%add_const(1)
%increment
// stack: i', zeros', retdest
%jump(count_zeros_loop)

View File

@ -14,7 +14,7 @@
%macro next_context_id
// stack: (empty)
%mload_global_metadata(@GLOBAL_METADATA_LARGEST_CONTEXT)
%add_const(1)
%increment
// stack: new_ctx
DUP1
%mstore_global_metadata(@GLOBAL_METADATA_LARGEST_CONTEXT)

View File

@ -64,7 +64,7 @@
%shl_const(8)
// stack: c_3 << 8, offset
DUP2
%add_const(1)
%increment
%mload_kernel($segment)
OR
// stack: (c_3 << 8) | c_2, offset
@ -91,7 +91,7 @@
%mload_kernel($segment)
// stack: c0 , offset
DUP2
%add_const(1)
%increment
%mload_kernel($segment)
%shl_const(8)
OR
@ -208,7 +208,7 @@
// stack: c_2, c_1, c_0, offset
DUP4
// stack: offset, c_2, c_1, c_0, offset
%add_const(1)
%increment
%mstore_kernel($segment)
// stack: c_1, c_0, offset
DUP3

View File

@ -28,15 +28,15 @@ global memcpy:
// Increment dst_addr.
SWAP2
%add_const(1)
%increment
SWAP2
// Increment src_addr.
SWAP5
%add_const(1)
%increment
SWAP5
// Decrement count.
SWAP6
%sub_const(1)
%decrement
SWAP6
// Continue the loop.

View File

@ -71,9 +71,9 @@ mstore_unpacking_loop:
// stack: i, context, segment, offset, value, len, retdest
// Increment offset.
SWAP3 %add_const(1) SWAP3
SWAP3 %increment SWAP3
// Increment i.
%add_const(1)
%increment
%jump(mstore_unpacking_loop)

View File

@ -82,7 +82,7 @@ global encode_node:
DUP1 %mload_trie_data
// stack: node_type, node_ptr, encode_value, retdest
// Increment node_ptr, so it points to the node payload instead of its type.
SWAP1 %add_const(1) SWAP1
SWAP1 %increment SWAP1
// stack: node_type, node_payload_ptr, encode_value, retdest
DUP1 %eq_const(@MPT_NODE_EMPTY) %jumpi(encode_node_empty)
@ -214,7 +214,7 @@ encode_node_extension_after_encode_child:
PUSH encode_node_extension_after_hex_prefix // retdest
PUSH 0 // terminated
// stack: terminated, encode_node_extension_after_hex_prefix, result, result_len, node_payload_ptr, retdest
DUP5 %add_const(1) %mload_trie_data // Load the packed_nibbles field, which is at index 1.
DUP5 %increment %mload_trie_data // Load the packed_nibbles field, which is at index 1.
// stack: packed_nibbles, terminated, encode_node_extension_after_hex_prefix, result, result_len, node_payload_ptr, retdest
DUP6 %mload_trie_data // Load the num_nibbles field, which is at index 0.
// stack: num_nibbles, packed_nibbles, terminated, encode_node_extension_after_hex_prefix, result, result_len, node_payload_ptr, retdest
@ -247,7 +247,7 @@ encode_node_leaf:
PUSH encode_node_leaf_after_hex_prefix // retdest
PUSH 1 // terminated
// stack: terminated, encode_node_leaf_after_hex_prefix, node_payload_ptr, encode_value, retdest
DUP3 %add_const(1) %mload_trie_data // Load the packed_nibbles field, which is at index 1.
DUP3 %increment %mload_trie_data // Load the packed_nibbles field, which is at index 1.
// stack: packed_nibbles, terminated, encode_node_leaf_after_hex_prefix, node_payload_ptr, encode_value, retdest
DUP4 %mload_trie_data // Load the num_nibbles field, which is at index 0.
// stack: num_nibbles, packed_nibbles, terminated, encode_node_leaf_after_hex_prefix, node_payload_ptr, encode_value, retdest

View File

@ -48,7 +48,7 @@ encode_account:
DUP2 %mload_trie_data // nonce = value[0]
%rlp_scalar_len
// stack: nonce_rlp_len, rlp_pos, value_ptr, retdest
DUP3 %add_const(1) %mload_trie_data // balance = value[1]
DUP3 %increment %mload_trie_data // balance = value[1]
%rlp_scalar_len
// stack: balance_rlp_len, nonce_rlp_len, rlp_pos, value_ptr, retdest
PUSH 66 // storage_root and code_hash fields each take 1 + 32 bytes
@ -68,7 +68,7 @@ encode_account:
// stack: nonce, rlp_pos_3, value_ptr, retdest
SWAP1 %encode_rlp_scalar
// stack: rlp_pos_4, value_ptr, retdest
DUP2 %add_const(1) %mload_trie_data // balance = value[1]
DUP2 %increment %mload_trie_data // balance = value[1]
// stack: balance, rlp_pos_4, value_ptr, retdest
SWAP1 %encode_rlp_scalar
// stack: rlp_pos_5, value_ptr, retdest

View File

@ -15,7 +15,7 @@ global hex_prefix_rlp:
// Compute the length of the hex-prefix string, in bytes:
// hp_len = num_nibbles / 2 + 1 = i + 1
DUP1 %add_const(1)
DUP1 %increment
// stack: hp_len, i, rlp_pos, num_nibbles, packed_nibbles, terminated, retdest
// Write the RLP header.
@ -35,7 +35,7 @@ rlp_header_medium:
%mstore_rlp
// rlp_pos += 1
SWAP2 %add_const(1) SWAP2
SWAP2 %increment SWAP2
%jump(start_loop)
@ -49,7 +49,7 @@ rlp_header_large:
%mstore_rlp
DUP1 // value = hp_len
DUP4 %add_const(1) // offset = rlp_pos + 1
DUP4 %increment // offset = rlp_pos + 1
%mstore_rlp
// rlp_pos += 2
@ -74,7 +74,7 @@ loop:
%mstore_rlp
// stack: i, hp_len, rlp_pos, num_nibbles, packed_nibbles, terminated, retdest
%sub_const(1)
%decrement
SWAP4 %shr_const(8) SWAP4 // packed_nibbles >>= 8
%jump(loop)

View File

@ -111,7 +111,7 @@ load_mpt_extension:
// one element, appending our child pointer. Thus our child node will start
// at i + 1. So we will set our child pointer to i + 1.
%get_trie_data_size
%add_const(1)
%increment
%append_to_trie_data
// stack: retdest
@ -172,7 +172,7 @@ load_mpt_digest:
// stack: leaf_part, leaf_len
%append_to_trie_data
// stack: leaf_len
%sub_const(1)
%decrement
// stack: leaf_len'
%jump(%%loop)
%%finish:

View File

@ -31,7 +31,7 @@ global mpt_read:
%mload_trie_data
// stack: node_type, node_ptr, num_nibbles, key, retdest
// Increment node_ptr, so it points to the node payload instead of its type.
SWAP1 %add_const(1) SWAP1
SWAP1 %increment SWAP1
// stack: node_type, node_payload_ptr, num_nibbles, key, retdest
DUP1 %eq_const(@MPT_NODE_EMPTY) %jumpi(mpt_read_empty)
@ -103,7 +103,7 @@ mpt_read_extension:
%mul_const(4) SHR // key_part = key >> (future_nibbles * 4)
DUP1
// stack: key_part, key_part, future_nibbles, key, node_payload_ptr, retdest
DUP5 %add_const(1) %mload_trie_data
DUP5 %increment %mload_trie_data
// stack: node_key, key_part, key_part, future_nibbles, key, node_payload_ptr, retdest
EQ // does the first part of our key match the node's key?
%jumpi(mpt_read_extension_found)
@ -131,7 +131,7 @@ mpt_read_leaf:
// stack: node_payload_ptr, num_nibbles, key, retdest
DUP1 %mload_trie_data
// stack: node_num_nibbles, node_payload_ptr, num_nibbles, key, retdest
DUP2 %add_const(1) %mload_trie_data
DUP2 %increment %mload_trie_data
// stack: node_key, node_num_nibbles, node_payload_ptr, num_nibbles, key, retdest
SWAP3
// stack: num_nibbles, node_num_nibbles, node_payload_ptr, node_key, key, retdest

View File

@ -28,7 +28,7 @@
%get_trie_data_size
// stack: trie_data_size, value
DUP1
%add_const(1)
%increment
// stack: trie_data_size', trie_data_size, value
%set_trie_data_size
// stack: trie_data_size, value
@ -45,7 +45,7 @@
// return (first_nibble, num_nibbles, key)
%macro split_first_nibble
// stack: num_nibbles, key
%sub_const(1) // num_nibbles -= 1
%decrement // num_nibbles -= 1
// stack: num_nibbles, key
DUP2
// stack: key, num_nibbles, key

View File

@ -44,7 +44,7 @@ store_input_stack:
// stack: offset, byte, rem, length, REM_INP
%mstore_kernel_general
// stack: rem, length, REM_INP
%sub_const(1)
%decrement
DUP1
// stack: rem - 1, rem - 1, length, REM_INP
%jumpi(store_input_stack)
@ -66,10 +66,10 @@ store_input:
// stack: offset, byte, rem , ADDR , length
%mstore_kernel_general
// stack: rem , ADDR , length
%sub_const(1)
%decrement
// stack: rem-1, ADDR , length
SWAP3
%add_const(1)
%increment
SWAP3
// stack: rem-1, ADDR+1, length
DUP1
@ -90,12 +90,12 @@ global buffer_update:
// stack: get, set, get , set , times , retdest
%mupdate_kernel_general
// stack: get , set , times , retdest
%add_const(1)
%increment
SWAP1
%add_const(1)
%increment
SWAP1
SWAP2
%sub_const(1)
%decrement
SWAP2
// stack: get+1, set+1, times-1, retdest
DUP3
@ -112,7 +112,7 @@ global buffer_update:
// stack: offset = N-i, 0, i
%mstore_kernel_general
// stack: i
%sub_const(1)
%decrement
DUP1
// stack: i-1, i-1
%jumpi($label)

View File

@ -36,7 +36,7 @@ decode_rlp_string_len_medium:
%sub_const(0x80)
// stack: len, pos, retdest
SWAP1
%add_const(1)
%increment
// stack: pos', len, retdest
%stack (pos, len, retdest) -> (retdest, pos, len)
JUMP
@ -47,7 +47,7 @@ decode_rlp_string_len_large:
%sub_const(0xb7)
// stack: len_of_len, pos, retdest
SWAP1
%add_const(1)
%increment
// stack: pos', len_of_len, retdest
%jump(decode_int_given_len)
@ -92,7 +92,7 @@ global decode_rlp_list_len:
%mload_current(@SEGMENT_RLP_RAW)
// stack: first_byte, pos, retdest
SWAP1
%add_const(1) // increment pos
%increment // increment pos
SWAP1
// stack: first_byte, pos', retdest
// If first_byte is >= 0xf8, it's a > 55 byte list, and
@ -157,7 +157,7 @@ decode_int_given_len_loop:
// stack: acc', pos, end_pos, retdest
// Increment pos.
SWAP1
%add_const(1)
%increment
SWAP1
// stack: acc', pos', end_pos, retdest
%jump(decode_int_given_len_loop)

View File

@ -14,7 +14,7 @@ global encode_rlp_scalar:
// stack: pos, scalar, pos, retdest
%mstore_rlp
// stack: pos, retdest
%add_const(1)
%increment
// stack: pos', retdest
SWAP1
JUMP
@ -76,7 +76,7 @@ encode_rlp_fixed:
%mstore_rlp
// stack: len, pos, string, retdest
SWAP1
%add_const(1) // increment pos
%increment // increment pos
// stack: pos, len, string, retdest
%stack (pos, len, string) -> (pos, string, len, encode_rlp_fixed_finish)
// stack: context, segment, pos, string, len, encode_rlp_fixed_finish, retdest
@ -159,7 +159,7 @@ global encode_rlp_list_prefix:
// stack: pos, prefix, pos, retdest
%mstore_rlp
// stack: pos, retdest
%add_const(1)
%increment
SWAP1
JUMP
encode_rlp_list_prefix_large:
@ -172,7 +172,7 @@ encode_rlp_list_prefix_large:
DUP3 // pos
%mstore_rlp
// stack: len_of_len, pos, payload_len, retdest
SWAP1 %add_const(1)
SWAP1 %increment
// stack: pos', len_of_len, payload_len, retdest
%stack (pos, len_of_len, payload_len)
-> (pos, payload_len, len_of_len,
@ -231,7 +231,7 @@ prepend_rlp_list_prefix_big:
SUB
// stack: start_pos, len_of_len, payload_len, end_pos, retdest
DUP2 %add_const(0xf7) DUP2 %mstore_rlp // rlp[start_pos] = 0xf7 + len_of_len
DUP1 %add_const(1) // start_len_pos = start_pos + 1
DUP1 %increment // start_len_pos = start_pos + 1
%stack (start_len_pos, start_pos, len_of_len, payload_len, end_pos, retdest)
-> (start_len_pos, payload_len, len_of_len,
prepend_rlp_list_prefix_big_done_writing_len,
@ -269,7 +269,7 @@ prepend_rlp_list_prefix_big_done_writing_len:
// stack: scalar
%num_bytes
// stack: scalar_bytes
%add_const(1) // Account for the length prefix.
%increment // Account for the length prefix.
// stack: rlp_len
%%finish:
%endmacro

View File

@ -25,7 +25,7 @@ read_rlp_to_memory_loop:
// stack: pos, byte, pos, len, retdest
%mstore_current(@SEGMENT_RLP_RAW)
// stack: pos, len, retdest
%add_const(1)
%increment
// stack: pos', len, retdest
%jump(read_rlp_to_memory_loop)