From e6b5e3656f6f851587e0906521996f94616d94d4 Mon Sep 17 00:00:00 2001 From: Daniel Lubarov Date: Fri, 7 Oct 2022 12:03:37 -0700 Subject: [PATCH] Some more uses of %increment, %decrement --- evm/src/cpu/kernel/asm/core/intrinsic_gas.asm | 2 +- evm/src/cpu/kernel/asm/core/util.asm | 2 +- evm/src/cpu/kernel/asm/memory/core.asm | 6 +++--- evm/src/cpu/kernel/asm/memory/memcpy.asm | 6 +++--- evm/src/cpu/kernel/asm/memory/packing.asm | 4 ++-- evm/src/cpu/kernel/asm/mpt/hash.asm | 6 +++--- evm/src/cpu/kernel/asm/mpt/hash_trie_specific.asm | 4 ++-- evm/src/cpu/kernel/asm/mpt/hex_prefix.asm | 8 ++++---- evm/src/cpu/kernel/asm/mpt/load.asm | 4 ++-- evm/src/cpu/kernel/asm/mpt/read.asm | 6 +++--- evm/src/cpu/kernel/asm/mpt/util.asm | 4 ++-- evm/src/cpu/kernel/asm/ripemd/memory.asm | 14 +++++++------- evm/src/cpu/kernel/asm/rlp/decode.asm | 8 ++++---- evm/src/cpu/kernel/asm/rlp/encode.asm | 12 ++++++------ evm/src/cpu/kernel/asm/rlp/read_to_memory.asm | 2 +- 15 files changed, 44 insertions(+), 44 deletions(-) diff --git a/evm/src/cpu/kernel/asm/core/intrinsic_gas.asm b/evm/src/cpu/kernel/asm/core/intrinsic_gas.asm index 931a6a7b..5891807c 100644 --- a/evm/src/cpu/kernel/asm/core/intrinsic_gas.asm +++ b/evm/src/cpu/kernel/asm/core/intrinsic_gas.asm @@ -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) diff --git a/evm/src/cpu/kernel/asm/core/util.asm b/evm/src/cpu/kernel/asm/core/util.asm index 4ceaec3b..dfacf1a2 100644 --- a/evm/src/cpu/kernel/asm/core/util.asm +++ b/evm/src/cpu/kernel/asm/core/util.asm @@ -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) diff --git a/evm/src/cpu/kernel/asm/memory/core.asm b/evm/src/cpu/kernel/asm/memory/core.asm index c2c19811..f4bcf1f1 100644 --- a/evm/src/cpu/kernel/asm/memory/core.asm +++ b/evm/src/cpu/kernel/asm/memory/core.asm @@ -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 diff --git a/evm/src/cpu/kernel/asm/memory/memcpy.asm b/evm/src/cpu/kernel/asm/memory/memcpy.asm index 3feca35d..dd0569e7 100644 --- a/evm/src/cpu/kernel/asm/memory/memcpy.asm +++ b/evm/src/cpu/kernel/asm/memory/memcpy.asm @@ -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. diff --git a/evm/src/cpu/kernel/asm/memory/packing.asm b/evm/src/cpu/kernel/asm/memory/packing.asm index c8b4c468..f12c7b17 100644 --- a/evm/src/cpu/kernel/asm/memory/packing.asm +++ b/evm/src/cpu/kernel/asm/memory/packing.asm @@ -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) diff --git a/evm/src/cpu/kernel/asm/mpt/hash.asm b/evm/src/cpu/kernel/asm/mpt/hash.asm index abd436fe..ef0158e0 100644 --- a/evm/src/cpu/kernel/asm/mpt/hash.asm +++ b/evm/src/cpu/kernel/asm/mpt/hash.asm @@ -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 diff --git a/evm/src/cpu/kernel/asm/mpt/hash_trie_specific.asm b/evm/src/cpu/kernel/asm/mpt/hash_trie_specific.asm index 80763deb..221c0f20 100644 --- a/evm/src/cpu/kernel/asm/mpt/hash_trie_specific.asm +++ b/evm/src/cpu/kernel/asm/mpt/hash_trie_specific.asm @@ -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 diff --git a/evm/src/cpu/kernel/asm/mpt/hex_prefix.asm b/evm/src/cpu/kernel/asm/mpt/hex_prefix.asm index 72ac18cc..b7a3073b 100644 --- a/evm/src/cpu/kernel/asm/mpt/hex_prefix.asm +++ b/evm/src/cpu/kernel/asm/mpt/hex_prefix.asm @@ -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) diff --git a/evm/src/cpu/kernel/asm/mpt/load.asm b/evm/src/cpu/kernel/asm/mpt/load.asm index f072f202..f37e94ba 100644 --- a/evm/src/cpu/kernel/asm/mpt/load.asm +++ b/evm/src/cpu/kernel/asm/mpt/load.asm @@ -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: diff --git a/evm/src/cpu/kernel/asm/mpt/read.asm b/evm/src/cpu/kernel/asm/mpt/read.asm index f952f49a..32ab8f7f 100644 --- a/evm/src/cpu/kernel/asm/mpt/read.asm +++ b/evm/src/cpu/kernel/asm/mpt/read.asm @@ -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 diff --git a/evm/src/cpu/kernel/asm/mpt/util.asm b/evm/src/cpu/kernel/asm/mpt/util.asm index 0e0006d3..19cad943 100644 --- a/evm/src/cpu/kernel/asm/mpt/util.asm +++ b/evm/src/cpu/kernel/asm/mpt/util.asm @@ -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 diff --git a/evm/src/cpu/kernel/asm/ripemd/memory.asm b/evm/src/cpu/kernel/asm/ripemd/memory.asm index 5d0266bd..e3b7cbe6 100644 --- a/evm/src/cpu/kernel/asm/ripemd/memory.asm +++ b/evm/src/cpu/kernel/asm/ripemd/memory.asm @@ -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) diff --git a/evm/src/cpu/kernel/asm/rlp/decode.asm b/evm/src/cpu/kernel/asm/rlp/decode.asm index 5749aee7..182354c4 100644 --- a/evm/src/cpu/kernel/asm/rlp/decode.asm +++ b/evm/src/cpu/kernel/asm/rlp/decode.asm @@ -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) diff --git a/evm/src/cpu/kernel/asm/rlp/encode.asm b/evm/src/cpu/kernel/asm/rlp/encode.asm index 851ad3cf..dada98b0 100644 --- a/evm/src/cpu/kernel/asm/rlp/encode.asm +++ b/evm/src/cpu/kernel/asm/rlp/encode.asm @@ -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 diff --git a/evm/src/cpu/kernel/asm/rlp/read_to_memory.asm b/evm/src/cpu/kernel/asm/rlp/read_to_memory.asm index 189edd1d..5d8cbd17 100644 --- a/evm/src/cpu/kernel/asm/rlp/read_to_memory.asm +++ b/evm/src/cpu/kernel/asm/rlp/read_to_memory.asm @@ -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)