jit.h

Include dependency graph for jit.h:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "5" [label="stdbool.h" tooltip="stdbool.h"] "19" [label="refc_binary.h" tooltip="refc_binary.h"] "10" [label="atom.h" tooltip="atom.h"] "14" [label="assert.h" tooltip="assert.h"] "17" [label="utils.h" tooltip="utils.h"] "23" [label="synclist.h" tooltip="synclist.h"] "20" [label="list.h" tooltip="list.h"] "6" [label="stdint.h" tooltip="stdint.h"] "1" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h" fillcolor="#BFBFBF"] "8" [label="stdlib.h" tooltip="stdlib.h"] "11" [label="memory.h" tooltip="memory.h"] "21" [label="resources.h" tooltip="resources.h"] "3" [label="term.h" tooltip="term.h"] "18" [label="stddef.h" tooltip="stddef.h"] "12" [label="erl_nif.h" tooltip="erl_nif.h"] "26" [label="exportedfunction.h" tooltip="exportedfunction.h"] "15" [label="limits.h" tooltip="limits.h"] "4" [label="sys/types.h" tooltip="sys/types.h"] "9" [label="string.h" tooltip="string.h"] "13" [label="term_typedef.h" tooltip="term_typedef.h"] "2" [label="bitstring.h" tooltip="bitstring.h"] "24" [label="smp.h" tooltip="smp.h"] "25" [label="unicode.h" tooltip="unicode.h"] "22" [label="mailbox.h" tooltip="mailbox.h"] "7" [label="stdio.h" tooltip="stdio.h"] "16" [label="inttypes.h" tooltip="inttypes.h"] "19" -> "5" [dir=forward tooltip="include"] "19" -> "8" [dir=forward tooltip="include"] "19" -> "20" [dir=forward tooltip="include"] "19" -> "21" [dir=forward tooltip="include"] "10" -> "6" [dir=forward tooltip="include"] "10" -> "8" [dir=forward tooltip="include"] "17" -> "18" [dir=forward tooltip="include"] "17" -> "7" [dir=forward tooltip="include"] "17" -> "8" [dir=forward tooltip="include"] "23" -> "7" [dir=forward tooltip="include"] "23" -> "20" [dir=forward tooltip="include"] "23" -> "24" [dir=forward tooltip="include"] "20" -> "5" [dir=forward tooltip="include"] "1" -> "2" [dir=forward tooltip="include"] "1" -> "26" [dir=forward tooltip="include"] "1" -> "3" [dir=forward tooltip="include"] "1" -> "13" [dir=forward tooltip="include"] "1" -> "5" [dir=forward tooltip="include"] "11" -> "6" [dir=forward tooltip="include"] "11" -> "8" [dir=forward tooltip="include"] "11" -> "12" [dir=forward tooltip="include"] "11" -> "13" [dir=forward tooltip="include"] "11" -> "17" [dir=forward tooltip="include"] "21" -> "8" [dir=forward tooltip="include"] "21" -> "12" [dir=forward tooltip="include"] "21" -> "20" [dir=forward tooltip="include"] "21" -> "22" [dir=forward tooltip="include"] "21" -> "11" [dir=forward tooltip="include"] "21" -> "23" [dir=forward tooltip="include"] "3" -> "4" [dir=forward tooltip="include"] "3" -> "5" [dir=forward tooltip="include"] "3" -> "6" [dir=forward tooltip="include"] "3" -> "7" [dir=forward tooltip="include"] "3" -> "8" [dir=forward tooltip="include"] "3" -> "9" [dir=forward tooltip="include"] "3" -> "10" [dir=forward tooltip="include"] "3" -> "11" [dir=forward tooltip="include"] "3" -> "19" [dir=forward tooltip="include"] "3" -> "17" [dir=forward tooltip="include"] "3" -> "13" [dir=forward tooltip="include"] "12" -> "13" [dir=forward tooltip="include"] "26" -> "3" [dir=forward tooltip="include"] "13" -> "14" [dir=forward tooltip="include"] "13" -> "15" [dir=forward tooltip="include"] "13" -> "16" [dir=forward tooltip="include"] "13" -> "6" [dir=forward tooltip="include"] "2" -> "3" [dir=forward tooltip="include"] "2" -> "25" [dir=forward tooltip="include"] "2" -> "5" [dir=forward tooltip="include"] "2" -> "6" [dir=forward tooltip="include"] "24" -> "5" [dir=forward tooltip="include"] "25" -> "5" [dir=forward tooltip="include"] "25" -> "18" [dir=forward tooltip="include"] "25" -> "6" [dir=forward tooltip="include"] "22" -> "5" [dir=forward tooltip="include"] "22" -> "20" [dir=forward tooltip="include"] "22" -> "13" [dir=forward tooltip="include"] "22" -> "17" [dir=forward tooltip="include"] }

