opcodesswitch.h
Include dependency graph for opcodesswitch.h:
This graph shows which files directly or indirectly include opcodesswitch.h:
Defines
-
ENABLE_OTP21
-
ENABLE_OTP22
-
ENABLE_OTP23
-
ENABLE_OTP24
-
ENABLE_OTP25
-
ENABLE_OTP26
-
COMPACT_LITERAL
-
COMPACT_INTEGER
-
COMPACT_ATOM
-
COMPACT_XREG
-
COMPACT_YREG
-
COMPACT_LABEL
-
COMPACT_EXTENDED
-
COMPACT_LARGE_LITERAL
-
COMPACT_LARGE_INTEGER
-
COMPACT_LARGE_ATOM
-
COMPACT_LARGE_YREG
-
COMPACT_EXTENDED_LIST
-
COMPACT_EXTENDED_FP_REGISTER
-
COMPACT_EXTENDED_ALLOCATION_LIST
-
COMPACT_EXTENDED_LITERAL
-
COMPACT_EXTENDED_TYPED_REGISTER
-
COMPACT_EXTENDED_ALLOCATOR_LIST_TAG_WORDS
-
COMPACT_EXTENDED_ALLOCATOR_LIST_TAG_FLOATS
-
COMPACT_EXTENDED_ALLOCATOR_LIST_TAG_FUNS
-
COMPACT_LARGE_IMM_MASK
-
COMPACT_11BITS_VALUE
-
COMPACT_NBITS_VALUE
-
SET_ERROR(error_type_atom)
-
RAISE_ERROR(error_type_atom)
-
VM_ABORT()
-
T_DEST_REG(dreg)
-
T_DEST_REG_GC_SAFE(dreg_gc_safe)
-
DECODE_COMPACT_TERM(dest_term, code_chunk, base_index, off)
-
READ_DEST_REGISTER(dreg)
-
READ_DEST_REGISTER_GC_SAFE(dreg_gc_safe)
-
WRITE_REGISTER(dreg, value)
-
WRITE_REGISTER_GC_SAFE(dreg_gc_safe, value)
-
DECODE_EXTENDED_LIST_TAG(code_chunk, base_index, off)
-
DECODE_DEST_REGISTER(dreg, code_chunk, base_index, off)
-
DECODE_DEST_REGISTER_GC_SAFE(dreg_gc_safe, code_chunk, base_index, off)
-
DECODE_FP_REGISTER(freg, code_chunk, base_index, off)
-
DECODE_VALUE(val, code_chunk, base_index, off)
-
DECODE_ATOM(atom, code_chunk, base_index, off)
-
DECODE_LABEL(label, code_chunk, base_index, off)
-
DECODE_LITERAL(val, code_chunk, base_index, off)
-
DECODE_INTEGER(integer, code_chunk, base_index, off)
-
DECODE_XREG(reg, code_chunk, base_index, off)
-
DECODE_YREG(reg, code_chunk, base_index, off)
-
DECODE_ALLOCATOR_LIST(need, code_chunk, base_index, off)
-
IS_EXTENDED_ALLOCATOR(code_chunk, base_index, off)
-
IS_EXTENDED_FP_REGISTER(code_chunk, base_index, off)
-
NEXT_INSTRUCTION(operands_size)
-
JUMP_TO_LABEL(module, label)
-
JUMP_TO_ADDRESS(address)
-
SCHEDULE_NEXT(restore_mod, restore_to)
-
PROCESS_SIGNAL_MESSAGES()
-
PROCESS_MAYBE_TRAP_RETURN_VALUE(return_value)
-
PROCESS_MAYBE_TRAP_RETURN_VALUE_RESTORE_I(return_value, rest_i)
-
PROCESS_MAYBE_TRAP_RETURN_VALUE_LAST(return_value)
-
INSTRUCTION_POINTER()
-
DO_RETURN()
-
POINTER_TO_II(instruction_pointer)
-
HANDLE_ERROR()
-
VERIFY_IS_INTEGER(t, opcode_name)
-
VERIFY_IS_ANY_INTEGER(t, opcode_name)
-
VERIFY_IS_BINARY(t, opcode_name)
-
VERIFY_IS_MATCH_STATE(t, opcode_name)
-
VERIFY_IS_MATCH_OR_BINARY(t, opcode_name)
-
CALL_FUN(fun, args_count, next_off)
-
DECODE_FLAGS_LIST(flags_value, flags, opcode)
-
MIN(X, Y)
-
SWAP_KV_PAIR(I, J)
-
TRACE_APPLY(...)
-
TRACE_CALL(...)
-
TRACE_CALL_EXT(...)
-
TRACE_RETURN(...)
-
TRACE_SEND(...)
-
TRACE_RECEIVE(...)
Functions
-
static bool sort_kv_pairs(struct kv_pair *kv, int size, GlobalContext *global)
- static COLD_FUNC void cp_to_mod_lbl_off (term cp, Context *ctx, Module **cp_mod, int *label, int *l_off)
- static COLD_FUNC void dump (Context *ctx)
-
static term maybe_alloc_boxed_integer_fragment(Context *ctx, avm_int64_t value)
-
static inline term maybe_alloc_boxed_integer_fragment_helper(Context *ctx, avm_int64_t value, unsigned int bytes_count)
-
static bool maybe_call_native(Context *ctx, AtomString module_name, AtomString function_name, int arity, term *return_value)
- memcpy (tmp_atom_name+1, function_name, function_len)
-
free(tmp_atom_name)
- if (UNLIKELY(!label))
-
scheduler_init_ready(ctx)
- return scheduler_entry_point (ctx->global)
- HOT_FUNC int scheduler_entry_point (GlobalContext *glb)
Variables
-
int function_len = strlen(function_name)
-
uint8_t *tmp_atom_name = malloc(function_len + 1)
-
int label = module_search_exported_function(mod, tmp_atom_name, arity, ctx->global)
-
ctx saved_module = mod
-
ctx cp = module_address(mod->module_index, mod->end_instruction_ii)
- ctx global running_schedulers = 1
-
struct dreg_gc_safe_t
-
struct Int24
Public Members
-
int32_t val24
-
int32_t val24
-
struct Int40
Public Members
-
int64_t val40
-
int64_t val40
-
struct Int48
Public Members
-
int64_t val48
-
int64_t val48
-
struct Int56
Public Members
-
int64_t val56
-
int64_t val56
-
struct kv_pair