2022-08-03 22:09:36 -07:00
|
|
|
// Load the given global metadata field from memory.
|
|
|
|
|
%macro mload_global_metadata(field)
|
|
|
|
|
// stack: (empty)
|
|
|
|
|
PUSH $field
|
|
|
|
|
// stack: offset
|
|
|
|
|
%mload_kernel(@SEGMENT_GLOBAL_METADATA)
|
|
|
|
|
// stack: value
|
|
|
|
|
%endmacro
|
|
|
|
|
|
|
|
|
|
// Store the given global metadata field to memory.
|
|
|
|
|
%macro mstore_global_metadata(field)
|
|
|
|
|
// stack: value
|
|
|
|
|
PUSH $field
|
|
|
|
|
// stack: offset, value
|
2022-09-22 20:09:48 -07:00
|
|
|
%mstore_kernel(@SEGMENT_GLOBAL_METADATA)
|
2022-08-03 22:09:36 -07:00
|
|
|
// stack: (empty)
|
|
|
|
|
%endmacro
|
|
|
|
|
|
|
|
|
|
// Load the given context metadata field from memory.
|
|
|
|
|
%macro mload_context_metadata(field)
|
|
|
|
|
// stack: (empty)
|
|
|
|
|
PUSH $field
|
|
|
|
|
// stack: offset
|
|
|
|
|
%mload_current(@SEGMENT_CONTEXT_METADATA)
|
|
|
|
|
// stack: value
|
|
|
|
|
%endmacro
|
|
|
|
|
|
|
|
|
|
// Store the given context metadata field to memory.
|
|
|
|
|
%macro mstore_context_metadata(field)
|
|
|
|
|
// stack: value
|
|
|
|
|
PUSH $field
|
|
|
|
|
// stack: offset, value
|
2022-09-22 20:09:48 -07:00
|
|
|
%mstore_current(@SEGMENT_CONTEXT_METADATA)
|
2022-08-03 22:09:36 -07:00
|
|
|
// stack: (empty)
|
|
|
|
|
%endmacro
|
2022-07-28 15:46:36 -07:00
|
|
|
|
|
|
|
|
%macro address
|
2022-09-22 20:09:48 -07:00
|
|
|
%mload_context_metadata(@CTX_METADATA_ADDRESS)
|
2022-07-28 15:46:36 -07:00
|
|
|
%endmacro
|
|
|
|
|
|
|
|
|
|
%macro sender
|
2022-09-22 20:09:48 -07:00
|
|
|
%mload_context_metadata(@CTX_METADATA_CALLER)
|
2022-07-28 15:46:36 -07:00
|
|
|
%endmacro
|
|
|
|
|
|
|
|
|
|
%macro callvalue
|
2022-09-22 20:09:48 -07:00
|
|
|
%mload_context_metadata(@CTX_METADATA_CALL_VALUE)
|
2022-07-28 15:46:36 -07:00
|
|
|
%endmacro
|