This graph shows which files directly or indirectly include jit.h:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "26" [label="/__w/AtomVM/AtomVM/src/libAtomVM/interop.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/interop.c"] "18" [label="/__w/AtomVM/AtomVM/src/libAtomVM/refc_binary.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/refc_binary.c"] "22" [label="/__w/AtomVM/AtomVM/src/libAtomVM/interop.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/interop.h"] "13" [label="/__w/AtomVM/AtomVM/src/libAtomVM/erl_nif_priv.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/erl_nif_priv.h"] "7" [label="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.c"] "34" [label="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.h"] "5" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit.c"] "8" [label="/__w/AtomVM/AtomVM/src/libAtomVM/context.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/context.c"] "4" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bif.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bif.c"] "1" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h" fillcolor="#BFBFBF"] "2" [label="/__w/AtomVM/AtomVM/src/libAtomVM/context.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/context.h"] "3" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bif.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bif.h"] "27" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.c"] "40" [label="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.c"] "35" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.h"] "11" [label="/__w/AtomVM/AtomVM/src/libAtomVM/memory.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/memory.c"] "39" [label="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.h"] "33" [label="/__w/AtomVM/AtomVM/src/libAtomVM/sys.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/sys.h"] "6" [label="/__w/AtomVM/AtomVM/src/libAtomVM/module.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/module.c"] "29" [label="/__w/AtomVM/AtomVM/src/libAtomVM/module.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/module.h"] "25" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.c"] "36" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.h"] "12" [label="/__w/AtomVM/AtomVM/src/libAtomVM/dist_nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/dist_nifs.c"] "19" [label="/__w/AtomVM/AtomVM/src/libAtomVM/resources.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/resources.c"] "24" [label="/__w/AtomVM/AtomVM/src/libAtomVM/inet.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/inet.c"] "28" [label="/__w/AtomVM/AtomVM/src/libAtomVM/term.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/term.c"] "23" [label="/__w/AtomVM/AtomVM/src/libAtomVM/inet.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/inet.h"] "10" [label="/__w/AtomVM/AtomVM/src/libAtomVM/debug.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/debug.c"] "9" [label="/__w/AtomVM/AtomVM/src/libAtomVM/debug.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/debug.h"] "21" [label="/__w/AtomVM/AtomVM/src/libAtomVM/externalterm.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/externalterm.c"] "14" [label="/__w/AtomVM/AtomVM/src/libAtomVM/globalcontext.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/globalcontext.c"] "30" [label="/__w/AtomVM/AtomVM/src/libAtomVM/platform_nifs.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/platform_nifs.h"] "43" [label="/__w/AtomVM/AtomVM/src/libAtomVM/scheduler.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/scheduler.h"] "15" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.c"] "37" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.h"] "32" [label="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.c"] "31" [label="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.h"] "16" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.c"] "38" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.h"] "17" [label="/__w/AtomVM/AtomVM/src/libAtomVM/posix_nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/posix_nifs.c"] "44" [label="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.c"] "41" [label="/__w/AtomVM/AtomVM/src/libAtomVM/port.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/port.c"] "42" [label="/__w/AtomVM/AtomVM/src/libAtomVM/port.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/port.h"] "20" [label="/__w/AtomVM/AtomVM/src/libAtomVM/ets.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/ets.c"] "22" -> "4" [dir=back tooltip="include"] "22" -> "23" [dir=back tooltip="include"] "22" -> "26" [dir=back tooltip="include"] "22" -> "7" [dir=back tooltip="include"] "22" -> "27" [dir=back tooltip="include"] "22" -> "25" [dir=back tooltip="include"] "22" -> "15" [dir=back tooltip="include"] "22" -> "16" [dir=back tooltip="include"] "22" -> "17" [dir=back tooltip="include"] "22" -> "28" [dir=back tooltip="include"] "13" -> "8" [dir=back tooltip="include"] "13" -> "12" [dir=back tooltip="include"] "13" -> "14" [dir=back tooltip="include"] "13" -> "11" [dir=back tooltip="include"] "13" -> "7" [dir=back tooltip="include"] "13" -> "15" [dir=back tooltip="include"] "13" -> "16" [dir=back tooltip="include"] "13" -> "17" [dir=back tooltip="include"] "13" -> "18" [dir=back tooltip="include"] "13" -> "19" [dir=back tooltip="include"] "34" -> "12" [dir=back tooltip="include"] "34" -> "5" [dir=back tooltip="include"] "34" -> "6" [dir=back tooltip="include"] "34" -> "7" [dir=back tooltip="include"] "34" -> "27" [dir=back tooltip="include"] "34" -> "35" [dir=back tooltip="include"] "34" -> "25" [dir=back tooltip="include"] "34" -> "36" [dir=back tooltip="include"] "34" -> "15" [dir=back tooltip="include"] "34" -> "37" [dir=back tooltip="include"] "34" -> "16" [dir=back tooltip="include"] "34" -> "38" [dir=back tooltip="include"] "34" -> "39" [dir=back tooltip="include"] "34" -> "17" [dir=back tooltip="include"] "1" -> "2" [dir=back tooltip="include"] "1" -> "5" [dir=back tooltip="include"] "1" -> "6" [dir=back tooltip="include"] "1" -> "29" [dir=back tooltip="include"] "1" -> "7" [dir=back tooltip="include"] "2" -> "3" [dir=back tooltip="include"] "2" -> "8" [dir=back tooltip="include"] "2" -> "9" [dir=back tooltip="include"] "2" -> "12" [dir=back tooltip="include"] "2" -> "13" [dir=back tooltip="include"] "2" -> "20" [dir=back tooltip="include"] "2" -> "21" [dir=back tooltip="include"] "2" -> "14" [dir=back tooltip="include"] "2" -> "22" [dir=back tooltip="include"] "2" -> "5" [dir=back tooltip="include"] "2" -> "11" [dir=back tooltip="include"] "2" -> "6" [dir=back tooltip="include"] "2" -> "29" [dir=back tooltip="include"] "2" -> "7" [dir=back tooltip="include"] "2" -> "34" [dir=back tooltip="include"] "2" -> "27" [dir=back tooltip="include"] "2" -> "25" [dir=back tooltip="include"] "2" -> "15" [dir=back tooltip="include"] "2" -> "16" [dir=back tooltip="include"] "2" -> "41" [dir=back tooltip="include"] "2" -> "42" [dir=back tooltip="include"] "2" -> "39" [dir=back tooltip="include"] "2" -> "18" [dir=back tooltip="include"] "2" -> "19" [dir=back tooltip="include"] "2" -> "43" [dir=back tooltip="include"] "2" -> "31" [dir=back tooltip="include"] "2" -> "28" [dir=back tooltip="include"] "3" -> "4" [dir=back tooltip="include"] "3" -> "5" [dir=back tooltip="include"] "3" -> "6" [dir=back tooltip="include"] "3" -> "7" [dir=back tooltip="include"] "35" -> "27" [dir=back tooltip="include"] "39" -> "40" [dir=back tooltip="include"] "33" -> "8" [dir=back tooltip="include"] "33" -> "14" [dir=back tooltip="include"] "33" -> "6" [dir=back tooltip="include"] "33" -> "7" [dir=back tooltip="include"] "33" -> "15" [dir=back tooltip="include"] "33" -> "19" [dir=back tooltip="include"] "29" -> "3" [dir=back tooltip="include"] "29" -> "21" [dir=back tooltip="include"] "29" -> "5" [dir=back tooltip="include"] "29" -> "6" [dir=back tooltip="include"] "29" -> "7" [dir=back tooltip="include"] "29" -> "30" [dir=back tooltip="include"] "29" -> "31" [dir=back tooltip="include"] "29" -> "33" [dir=back tooltip="include"] "29" -> "28" [dir=back tooltip="include"] "36" -> "25" [dir=back tooltip="include"] "23" -> "24" [dir=back tooltip="include"] "23" -> "25" [dir=back tooltip="include"] "23" -> "15" [dir=back tooltip="include"] "23" -> "16" [dir=back tooltip="include"] "9" -> "10" [dir=back tooltip="include"] "9" -> "5" [dir=back tooltip="include"] "9" -> "11" [dir=back tooltip="include"] "30" -> "7" [dir=back tooltip="include"] "43" -> "14" [dir=back tooltip="include"] "43" -> "5" [dir=back tooltip="include"] "43" -> "44" [dir=back tooltip="include"] "43" -> "7" [dir=back tooltip="include"] "43" -> "15" [dir=back tooltip="include"] "37" -> "15" [dir=back tooltip="include"] "37" -> "16" [dir=back tooltip="include"] "31" -> "5" [dir=back tooltip="include"] "31" -> "32" [dir=back tooltip="include"] "38" -> "16" [dir=back tooltip="include"] "42" -> "24" [dir=back tooltip="include"] "42" -> "7" [dir=back tooltip="include"] "42" -> "25" [dir=back tooltip="include"] "42" -> "15" [dir=back tooltip="include"] "42" -> "16" [dir=back tooltip="include"] "42" -> "41" [dir=back tooltip="include"] }

