21 lines
633 B
NASM
Raw Normal View History

// struct Log { logs_data_len, logs_payload_len }
%macro journal_add_log
%journal_add_2(@JOURNAL_ENTRY_LOG)
%endmacro
global revert_log:
// stack: entry_type, ptr, retdest
POP
// First, reduce the number of logs.
%mload_global_metadata(@GLOBAL_METADATA_LOGS_LEN)
%decrement
%mstore_global_metadata(@GLOBAL_METADATA_LOGS_LEN)
// stack: ptr, retdest
// Second, restore payload length.
%journal_load_2
// stack: prev_logs_data_len, prev_payload_len, retdest
%mstore_global_metadata(@GLOBAL_METADATA_LOGS_DATA_LEN)
%mstore_global_metadata(@GLOBAL_METADATA_LOGS_PAYLOAD_LEN)
JUMP