Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
execution_context.hpp File Reference
#include <sysio/vm/allocator.hpp>
#include <sysio/vm/constants.hpp>
#include <sysio/vm/exceptions.hpp>
#include <sysio/vm/execution_interface.hpp>
#include <sysio/vm/host_function.hpp>
#include <sysio/vm/opcodes.hpp>
#include <sysio/vm/signals.hpp>
#include <sysio/vm/types.hpp>
#include <sysio/vm/utils.hpp>
#include <sysio/vm/wasm_stack.hpp>
#include <algorithm>
#include <cassert>
#include <signal.h>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <iostream>
#include <limits>
#include <optional>
#include <string_view>
#include <system_error>
#include <utility>
#include <ucontext.h>
Include dependency graph for execution_context.hpp:

Go to the source code of this file.

Classes

struct  sysio::vm::null_host_functions
 
struct  sysio::vm::detail::host_type< HostFunctions >
 
struct  sysio::vm::detail::host_type< std::nullptr_t >
 
struct  sysio::vm::detail::type_converter< HostFunctions >
 
struct  sysio::vm::detail::type_converter< std::nullptr_t >
 
struct  sysio::vm::detail::host_invoker< HostFunctions >
 
struct  sysio::vm::detail::host_invoker< std::nullptr_t >
 
class  sysio::vm::execution_context_base< Derived, Host >
 
struct  sysio::vm::jit_visitor
 
class  sysio::vm::null_execution_context< Host >
 
struct  sysio::vm::frame_info_holder< EnableBacktrace >
 
struct  sysio::vm::frame_info_holder< true >
 
class  sysio::vm::jit_execution_context< Host, EnableBacktrace >
 
class  sysio::vm::execution_context< Host >
 

Namespaces

namespace  sysio
 
namespace  sysio::vm
 
namespace  sysio::vm::detail
 

Macros

#define CREATE_TABLE_ENTRY(NAME, CODE)
 
#define CREATE_LABEL(NAME, CODE)
 
#define CREATE_EXIT_LABEL(NAME, CODE)
 
#define CREATE_EMPTY_LABEL(NAME, CODE)
 

Typedefs

template<typename HF >
using sysio::vm::detail::host_type_t = typename host_type<HF>::type
 
template<typename HF >
using sysio::vm::detail::type_converter_t = typename type_converter<HF>::type
 
template<typename HF >
using sysio::vm::detail::host_invoker_t = typename host_invoker<HF>::type
 

Macro Definition Documentation

◆ CREATE_EMPTY_LABEL

#define CREATE_EMPTY_LABEL ( NAME,
CODE )
Value:
ev_label_##NAME : \
throw wasm_interpreter_exception{"empty operand"};
#define NAME(s)

Definition at line 781 of file execution_context.hpp.

781#define CREATE_EMPTY_LABEL(NAME, CODE) ev_label_##NAME : \
782 throw wasm_interpreter_exception{"empty operand"};

◆ CREATE_EXIT_LABEL

#define CREATE_EXIT_LABEL ( NAME,
CODE )
Value:
ev_label_##NAME : \
return;

Definition at line 779 of file execution_context.hpp.

779#define CREATE_EXIT_LABEL(NAME, CODE) ev_label_##NAME : \
780 return;

◆ CREATE_LABEL

#define CREATE_LABEL ( NAME,
CODE )
Value:
ev_label_##NAME : visitor(ev_variant->template get<sysio::vm::SYS_VM_OPCODE_T(NAME)>()); \
ev_variant = _state.pc; \
goto* dispatch_table[ev_variant->index()];

Definition at line 775 of file execution_context.hpp.

775#define CREATE_LABEL(NAME, CODE) \
776 ev_label_##NAME : visitor(ev_variant->template get<sysio::vm::SYS_VM_OPCODE_T(NAME)>()); \
777 ev_variant = _state.pc; \
778 goto* dispatch_table[ev_variant->index()];

◆ CREATE_TABLE_ENTRY

#define CREATE_TABLE_ENTRY ( NAME,
CODE )
Value:
&&ev_label_##NAME,

Definition at line 774 of file execution_context.hpp.