Defines

TYPEDEF_MODULE
JIT_FORMAT_VERSION 1
JIT_ARCH_X86_64 1
JIT_ARCH_AARCH64 2
JIT_VARIANT_PIC 1

Typedefs

typedef struct Module Module
typedef Context *(*ModuleNativeEntryPoint)(Context *ctx, JITState *jit_state, const ModuleNativeInterface *p)

Enums

enum TrapAndLoadResult

Values:

enumerator TRAP_AND_LOAD_OK
enumerator TRAP_AND_LOAD_CODE_SERVER_NOT_FOUND

Functions

ModuleNativeEntryPoint jit_stream_entry_point(Context *ctx, term jit_stream)

Return the entry point from a given jit stream.

Platform implementing JIT must provide this function which is called by code_server:set_native_code/2

Parameters:
  • ctx – the current context (code_server)

  • jit_stream – the jit stream term

Returns:

the pointer to the first function

enum TrapAndLoadResult jit_trap_and_load(Context *ctx, Module *mod, uint32_t label)

Trap a process and load module, process shall be resumed at given label.

Parameters:
  • ctx – the process to trap

  • mod – the module to load

  • label – the label to resume the process to

Variables

const ModuleNativeInterface module_native_interface
struct JITState
#include <jit.h>

Collaboration diagram for JITState:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "24" [label="SpinLock" tooltip="SpinLock"] "13" [label="ResourceType" tooltip="ResourceType"] "1" [label="JITState" tooltip="JITState" fillcolor="#BFBFBF"] "7" [label="Module" tooltip="Module"] "6" [label="ListHead" tooltip="ListHead"] "11" [label="HeapFragment" tooltip="HeapFragment"] "21" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"] "12" [label="GlobalContext" tooltip="GlobalContext"] "15" [label="Ets" tooltip="Ets"] "20" [label="HNodeGroup" tooltip="HNodeGroup"] "23" [label="TimerList" tooltip="TimerList"] "9" [label="LiteralEntry" tooltip="LiteralEntry"] "4" [label="MailboxMessage" tooltip="MailboxMessage"] "10" [label="Heap" tooltip="Heap"] "2" [label="Context" tooltip="Context"] "18" [label="MessageQueueItem" tooltip="MessageQueueItem"] "22" [label="RefcBinary" tooltip="RefcBinary"] "16" [label="ValuesHashTable" tooltip="ValuesHashTable"] "3" [label="Mailbox" tooltip="Mailbox"] "19" [label="AtomTable" tooltip="AtomTable"] "8" [label="ExportedFunction" tooltip="ExportedFunction"] "5" [label="TimerListItem" tooltip="TimerListItem"] "14" [label="SyncList" tooltip="SyncList"] "17" [label="HNode" tooltip="HNode"] "13" -> "14" [dir=forward tooltip="usage"] "13" -> "12" [dir=forward tooltip="usage"] "13" -> "6" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "7" [dir=forward tooltip="usage"] "7" -> "8" [dir=forward tooltip="usage"] "7" -> "2" [dir=forward tooltip="usage"] "7" -> "9" [dir=forward tooltip="usage"] "6" -> "6" [dir=forward tooltip="usage"] "11" -> "11" [dir=forward tooltip="usage"] "21" -> "22" [dir=forward tooltip="usage"] "21" -> "21" [dir=forward tooltip="usage"] "12" -> "13" [dir=forward tooltip="usage"] "12" -> "15" [dir=forward tooltip="usage"] "12" -> "16" [dir=forward tooltip="usage"] "12" -> "18" [dir=forward tooltip="usage"] "12" -> "19" [dir=forward tooltip="usage"] "12" -> "21" [dir=forward tooltip="usage"] "12" -> "14" [dir=forward tooltip="usage"] "12" -> "7" [dir=forward tooltip="usage"] "12" -> "23" [dir=forward tooltip="usage"] "12" -> "24" [dir=forward tooltip="usage"] "12" -> "6" [dir=forward tooltip="usage"] "15" -> "14" [dir=forward tooltip="usage"] "20" -> "17" [dir=forward tooltip="usage"] "20" -> "20" [dir=forward tooltip="usage"] "23" -> "6" [dir=forward tooltip="usage"] "4" -> "4" [dir=forward tooltip="usage"] "10" -> "11" [dir=forward tooltip="usage"] "2" -> "2" [dir=forward tooltip="usage"] "2" -> "3" [dir=forward tooltip="usage"] "2" -> "5" [dir=forward tooltip="usage"] "2" -> "7" [dir=forward tooltip="usage"] "2" -> "10" [dir=forward tooltip="usage"] "2" -> "12" [dir=forward tooltip="usage"] "2" -> "6" [dir=forward tooltip="usage"] "18" -> "4" [dir=forward tooltip="usage"] "18" -> "18" [dir=forward tooltip="usage"] "22" -> "13" [dir=forward tooltip="usage"] "22" -> "6" [dir=forward tooltip="usage"] "16" -> "17" [dir=forward tooltip="usage"] "3" -> "4" [dir=forward tooltip="usage"] "19" -> "17" [dir=forward tooltip="usage"] "19" -> "20" [dir=forward tooltip="usage"] "5" -> "6" [dir=forward tooltip="usage"] "14" -> "6" [dir=forward tooltip="usage"] "17" -> "17" [dir=forward tooltip="usage"] "17" -> "10" [dir=forward tooltip="usage"] }

