2022-09-18 09:45:31 -07:00
|
|
|
%macro mload_trie_data
|
|
|
|
|
// stack: virtual
|
|
|
|
|
%mload_kernel(@SEGMENT_TRIE_DATA)
|
|
|
|
|
// stack: value
|
|
|
|
|
%endmacro
|
|
|
|
|
|
|
|
|
|
%macro mstore_trie_data
|
|
|
|
|
// stack: virtual, value
|
|
|
|
|
%mstore_kernel(@SEGMENT_TRIE_DATA)
|
|
|
|
|
// stack: (empty)
|
|
|
|
|
%endmacro
|
2022-09-22 20:09:48 -07:00
|
|
|
|
|
|
|
|
%macro get_trie_data_size
|
|
|
|
|
// stack: (empty)
|
|
|
|
|
%mload_global_metadata(@GLOBAL_METADATA_TRIE_DATA_SIZE)
|
|
|
|
|
// stack: trie_data_size
|
|
|
|
|
%endmacro
|
|
|
|
|
|
|
|
|
|
%macro set_trie_data_size
|
|
|
|
|
// stack: trie_data_size
|
|
|
|
|
%mstore_global_metadata(@GLOBAL_METADATA_TRIE_DATA_SIZE)
|
|
|
|
|
// stack: (empty)
|
|
|
|
|
%endmacro
|
|
|
|
|
|
|
|
|
|
// Equivalent to: trie_data[trie_data_size++] = value
|
|
|
|
|
%macro append_to_trie_data
|
|
|
|
|
// stack: value
|
|
|
|
|
%get_trie_data_size
|
|
|
|
|
// stack: trie_data_size, value
|
|
|
|
|
DUP1
|
|
|
|
|
%add_const(1)
|
|
|
|
|
// stack: trie_data_size', trie_data_size, value
|
|
|
|
|
%set_trie_data_size
|
|
|
|
|
// stack: trie_data_size, value
|
|
|
|
|
%mstore_trie_data
|
|
|
|
|
// stack: (empty)
|
|
|
|
|
%endmacro
|