Public Members

Module *module
ModuleNativeEntryPoint continuation
const void *continuation_pc
union JITState.[anonymous] [anonymous]
int remaining_reductions
struct ModuleNativeInterface
#include <jit.h>

Collaboration diagram for ModuleNativeInterface:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "24" [label="SpinLock" tooltip="SpinLock"] "13" [label="ResourceType" tooltip="ResourceType"] "7" [label="Module" tooltip="Module"] "6" [label="ListHead" tooltip="ListHead"] "11" [label="HeapFragment" tooltip="HeapFragment"] "21" [label="RefcBinaryQueueItem" tooltip="RefcBinaryQueueItem"] "12" [label="GlobalContext" tooltip="GlobalContext"] "15" [label="Ets" tooltip="Ets"] "20" [label="HNodeGroup" tooltip="HNodeGroup"] "23" [label="TimerList" tooltip="TimerList"] "9" [label="LiteralEntry" tooltip="LiteralEntry"] "4" [label="MailboxMessage" tooltip="MailboxMessage"] "10" [label="Heap" tooltip="Heap"] "1" [label="ModuleNativeInterface" tooltip="ModuleNativeInterface" fillcolor="#BFBFBF"] "2" [label="Context" tooltip="Context"] "18" [label="MessageQueueItem" tooltip="MessageQueueItem"] "22" [label="RefcBinary" tooltip="RefcBinary"] "16" [label="ValuesHashTable" tooltip="ValuesHashTable"] "3" [label="Mailbox" tooltip="Mailbox"] "19" [label="AtomTable" tooltip="AtomTable"] "8" [label="ExportedFunction" tooltip="ExportedFunction"] "5" [label="TimerListItem" tooltip="TimerListItem"] "14" [label="SyncList" tooltip="SyncList"] "17" [label="HNode" tooltip="HNode"] "13" -> "14" [dir=forward tooltip="usage"] "13" -> "12" [dir=forward tooltip="usage"] "13" -> "6" [dir=forward tooltip="usage"] "7" -> "8" [dir=forward tooltip="usage"] "7" -> "2" [dir=forward tooltip="usage"] "7" -> "9" [dir=forward tooltip="usage"] "6" -> "6" [dir=forward tooltip="usage"] "11" -> "11" [dir=forward tooltip="usage"] "21" -> "22" [dir=forward tooltip="usage"] "21" -> "21" [dir=forward tooltip="usage"] "12" -> "13" [dir=forward tooltip="usage"] "12" -> "15" [dir=forward tooltip="usage"] "12" -> "16" [dir=forward tooltip="usage"] "12" -> "18" [dir=forward tooltip="usage"] "12" -> "19" [dir=forward tooltip="usage"] "12" -> "21" [dir=forward tooltip="usage"] "12" -> "14" [dir=forward tooltip="usage"] "12" -> "7" [dir=forward tooltip="usage"] "12" -> "23" [dir=forward tooltip="usage"] "12" -> "24" [dir=forward tooltip="usage"] "12" -> "6" [dir=forward tooltip="usage"] "15" -> "14" [dir=forward tooltip="usage"] "20" -> "17" [dir=forward tooltip="usage"] "20" -> "20" [dir=forward tooltip="usage"] "23" -> "6" [dir=forward tooltip="usage"] "4" -> "4" [dir=forward tooltip="usage"] "10" -> "11" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="usage"] "2" -> "2" [dir=forward tooltip="usage"] "2" -> "3" [dir=forward tooltip="usage"] "2" -> "5" [dir=forward tooltip="usage"] "2" -> "7" [dir=forward tooltip="usage"] "2" -> "10" [dir=forward tooltip="usage"] "2" -> "12" [dir=forward tooltip="usage"] "2" -> "6" [dir=forward tooltip="usage"] "18" -> "4" [dir=forward tooltip="usage"] "18" -> "18" [dir=forward tooltip="usage"] "22" -> "13" [dir=forward tooltip="usage"] "22" -> "6" [dir=forward tooltip="usage"] "16" -> "17" [dir=forward tooltip="usage"] "3" -> "4" [dir=forward tooltip="usage"] "19" -> "17" [dir=forward tooltip="usage"] "19" -> "20" [dir=forward tooltip="usage"] "5" -> "6" [dir=forward tooltip="usage"] "14" -> "6" [dir=forward tooltip="usage"] "17" -> "17" [dir=forward tooltip="usage"] "17" -> "10" [dir=forward tooltip="usage"] }

Public Members

Context *(*raise_error)(Context *ctx, JITState *jit_state, int offset, term error_term)
Context *(*do_return)(Context *ctx, JITState *jit_state)
Context *(*schedule_next_cp)(Context *ctx, JITState *jit_state)
term (*module_get_atom_term_by_id)(JITState *jit_state, int atom_index)
Context *(*call_ext)(Context *ctx, JITState *jit_state, int offset, int arity, int index, int n_words)
bool (*allocate)(Context *ctx, JITState *jit_state, uint32_t stack_need, uint32_t heap_need, uint32_t live)
Context *(*handle_error)(Context *ctx, JITState *jit_state, int offset)
void (*jit_trim_live_regs)(Context *ctx, uint32_t live)
BifImpl0 (*get_imported_bif)(JITState *jit_state, uint32_t bif)
bool (*deallocate)(Context *ctx, JITState *jit_state, uint32_t n_words)
Context *(*terminate_context)(Context *ctx, JITState *jit_state)
TermCompareResult (*term_compare)(Context *ctx, JITState *jit_state, term t, term other, TermCompareOpts opts)
bool (*test_heap)(Context *ctx, JITState *jit_state, uint32_t heap_need, uint32_t live)
term (*put_list)(Context *ctx, term head, term tail)
term (*module_load_literal)(Context *ctx, JITState *jit_state, int index)
term (*alloc_boxed_integer_fragment)(Context *ctx, avm_int64_t value)
term (*term_alloc_tuple)(Context *ctx, uint32_t size)
bool (*send)(Context *ctx, JITState *jit_state)
term *(*extended_register_pointer)(Context *ctx, unsigned int index)
Context *(*raise_error_tuple)(Context *ctx, JITState *jit_state, int offset, term error_atom, term arg1)
term (*term_alloc_fun)(Context *ctx, JITState *jit_state, uint32_t fun_index, uint32_t numfree)
Context *(*process_signal_messages)(Context *ctx, JITState *jit_state)
term (*mailbox_peek)(Context *ctx)
void (*mailbox_remove_message)(Context *ctx)
void (*timeout)(Context *ctx)
void (*mailbox_next)(Context *ctx)
void (*cancel_timeout)(Context *ctx)
void (*clear_timeout_flag)(Context *ctx)
Context *(*raise)(Context *ctx, JITState *jit_state, int offset, term stacktrace, term exc_value)
Context *(*schedule_wait_cp)(Context *ctx, JITState *jit_state)
Context *(*wait_timeout)(Context *ctx, JITState *jit_state, term timeout, int label)
Context *(*wait_timeout_trap_handler)(Context *ctx, JITState *jit_state, int label)
Context *(*call_fun)(Context *ctx, JITState *jit_state, int offset, term fun, unsigned int args_count)
int (*context_get_flags)(Context *ctx, int mask)
void (*context_ensure_fpregs)(Context *ctx)
term (*term_from_float)(Context *ctx, int fpreg)
bool (*term_is_number)(term t)
void (*term_conv_to_float)(Context *ctx, term t, int fpreg)
bool (*fadd)(Context *ctx, int fpreg_1, int fpreg_2, int fpreg_3)
bool (*fsub)(Context *ctx, int fpreg_1, int fpreg_2, int fpreg_3)
bool (*fmul)(Context *ctx, int fpreg_1, int fpreg_2, int fpreg_3)
bool (*fdiv)(Context *ctx, int fpreg_1, int fpreg_2, int fpreg_3)
void (*fnegate)(Context *ctx, int fpreg_1, int fpreg_2)
bool (*catch_end)(Context *ctx, JITState *jit_state)
bool (*memory_ensure_free_with_roots)(Context *ctx, JITState *jit_state, int sz, int live, int flags)
term (*term_alloc_bin_match_state)(Context *ctx, term src, int slots)
term (*bitstring_extract_integer)(Context *ctx, JITState *jit_state, term *bin_ptr, size_t offset, int n, int bs_flags)
size_t (*term_sub_binary_heap_size)(term *bin_ptr, size_t size)
term (*term_maybe_create_sub_binary)(Context *ctx, term bin, size_t offset, size_t len)
int (*term_find_map_pos)(Context *ctx, term map, term key)
int (*bitstring_utf8_size)(int c)
int (*bitstring_utf16_size)(int c)
term (*term_create_empty_binary)(Context *ctx, size_t len)
int (*decode_flags_list)(Context *ctx, JITState *jit_state, term l)
int (*bitstring_insert_utf8)(term bin, size_t offset, int c)
int (*bitstring_insert_utf16)(term bin, size_t offset, int c, enum BitstringFlags flags)
bool (*bitstring_insert_utf32)(term bin, size_t offset, uint32_t c, enum BitstringFlags flags)
bool (*bitstring_insert_integer)(term bin, size_t offset, avm_int64_t value, size_t n, enum BitstringFlags flags)
avm_int64_t (*term_maybe_unbox_int64)(term i)
void (*bitstring_copy_module_str)(Context *ctx, JITState *jit_state, term bin, size_t offset, int str_id, size_t len)
int (*bitstring_copy_binary)(Context *ctx, JITState *jit_state, term t, size_t offset, term src, term size)
Context *(*apply)(Context *ctx, JITState *jit_state, int offset, term module, term function, unsigned int arity)
void *(*malloc)(Context *ctx, JITState *jit_state, size_t sz)
void (*free)(void *ptr)
term (*put_map_assoc)(Context *ctx, JITState *jit_state, term src, size_t new_entries, size_t num_elements, term *kv)
term (*bitstring_extract_float)(Context *ctx, term *bin_ptr, size_t offset, int n, int bs_flags)
int (*module_get_fun_arity)(Module *fun_module, uint32_t fun_index)
bool (*bitstring_match_module_str)(Context *ctx, JITState *jit_state, term bin, size_t offset, int str_id, size_t len)
term (*bitstring_get_utf8)(term src)
term (*bitstring_get_utf16)(term src, int flags_value)
term (*bitstring_get_utf32)(term src, int flags_value)
term (*term_copy_map)(Context *ctx, term src)
term (*stacktrace_build)(Context *ctx)