Crate jit_sys

Source

Structs§

__va_list_tag
_jit_arch_frame
jit_constant_t
jit_crawl_mark_t
jit_debugger_breakpoint_info
jit_debugger_event
jit_insn_iter_t
jit_intrinsic_descr_t
jit_memory_manager
jit_opcode_info
jit_unwind_context_t

Constants§

JITOM_MODIFIER_ABSTRACT
JITOM_MODIFIER_ACCESS_MASK
JITOM_MODIFIER_CTOR
JITOM_MODIFIER_DELETE
JITOM_MODIFIER_DTOR
JITOM_MODIFIER_FINAL
JITOM_MODIFIER_INTERFACE
JITOM_MODIFIER_LITERAL
JITOM_MODIFIER_NEW_SLOT
JITOM_MODIFIER_OTHER1
JITOM_MODIFIER_OTHER2
JITOM_MODIFIER_PACKAGE
JITOM_MODIFIER_PACKAGE_AND_PROTECTED
JITOM_MODIFIER_PACKAGE_OR_PROTECTED
JITOM_MODIFIER_PRIVATE
JITOM_MODIFIER_PROTECTED
JITOM_MODIFIER_PUBLIC
JITOM_MODIFIER_REFERENCE_COUNTED
JITOM_MODIFIER_STATIC
JITOM_MODIFIER_STATIC_CTOR
JITOM_MODIFIER_VALUE
JITOM_MODIFIER_VIRTUAL
JITOM_TYPETAG_CLASS
JITOM_TYPETAG_VALUE
JIT_CALL_NORETURN
JIT_CALL_NOTHROW
JIT_CALL_TAIL
JIT_DEBUGGER_DATA1_ENTER
JIT_DEBUGGER_DATA1_FIRST
JIT_DEBUGGER_DATA1_LEAVE
JIT_DEBUGGER_DATA1_LINE
JIT_DEBUGGER_DATA1_THROW
JIT_DEBUGGER_FLAG_DATA1
JIT_DEBUGGER_FLAG_DATA2
JIT_DEBUGGER_FLAG_FUNCTION
JIT_DEBUGGER_FLAG_THREAD
JIT_DEBUGGER_TYPE_ATTACH_THREAD
JIT_DEBUGGER_TYPE_DETACH_THREAD
JIT_DEBUGGER_TYPE_HARD_BREAKPOINT
JIT_DEBUGGER_TYPE_QUIT
JIT_DEBUGGER_TYPE_SOFT_BREAKPOINT
JIT_DEBUGGER_TYPE_USER_BREAKPOINT
JIT_FAST_GET_CURRENT_FRAME
JIT_MEMORY_ERROR
JIT_MEMORY_OK
JIT_MEMORY_RESTART
JIT_MEMORY_TOO_BIG
JIT_NATIVE_INT64
JIT_NO_OFFSET
JIT_OPCODE_DEST_ANY
JIT_OPCODE_DEST_EMPTY
JIT_OPCODE_DEST_FLOAT32
JIT_OPCODE_DEST_FLOAT64
JIT_OPCODE_DEST_INT
JIT_OPCODE_DEST_LONG
JIT_OPCODE_DEST_MASK
JIT_OPCODE_DEST_NFLOAT
JIT_OPCODE_DEST_PTR
JIT_OPCODE_IS_ADDROF_LABEL
JIT_OPCODE_IS_BRANCH
JIT_OPCODE_IS_CALL
JIT_OPCODE_IS_CALL_EXTERNAL
JIT_OPCODE_IS_JUMP_TABLE
JIT_OPCODE_IS_REG
JIT_OPCODE_OPER_ADD
JIT_OPCODE_OPER_ADDRESS_OF
JIT_OPCODE_OPER_AND
JIT_OPCODE_OPER_COPY
JIT_OPCODE_OPER_DIV
JIT_OPCODE_OPER_EQ
JIT_OPCODE_OPER_GE
JIT_OPCODE_OPER_GT
JIT_OPCODE_OPER_LE
JIT_OPCODE_OPER_LT
JIT_OPCODE_OPER_MASK
JIT_OPCODE_OPER_MUL
JIT_OPCODE_OPER_NE
JIT_OPCODE_OPER_NEG
JIT_OPCODE_OPER_NONE
JIT_OPCODE_OPER_NOT
JIT_OPCODE_OPER_OR
JIT_OPCODE_OPER_REM
JIT_OPCODE_OPER_SHL
JIT_OPCODE_OPER_SHR
JIT_OPCODE_OPER_SHR_UN
JIT_OPCODE_OPER_SUB
JIT_OPCODE_OPER_XOR
JIT_OPCODE_SRC1_ANY
JIT_OPCODE_SRC1_EMPTY
JIT_OPCODE_SRC1_FLOAT32
JIT_OPCODE_SRC1_FLOAT64
JIT_OPCODE_SRC1_INT
JIT_OPCODE_SRC1_LONG
JIT_OPCODE_SRC1_MASK
JIT_OPCODE_SRC1_NFLOAT
JIT_OPCODE_SRC1_PTR
JIT_OPCODE_SRC2_ANY
JIT_OPCODE_SRC2_EMPTY
JIT_OPCODE_SRC2_FLOAT32
JIT_OPCODE_SRC2_FLOAT64
JIT_OPCODE_SRC2_INT
JIT_OPCODE_SRC2_LONG
JIT_OPCODE_SRC2_MASK
JIT_OPCODE_SRC2_NFLOAT
JIT_OPCODE_SRC2_PTR
JIT_OPTION_CACHE_LIMIT
JIT_OPTION_CACHE_MAX_PAGE_FACTOR
JIT_OPTION_CACHE_PAGE_SIZE
JIT_OPTION_DONT_FOLD
JIT_OPTION_POSITION_INDEPENDENT
JIT_OPTION_PRE_COMPILE
JIT_OPTLEVEL_NONE
JIT_OPTLEVEL_NORMAL
JIT_OP_ADDRESS_OF
JIT_OP_ADDRESS_OF_LABEL
JIT_OP_ADD_RELATIVE
JIT_OP_ALLOCA
JIT_OP_BR
JIT_OP_BR_DEQ
JIT_OP_BR_DEQ_INV
JIT_OP_BR_DGE
JIT_OP_BR_DGE_INV
JIT_OP_BR_DGT
JIT_OP_BR_DGT_INV
JIT_OP_BR_DLE
JIT_OP_BR_DLE_INV
JIT_OP_BR_DLT
JIT_OP_BR_DLT_INV
JIT_OP_BR_DNE
JIT_OP_BR_DNE_INV
JIT_OP_BR_FEQ
JIT_OP_BR_FEQ_INV
JIT_OP_BR_FGE
JIT_OP_BR_FGE_INV
JIT_OP_BR_FGT
JIT_OP_BR_FGT_INV
JIT_OP_BR_FLE
JIT_OP_BR_FLE_INV
JIT_OP_BR_FLT
JIT_OP_BR_FLT_INV
JIT_OP_BR_FNE
JIT_OP_BR_FNE_INV
JIT_OP_BR_IEQ
JIT_OP_BR_IFALSE
JIT_OP_BR_IGE
JIT_OP_BR_IGE_UN
JIT_OP_BR_IGT
JIT_OP_BR_IGT_UN
JIT_OP_BR_ILE
JIT_OP_BR_ILE_UN
JIT_OP_BR_ILT
JIT_OP_BR_ILT_UN
JIT_OP_BR_INE
JIT_OP_BR_ITRUE
JIT_OP_BR_LEQ
JIT_OP_BR_LFALSE
JIT_OP_BR_LGE
JIT_OP_BR_LGE_UN
JIT_OP_BR_LGT
JIT_OP_BR_LGT_UN
JIT_OP_BR_LLE
JIT_OP_BR_LLE_UN
JIT_OP_BR_LLT
JIT_OP_BR_LLT_UN
JIT_OP_BR_LNE
JIT_OP_BR_LTRUE
JIT_OP_BR_NFEQ
JIT_OP_BR_NFEQ_INV
JIT_OP_BR_NFGE
JIT_OP_BR_NFGE_INV
JIT_OP_BR_NFGT
JIT_OP_BR_NFGT_INV
JIT_OP_BR_NFLE
JIT_OP_BR_NFLE_INV
JIT_OP_BR_NFLT
JIT_OP_BR_NFLT_INV
JIT_OP_BR_NFNE
JIT_OP_BR_NFNE_INV
JIT_OP_CALL
JIT_OP_CALL_EXTERNAL
JIT_OP_CALL_EXTERNAL_TAIL
JIT_OP_CALL_FILTER
JIT_OP_CALL_FILTER_RETURN
JIT_OP_CALL_FINALLY
JIT_OP_CALL_INDIRECT
JIT_OP_CALL_INDIRECT_TAIL
JIT_OP_CALL_TAIL
JIT_OP_CALL_VTABLE_PTR
JIT_OP_CALL_VTABLE_PTR_TAIL
JIT_OP_CHECK_FLOAT32_TO_INT
JIT_OP_CHECK_FLOAT32_TO_LONG
JIT_OP_CHECK_FLOAT32_TO_UINT
JIT_OP_CHECK_FLOAT32_TO_ULONG
JIT_OP_CHECK_FLOAT64_TO_INT
JIT_OP_CHECK_FLOAT64_TO_LONG
JIT_OP_CHECK_FLOAT64_TO_UINT
JIT_OP_CHECK_FLOAT64_TO_ULONG
JIT_OP_CHECK_INT
JIT_OP_CHECK_LONG
JIT_OP_CHECK_LOW_WORD
JIT_OP_CHECK_NFLOAT_TO_INT
JIT_OP_CHECK_NFLOAT_TO_LONG
JIT_OP_CHECK_NFLOAT_TO_UINT
JIT_OP_CHECK_NFLOAT_TO_ULONG
JIT_OP_CHECK_NULL
JIT_OP_CHECK_SBYTE
JIT_OP_CHECK_SHORT
JIT_OP_CHECK_SIGNED_LOW_WORD
JIT_OP_CHECK_UBYTE
JIT_OP_CHECK_UINT
JIT_OP_CHECK_ULONG
JIT_OP_CHECK_USHORT
JIT_OP_COPY_FLOAT32
JIT_OP_COPY_FLOAT64
JIT_OP_COPY_INT
JIT_OP_COPY_LOAD_SBYTE
JIT_OP_COPY_LOAD_SHORT
JIT_OP_COPY_LOAD_UBYTE
JIT_OP_COPY_LOAD_USHORT
JIT_OP_COPY_LONG
JIT_OP_COPY_NFLOAT
JIT_OP_COPY_STORE_BYTE
JIT_OP_COPY_STORE_SHORT
JIT_OP_COPY_STRUCT
JIT_OP_DABS
JIT_OP_DACOS
JIT_OP_DADD
JIT_OP_DASIN
JIT_OP_DATAN
JIT_OP_DATAN2
JIT_OP_DCEIL
JIT_OP_DCMPG
JIT_OP_DCMPL
JIT_OP_DCOS
JIT_OP_DCOSH
JIT_OP_DDIV
JIT_OP_DEQ
JIT_OP_DEQ_INV
JIT_OP_DEXP
JIT_OP_DFLOOR
JIT_OP_DGE
JIT_OP_DGE_INV
JIT_OP_DGT
JIT_OP_DGT_INV
JIT_OP_DLE
JIT_OP_DLE_INV
JIT_OP_DLOG
JIT_OP_DLOG10
JIT_OP_DLT
JIT_OP_DLT_INV
JIT_OP_DMAX
JIT_OP_DMIN
JIT_OP_DMUL
JIT_OP_DNE
JIT_OP_DNEG
JIT_OP_DNE_INV
JIT_OP_DPOW
JIT_OP_DREM
JIT_OP_DREM_IEEE
JIT_OP_DRINT
JIT_OP_DROUND
JIT_OP_DSIGN
JIT_OP_DSIN
JIT_OP_DSINH
JIT_OP_DSQRT
JIT_OP_DSUB
JIT_OP_DTAN
JIT_OP_DTANH
JIT_OP_DTRUNC
JIT_OP_ENTER_FILTER
JIT_OP_ENTER_FINALLY
JIT_OP_EXPAND_INT
JIT_OP_EXPAND_UINT
JIT_OP_FABS
JIT_OP_FACOS
JIT_OP_FADD
JIT_OP_FASIN
JIT_OP_FATAN
JIT_OP_FATAN2
JIT_OP_FCEIL
JIT_OP_FCMPG
JIT_OP_FCMPL
JIT_OP_FCOS
JIT_OP_FCOSH
JIT_OP_FDIV
JIT_OP_FEQ
JIT_OP_FEQ_INV
JIT_OP_FEXP
JIT_OP_FFLOOR
JIT_OP_FGE
JIT_OP_FGE_INV
JIT_OP_FGT
JIT_OP_FGT_INV
JIT_OP_FLE
JIT_OP_FLE_INV
JIT_OP_FLOAT32_TO_FLOAT64
JIT_OP_FLOAT32_TO_INT
JIT_OP_FLOAT32_TO_LONG
JIT_OP_FLOAT32_TO_NFLOAT
JIT_OP_FLOAT32_TO_UINT
JIT_OP_FLOAT32_TO_ULONG
JIT_OP_FLOAT64_TO_FLOAT32
JIT_OP_FLOAT64_TO_INT
JIT_OP_FLOAT64_TO_LONG
JIT_OP_FLOAT64_TO_NFLOAT
JIT_OP_FLOAT64_TO_UINT
JIT_OP_FLOAT64_TO_ULONG
JIT_OP_FLOG
JIT_OP_FLOG10
JIT_OP_FLT
JIT_OP_FLT_INV
JIT_OP_FLUSH_SMALL_STRUCT
JIT_OP_FMAX
JIT_OP_FMIN
JIT_OP_FMUL
JIT_OP_FNE
JIT_OP_FNEG
JIT_OP_FNE_INV
JIT_OP_FPOW
JIT_OP_FREM
JIT_OP_FREM_IEEE
JIT_OP_FRINT
JIT_OP_FROUND
JIT_OP_FSIGN
JIT_OP_FSIN
JIT_OP_FSINH
JIT_OP_FSQRT
JIT_OP_FSUB
JIT_OP_FTAN
JIT_OP_FTANH
JIT_OP_FTRUNC
JIT_OP_IABS
JIT_OP_IADD
JIT_OP_IADD_OVF
JIT_OP_IADD_OVF_UN
JIT_OP_IAND
JIT_OP_ICMP
JIT_OP_ICMP_UN
JIT_OP_IDIV
JIT_OP_IDIV_UN
JIT_OP_IEQ
JIT_OP_IGE
JIT_OP_IGE_UN
JIT_OP_IGT
JIT_OP_IGT_UN
JIT_OP_ILE
JIT_OP_ILE_UN
JIT_OP_ILT
JIT_OP_ILT_UN
JIT_OP_IMAX
JIT_OP_IMAX_UN
JIT_OP_IMIN
JIT_OP_IMIN_UN
JIT_OP_IMPORT
JIT_OP_IMUL
JIT_OP_IMUL_OVF
JIT_OP_IMUL_OVF_UN
JIT_OP_INCOMING_FRAME_POSN
JIT_OP_INCOMING_REG
JIT_OP_INE
JIT_OP_INEG
JIT_OP_INOT
JIT_OP_INT_TO_FLOAT32
JIT_OP_INT_TO_FLOAT64
JIT_OP_INT_TO_NFLOAT
JIT_OP_IOR
JIT_OP_IREM
JIT_OP_IREM_UN
JIT_OP_ISHL
JIT_OP_ISHR
JIT_OP_ISHR_UN
JIT_OP_ISIGN
JIT_OP_ISUB
JIT_OP_ISUB_OVF
JIT_OP_ISUB_OVF_UN
JIT_OP_IS_DFINITE
JIT_OP_IS_DINF
JIT_OP_IS_DNAN
JIT_OP_IS_FFINITE
JIT_OP_IS_FINF
JIT_OP_IS_FNAN
JIT_OP_IS_NFFINITE
JIT_OP_IS_NFINF
JIT_OP_IS_NFNAN
JIT_OP_IXOR
JIT_OP_JUMP_TABLE
JIT_OP_LABS
JIT_OP_LADD
JIT_OP_LADD_OVF
JIT_OP_LADD_OVF_UN
JIT_OP_LAND
JIT_OP_LCMP
JIT_OP_LCMP_UN
JIT_OP_LDIV
JIT_OP_LDIV_UN
JIT_OP_LEAVE_FILTER
JIT_OP_LEAVE_FINALLY
JIT_OP_LEQ
JIT_OP_LGE
JIT_OP_LGE_UN
JIT_OP_LGT
JIT_OP_LGT_UN
JIT_OP_LLE
JIT_OP_LLE_UN
JIT_OP_LLT
JIT_OP_LLT_UN
JIT_OP_LMAX
JIT_OP_LMAX_UN
JIT_OP_LMIN
JIT_OP_LMIN_UN
JIT_OP_LMUL
JIT_OP_LMUL_OVF
JIT_OP_LMUL_OVF_UN
JIT_OP_LNE
JIT_OP_LNEG
JIT_OP_LNOT
JIT_OP_LOAD_ELEMENT_FLOAT32
JIT_OP_LOAD_ELEMENT_FLOAT64
JIT_OP_LOAD_ELEMENT_INT
JIT_OP_LOAD_ELEMENT_LONG
JIT_OP_LOAD_ELEMENT_NFLOAT
JIT_OP_LOAD_ELEMENT_SBYTE
JIT_OP_LOAD_ELEMENT_SHORT
JIT_OP_LOAD_ELEMENT_UBYTE
JIT_OP_LOAD_ELEMENT_USHORT
JIT_OP_LOAD_EXCEPTION_PC
JIT_OP_LOAD_PC
JIT_OP_LOAD_RELATIVE_FLOAT32
JIT_OP_LOAD_RELATIVE_FLOAT64
JIT_OP_LOAD_RELATIVE_INT
JIT_OP_LOAD_RELATIVE_LONG
JIT_OP_LOAD_RELATIVE_NFLOAT
JIT_OP_LOAD_RELATIVE_SBYTE
JIT_OP_LOAD_RELATIVE_SHORT
JIT_OP_LOAD_RELATIVE_STRUCT
JIT_OP_LOAD_RELATIVE_UBYTE
JIT_OP_LOAD_RELATIVE_USHORT
JIT_OP_LONG_TO_FLOAT32
JIT_OP_LONG_TO_FLOAT64
JIT_OP_LONG_TO_NFLOAT
JIT_OP_LOR
JIT_OP_LOW_WORD
JIT_OP_LREM
JIT_OP_LREM_UN
JIT_OP_LSHL
JIT_OP_LSHR
JIT_OP_LSHR_UN
JIT_OP_LSIGN
JIT_OP_LSUB
JIT_OP_LSUB_OVF
JIT_OP_LSUB_OVF_UN
JIT_OP_LXOR
JIT_OP_MARK_BREAKPOINT
JIT_OP_MARK_OFFSET
JIT_OP_MEMCPY
JIT_OP_MEMMOVE
JIT_OP_MEMSET
JIT_OP_NFABS
JIT_OP_NFACOS
JIT_OP_NFADD
JIT_OP_NFASIN
JIT_OP_NFATAN
JIT_OP_NFATAN2
JIT_OP_NFCEIL
JIT_OP_NFCMPG
JIT_OP_NFCMPL
JIT_OP_NFCOS
JIT_OP_NFCOSH
JIT_OP_NFDIV
JIT_OP_NFEQ
JIT_OP_NFEQ_INV
JIT_OP_NFEXP
JIT_OP_NFFLOOR
JIT_OP_NFGE
JIT_OP_NFGE_INV
JIT_OP_NFGT
JIT_OP_NFGT_INV
JIT_OP_NFLE
JIT_OP_NFLE_INV
JIT_OP_NFLOAT_TO_FLOAT32
JIT_OP_NFLOAT_TO_FLOAT64
JIT_OP_NFLOAT_TO_INT
JIT_OP_NFLOAT_TO_LONG
JIT_OP_NFLOAT_TO_UINT
JIT_OP_NFLOAT_TO_ULONG
JIT_OP_NFLOG
JIT_OP_NFLOG10
JIT_OP_NFLT
JIT_OP_NFLT_INV
JIT_OP_NFMAX
JIT_OP_NFMIN
JIT_OP_NFMUL
JIT_OP_NFNE
JIT_OP_NFNEG
JIT_OP_NFNE_INV
JIT_OP_NFPOW
JIT_OP_NFREM
JIT_OP_NFREM_IEEE
JIT_OP_NFRINT
JIT_OP_NFROUND
JIT_OP_NFSIGN
JIT_OP_NFSIN
JIT_OP_NFSINH
JIT_OP_NFSQRT
JIT_OP_NFSUB
JIT_OP_NFTAN
JIT_OP_NFTANH
JIT_OP_NFTRUNC
JIT_OP_NOP
JIT_OP_NUM_OPCODES
JIT_OP_OUTGOING_REG
JIT_OP_POP_STACK
JIT_OP_PUSH_FLOAT32
JIT_OP_PUSH_FLOAT64
JIT_OP_PUSH_INT
JIT_OP_PUSH_LONG
JIT_OP_PUSH_NFLOAT
JIT_OP_PUSH_RETURN_AREA_PTR
JIT_OP_PUSH_STRUCT
JIT_OP_RETHROW
JIT_OP_RETRIEVE_FRAME_POINTER
JIT_OP_RETURN
JIT_OP_RETURN_FLOAT32
JIT_OP_RETURN_FLOAT64
JIT_OP_RETURN_INT
JIT_OP_RETURN_LONG
JIT_OP_RETURN_NFLOAT
JIT_OP_RETURN_REG
JIT_OP_RETURN_SMALL_STRUCT
JIT_OP_SET_PARAM_FLOAT32
JIT_OP_SET_PARAM_FLOAT64
JIT_OP_SET_PARAM_INT
JIT_OP_SET_PARAM_LONG
JIT_OP_SET_PARAM_NFLOAT
JIT_OP_SET_PARAM_STRUCT
JIT_OP_STORE_ELEMENT_BYTE
JIT_OP_STORE_ELEMENT_FLOAT32
JIT_OP_STORE_ELEMENT_FLOAT64
JIT_OP_STORE_ELEMENT_INT
JIT_OP_STORE_ELEMENT_LONG
JIT_OP_STORE_ELEMENT_NFLOAT
JIT_OP_STORE_ELEMENT_SHORT
JIT_OP_STORE_RELATIVE_BYTE
JIT_OP_STORE_RELATIVE_FLOAT32
JIT_OP_STORE_RELATIVE_FLOAT64
JIT_OP_STORE_RELATIVE_INT
JIT_OP_STORE_RELATIVE_LONG
JIT_OP_STORE_RELATIVE_NFLOAT
JIT_OP_STORE_RELATIVE_SHORT
JIT_OP_STORE_RELATIVE_STRUCT
JIT_OP_THROW
JIT_OP_TRUNC_INT
JIT_OP_TRUNC_SBYTE
JIT_OP_TRUNC_SHORT
JIT_OP_TRUNC_UBYTE
JIT_OP_TRUNC_UINT
JIT_OP_TRUNC_USHORT
JIT_OP_UINT_TO_FLOAT32
JIT_OP_UINT_TO_FLOAT64
JIT_OP_UINT_TO_NFLOAT
JIT_OP_ULONG_TO_FLOAT32
JIT_OP_ULONG_TO_FLOAT64
JIT_OP_ULONG_TO_NFLOAT
JIT_READELF_BAD_FORMAT
JIT_READELF_CANNOT_OPEN
JIT_READELF_FLAG_DEBUG
JIT_READELF_FLAG_FORCE
JIT_READELF_MEMORY
JIT_READELF_NOT_ELF
JIT_READELF_OK
JIT_READELF_WRONG_ARCH
JIT_RESULT_ARITHMETIC
JIT_RESULT_CALLED_NESTED
JIT_RESULT_COMPILE_ERROR
JIT_RESULT_DIVISION_BY_ZERO
JIT_RESULT_MEMORY_FULL
JIT_RESULT_NULL_FUNCTION
JIT_RESULT_NULL_REFERENCE
JIT_RESULT_OK
JIT_RESULT_OUT_OF_BOUNDS
JIT_RESULT_OUT_OF_MEMORY
JIT_RESULT_OVERFLOW
JIT_RESULT_UNDEFINED_LABEL
JIT_TYPETAG_CONST
JIT_TYPETAG_ENUM_NAME
JIT_TYPETAG_NAME
JIT_TYPETAG_OUTPUT
JIT_TYPETAG_REFERENCE
JIT_TYPETAG_RESTRICT
JIT_TYPETAG_STRUCT_NAME
JIT_TYPETAG_SYS_BOOL
JIT_TYPETAG_SYS_CHAR
JIT_TYPETAG_SYS_DOUBLE
JIT_TYPETAG_SYS_FLOAT
JIT_TYPETAG_SYS_INT
JIT_TYPETAG_SYS_LONG
JIT_TYPETAG_SYS_LONGDOUBLE
JIT_TYPETAG_SYS_LONGLONG
JIT_TYPETAG_SYS_SCHAR
JIT_TYPETAG_SYS_SHORT
JIT_TYPETAG_SYS_UCHAR
JIT_TYPETAG_SYS_UINT
JIT_TYPETAG_SYS_ULONG
JIT_TYPETAG_SYS_ULONGLONG
JIT_TYPETAG_SYS_USHORT
JIT_TYPETAG_UNION_NAME
JIT_TYPETAG_VOLATILE
JIT_TYPE_FIRST_TAGGED
JIT_TYPE_FLOAT32
JIT_TYPE_FLOAT64
JIT_TYPE_INT
JIT_TYPE_INVALID
JIT_TYPE_LONG
JIT_TYPE_MAX_PRIMITIVE
JIT_TYPE_NFLOAT
JIT_TYPE_NINT
JIT_TYPE_NUINT
JIT_TYPE_PTR
JIT_TYPE_SBYTE
JIT_TYPE_SHORT
JIT_TYPE_SIGNATURE
JIT_TYPE_STRUCT
JIT_TYPE_UBYTE
JIT_TYPE_UINT
JIT_TYPE_ULONG
JIT_TYPE_UNION
JIT_TYPE_USHORT
JIT_TYPE_VOID
jit_abi_t_jit_abi_cdecl
jit_abi_t_jit_abi_fastcall
jit_abi_t_jit_abi_stdcall
jit_abi_t_jit_abi_vararg
jit_label_undefined
jit_prot_t_JIT_PROT_EXEC_READ
jit_prot_t_JIT_PROT_EXEC_READ_WRITE
jit_prot_t_JIT_PROT_NONE
jit_prot_t_JIT_PROT_READ
jit_prot_t_JIT_PROT_READ_WRITE

Statics§

jit_opcodes
jit_type_float32
jit_type_float64
jit_type_int
jit_type_long
jit_type_nfloat
jit_type_nint
jit_type_nuint
jit_type_sbyte
jit_type_short
jit_type_sys_bool
jit_type_sys_char
jit_type_sys_double
jit_type_sys_float
jit_type_sys_int
jit_type_sys_long
jit_type_sys_long_double
jit_type_sys_longlong
jit_type_sys_schar
jit_type_sys_short
jit_type_sys_uchar
jit_type_sys_uint
jit_type_sys_ulong
jit_type_sys_ulonglong
jit_type_sys_ushort
jit_type_ubyte
jit_type_uint
jit_type_ulong
jit_type_ushort
jit_type_void
jit_type_void_ptr

Functions§

_jit_get_frame_address
_jit_get_next_frame_address
_jit_get_return_address
jit_apply
jit_apply_raw
jit_block_current_is_dead
Determine if the current point in the function is dead. That is, there are no existing branches or fall-throughs to this point. This differs slightly from jit_block_ends_in_dead in that this can skip past zero-length blocks that may not appear to be dead to find the dead block at the head of a chain of empty blocks.
jit_block_ends_in_dead
Determine if a block ends in a “dead” marker. That is, control will not fall out through the end of the block.
jit_block_free_meta
Free metadata of a specific type on a block. Does nothing if the type does not have any metadata associated with it.
jit_block_from_label
Get the block that corresponds to a particular label. Returns NULL if there is no block associated with the label.
jit_block_get_context
Get the context that a particular block belongs to.
jit_block_get_function
Get the function that a particular block belongs to.
jit_block_get_label
Get the label associated with a block.
jit_block_get_meta
Get the metadata associated with a particular tag. Returns NULL if type does not have any metadata associated with it.
jit_block_get_next_label
Get the next label associated with a block.
jit_block_is_reachable
Determine if a block is reachable from some other point in its function. Unreachable blocks can be discarded in their entirety. If the JIT is uncertain as to whether a block is reachable, or it does not wish to perform expensive flow analysis to find out, then it will err on the side of caution and assume that it is reachable.
jit_block_next
Iterate over the blocks in a function, in order of their creation. The previous argument should be NULL on the first call. This function will return NULL if there are no further blocks to iterate.
jit_block_previous
Iterate over the blocks in a function, in reverse order of their creation. The previous argument should be NULL on the first call. This function will return NULL if there are no further blocks to iterate.
jit_block_set_meta
Tag a block with some metadata. Returns zero if out of memory. If the type already has some metadata associated with it, then the previous value will be freed. Metadata may be used to store dependency graphs, branch prediction information, or any other information that is useful to optimizers or code generators.
jit_calloc
jit_closure_create
jit_closure_va_get_float32
jit_closure_va_get_float64
jit_closure_va_get_long
jit_closure_va_get_nfloat
jit_closure_va_get_nint
jit_closure_va_get_nuint
jit_closure_va_get_ptr
jit_closure_va_get_struct
jit_closure_va_get_ulong
jit_compile
jit_compile_entry
jit_constant_convert
Convert a the constant value into a new type, and return its value in result. Returns zero if the conversion is not possible, usually due to overflow.
jit_context_build_end
jit_context_build_start
jit_context_create
jit_context_destroy
jit_context_free_meta
jit_context_get_meta
jit_context_get_meta_numeric
jit_context_set_memory_manager
jit_context_set_meta
jit_context_set_meta_numeric
jit_context_set_on_demand_driver
jit_debugger_add_breakpoint
jit_debugger_attach_self
jit_debugger_break
jit_debugger_create
jit_debugger_destroy
jit_debugger_detach_self
jit_debugger_finish
jit_debugger_from_context
jit_debugger_get_context
jit_debugger_get_native_thread
jit_debugger_get_self
jit_debugger_get_thread
jit_debugger_is_alive
jit_debugger_is_running
jit_debugger_next
jit_debugger_quit
jit_debugger_remove_all_breakpoints
jit_debugger_remove_breakpoint
jit_debugger_run
jit_debugger_set_breakable
jit_debugger_set_hook
jit_debugger_step
jit_debugger_wait_event
jit_debugging_possible
jit_default_memory_manager
jit_dump_function
jit_dump_insn
jit_dump_type
jit_dump_value
jit_exception_builtin
This function is called to report a builtin exception. The JIT will automatically embed calls to this function wherever a builtin exception needs to be reported. When a builtin exception occurs, the current thread’s exception handler is called to construct an appropriate object, which is then thrown. If there is no exception handler set, or the handler returns NULL, then libjit will print an error message to stderr and cause the program to exit with a status of 1. You normally don’t want this behavior and you should override it if possible.
jit_exception_clear_last
Clear the last exception object that occurred on this thread. This is equivalent to calling jit_exception_set_last with a parameter of NULL.
jit_exception_get_handler
Get the builtin exception handler for the current thread.
jit_exception_get_last
Get the last exception object that occurred on this thread, or NULL if there is no exception object on this thread. As far as libjit is concerned, an exception is just a pointer. The precise meaning of the data at the pointer is determined by the front end.
jit_exception_get_last_and_clear
Get the last exception object that occurred on this thread and also clear the exception state to NULL. This combines the effect of both jit_exception_get_last and jit_exception_clear_last.
jit_exception_get_stack_trace
Create an object that represents the current call stack. This is normally used to indicate the location of an exception. Returns NULL if a stack trace is not available, or there is insufficient memory to create it.
jit_exception_set_handler
Set the builtin exception handler for the current thread. Returns the previous exception handler.
jit_exception_set_last
Set the last exception object that occurred on this thread, so that it can be retrieved by a later call to jit_exception_get_last. This is normally used by jit_function_apply to save the exception object before returning to regular code.
jit_exception_throw
Throw an exception object within the current thread. As far as libjit is concerned, the exception object is just a pointer. The precise meaning of the data at the pointer is determined by the front end.
jit_float32_abs
jit_float32_acos
jit_float32_add
jit_float32_asin
jit_float32_atan
jit_float32_atan2
jit_float32_ceil
jit_float32_cmpg
jit_float32_cmpl
jit_float32_cos
jit_float32_cosh
jit_float32_div
jit_float32_eq
jit_float32_exp
jit_float32_floor
jit_float32_ge
jit_float32_gt
jit_float32_ieee_rem
jit_float32_is_finite
jit_float32_is_inf
jit_float32_is_nan
jit_float32_le
jit_float32_log
jit_float32_log10
jit_float32_lt
jit_float32_max
jit_float32_min
jit_float32_mul
jit_float32_ne
jit_float32_neg
jit_float32_pow
jit_float32_rem
jit_float32_rint
jit_float32_round
jit_float32_sign
jit_float32_sin
jit_float32_sinh
jit_float32_sqrt
jit_float32_sub
jit_float32_tan
jit_float32_tanh
jit_float32_to_float64
jit_float32_to_int
jit_float32_to_int_ovf
jit_float32_to_long
jit_float32_to_long_ovf
jit_float32_to_nfloat
jit_float32_to_uint
jit_float32_to_uint_ovf
jit_float32_to_ulong
jit_float32_to_ulong_ovf
jit_float32_trunc
jit_float64_abs
jit_float64_acos
jit_float64_add
jit_float64_asin
jit_float64_atan
jit_float64_atan2
jit_float64_ceil
jit_float64_cmpg
jit_float64_cmpl
jit_float64_cos
jit_float64_cosh
jit_float64_div
jit_float64_eq
jit_float64_exp
jit_float64_floor
jit_float64_ge
jit_float64_gt
jit_float64_ieee_rem
jit_float64_is_finite
jit_float64_is_inf
jit_float64_is_nan
jit_float64_le
jit_float64_log
jit_float64_log10
jit_float64_lt
jit_float64_max
jit_float64_min
jit_float64_mul
jit_float64_ne
jit_float64_neg
jit_float64_pow
jit_float64_rem
jit_float64_rint
jit_float64_round
jit_float64_sign
jit_float64_sin
jit_float64_sinh
jit_float64_sqrt
jit_float64_sub
jit_float64_tan
jit_float64_tanh
jit_float64_to_float32
jit_float64_to_int
jit_float64_to_int_ovf
jit_float64_to_long
jit_float64_to_long_ovf
jit_float64_to_nfloat
jit_float64_to_uint
jit_float64_to_uint_ovf
jit_float64_to_ulong
jit_float64_to_ulong_ovf
jit_float64_trunc
jit_frame_contains_crawl_mark
jit_free
jit_function_abandon
jit_function_apply
jit_function_apply_vararg
jit_function_clear_recompilable
jit_function_compile
jit_function_compile_entry
jit_function_create
jit_function_create_nested
jit_function_free_meta
jit_function_from_closure
jit_function_from_pc
jit_function_from_vtable_pointer
jit_function_get_context
jit_function_get_current
jit_function_get_entry
jit_function_get_max_optimization_level
jit_function_get_meta
jit_function_get_nested_parent
jit_function_get_on_demand_compiler
jit_function_get_optimization_level
jit_function_get_signature
jit_function_is_compiled
jit_function_is_recompilable
jit_function_labels_equal
jit_function_next
jit_function_previous
jit_function_reserve_label
jit_function_set_meta
jit_function_set_on_demand_compiler
jit_function_set_optimization_level
jit_function_set_parent_frame
jit_function_set_recompilable
jit_function_setup_entry
jit_function_to_closure
jit_function_to_vtable_pointer
jit_get_closure_alignment
jit_get_closure_size
jit_get_trampoline_alignment
jit_get_trampoline_size
jit_init
jit_insn_abs
jit_insn_acos
jit_insn_add
Add two values together and return the result in a new temporary value.
jit_insn_add_ovf
Add two values together and return the result in a new temporary value. Throw an exception if overflow occurs.
jit_insn_add_relative
Add the constant offset to the specified pointer value. This is functionally identical to calling jit_insn_add, but the JIT can optimize the code better if it knows that the addition is being used to perform a relative adjustment on a pointer. In particular, multiple relative adjustments on the same pointer can be collapsed into a single adjustment.
jit_insn_address_of
Get the address of a value into a new temporary.
jit_insn_address_of_label
Get the address of label into a new temporary. This is typically used for exception handling, to track where in a function an exception was actually thrown.
jit_insn_alloca
Allocate size bytes of memory from the stack.
jit_insn_and
Bitwise AND two values and return the result in a new temporary value.
jit_insn_asin
jit_insn_atan
jit_insn_atan2
jit_insn_branch
Terminate the current block by branching unconditionally to a specific label. Returns zero if out of memory.
jit_insn_branch_if
Terminate the current block by branching to a specific label if the specified value is non-zero. Returns zero if out of memory.
jit_insn_branch_if_not
Terminate the current block by branching to a specific label if the specified value is zero. Returns zero if out of memory.
jit_insn_branch_if_pc_not_in_range
Branch to label if the program counter where an exception occurred does not fall between start_label and end_label.
jit_insn_call
Call the function jit_func, which may or may not be translated yet. The name is for diagnostic purposes only, and can be NULL.
jit_insn_call_filter
Call the filter subroutine at label, passing it value as its argument. This function returns a value of the specified type, indicating the filter’s result.
jit_insn_call_finally
Call a finally clause.
jit_insn_call_indirect
Call a function via an indirect pointer.
jit_insn_call_indirect_vtable
Call a function via an indirect pointer. This version differs from jit_insn_call_indirect in that we assume that value contains a pointer that resulted from calling jit_function_to_vtable_pointer. Indirect vtable pointer calls may be more efficient on some platforms than regular indirect calls.
jit_insn_call_intrinsic
Output an instruction that calls an intrinsic function.
jit_insn_call_native
Output an instruction that calls an external native function. The name is for diagnostic purposes only, and can be NULL.
jit_insn_call_nested_indirect
Call a jit function that is nested via an indirect pointer. parent_frame should be a pointer to the frame of the parent of *value.
jit_insn_ceil
Round value1 up towads positive infinity.
jit_insn_check_null
Check value to see if it is NULL. If it is, then throw the built-in JIT_RESULT_NULL_REFERENCE exception.
jit_insn_cmpg
Compare two values, and return a -1, 0, or 1 result. If either value is “not a number”, then 1 is returned.
jit_insn_cmpl
Compare two values, and return a -1, 0, or 1 result. If either value is “not a number”, then -1 is returned.
jit_insn_convert
Convert the contents of a value into a new type, with optional overflow checking.
jit_insn_cos
jit_insn_cosh
jit_insn_default_return
Add an instruction to return a default value if control reaches this point. This is typically used at the end of a function to ensure that all paths return to the caller. Returns zero if out of memory, 1 if a default return was added, and 2 if a default return was not needed.
jit_insn_defer_pop_stack
This is similar to jit_insn_pop_stack, except that it tries to defer the pop as long as possible. Multiple subroutine calls may result in parameters collecting up on the stack, and only being popped at the next branch or label instruction. You normally wouldn’t call this yourself - it is used by CPU back ends.
jit_insn_dest_is_value
Returns a non-zero value if the destination for insn is actually a source value. This can happen with instructions such as jit_insn_store_relative where the instruction needs three source operands, and the real destination is a side-effect on one of the sources.
jit_insn_div
Divide two values and return the quotient in a new temporary value. Throws an exception on division by zero or arithmetic error (an arithmetic error is one where the minimum possible signed integer value is divided by -1).
jit_insn_dup
This is the same as jit_insn_load, but the name may better reflect how it is used in some front ends.
jit_insn_eq
Compare two values for equality and return the result in a new temporary value.
jit_insn_exp
jit_insn_floor
Round value1 down towards negative infinity.
jit_insn_flush_defer_pop
Flush any deferred items that were scheduled for popping by jit_insn_defer_pop_stack if there are num_items or more items scheduled. You normally wouldn’t call this yourself - it is used by CPU back ends to clean up the stack just prior to a subroutine call when too many items have collected up. Calling jit_insn_flush_defer_pop(func, 0) will flush all deferred items.
jit_insn_flush_struct
Flush a small structure return value out of registers and back into the local variable frame. You normally wouldn’t call this yourself - it is used internally by the CPU back ends to handle structure returns from functions.
jit_insn_ge
Compare two values for greater than or equal and return the result in a new temporary value.
jit_insn_get_call_stack
Get an object that represents the current position in the code, and all of the functions that are currently on the call stack. This is equivalent to calling jit_exception_get_stack_trace, and is normally used just prior to jit_insn_throw to record the location of the exception that is being thrown.
jit_insn_get_dest
Get the destination value that is associated with an instruction. Returns NULL if the instruction does not have a destination.
jit_insn_get_frame_pointer
Retrieve the frame pointer of function func. Returns NULL if out of memory.
jit_insn_get_function
Get the function for a call instruction. Returns NULL if the instruction does not refer to a called function.
jit_insn_get_label
Get the label for a branch target from an instruction. Returns NULL if the instruction does not have a branch target.
jit_insn_get_name
Get the diagnostic name for a function call. Returns NULL if the instruction does not have a diagnostic name.
jit_insn_get_native
Get the function pointer for a native call instruction. Returns NULL if the instruction does not refer to a native function call.
jit_insn_get_opcode
Get the opcode that is associated with an instruction.
jit_insn_get_parent_frame_pointer_of
Retrieve the frame pointer of the parent of target. Returns NULL when target is not a sibling, an ancestor, or a sibling of one of the ancestors of func. Returns NULL if out of memory.
jit_insn_get_signature
Get the signature for a function call instruction. Returns NULL if the instruction is not a function call.
jit_insn_get_value1
Get the first argument value that is associated with an instruction. Returns NULL if the instruction does not have a first argument value.
jit_insn_get_value2
Get the second argument value that is associated with an instruction. Returns NULL if the instruction does not have a second argument value.
jit_insn_gt
Compare two values for greater than and return the result in a new temporary value.
jit_insn_import
Import value from an outer nested scope into func. Returns the effective address of the value for local access via a pointer. Returns NULL if out of memory or the value is not accessible via a parent, grandparent, or other ancestor of func.
jit_insn_incoming_frame_posn
Output an instruction that notes that the contents of value can be found in the stack frame at frame_offset. This should only be called once per value, to prevent values from changing their address when they might be addressable.
jit_insn_incoming_reg
Output an instruction that notes that the contents of value can be found in the register reg at this point in the code.
jit_insn_is_finite
jit_insn_is_inf
jit_insn_is_nan
jit_insn_iter_init
Initialize an iterator to point to the first instruction in block.
jit_insn_iter_init_last
Initialize an iterator to point to the last instruction in block.
jit_insn_iter_next
Get the next instruction in an iterator’s block. Returns NULL when there are no further instructions in the block.
jit_insn_iter_previous
Get the previous instruction in an iterator’s block. Returns NULL when there are no further instructions in the block.
jit_insn_jump_table
Branch to a label from the labels table. The value is the index of the label. It is allowed to have identical labels in the table. If an entry in the table has jit_label_undefined value then it is replaced with a newly allocated label.
jit_insn_label
Start a new basic block within the function func and give it the specified label. Returns zero if out of memory.
jit_insn_label_tight
Start a new basic block within the function func and give it the specified label but attempt to reuse the last block if it is empty. Returns zero if out of memory. If the contents of label are jit_label_undefined, then this function will allocate a new label for this block. Otherwise it will reuse the specified label from a previous branch instruction.
jit_insn_le
Compare two values for less than or equal and return the result in a new temporary value.
jit_insn_load
Load the contents of value into a new temporary, essentially duplicating the value. Constants are not duplicated.
jit_insn_load_elem
Load an element of type elem_type from position index within the array starting at base_addr. The effective address of the array element is base_addr + index * sizeof(elem_type).
jit_insn_load_elem_address
Load the effective address of an element of type elem_type at position index within the array starting at base_addr. Essentially, this computes the expression base_addr + index * sizeof(elem_type), but may be more efficient than performing the steps with jit_insn_mul and jit_insn_add.
jit_insn_load_relative
Load a value of the specified type from the effective address (value + offset), where value is a pointer.
jit_insn_log
jit_insn_log10
jit_insn_lt
Compare two values for less than and return the result in a new temporary value.
jit_insn_mark_breakpoint
Mark the current position in func as corresponding to a breakpoint location. When a break occurs, the debugging routines are passed func, data1, and data2 as arguments. By convention, data1 is the type of breakpoint (source line, function entry, function exit, etc).
jit_insn_mark_breakpoint_variable
jit_insn_mark_offset
Mark the current position in func as corresponding to the specified bytecode offset. This value will be returned byw]lysw`jit_stack_trace_get_offset, and is useful for associating code positions with source line numbers.
jit_insn_max
jit_insn_memcpy
Copy the size bytes of memory at src to dest. It is assumed that the source and destination do not overlap.
jit_insn_memmove
Copy the size bytes of memory at src to dest. This is safe to use if the source and destination overlap.
jit_insn_memset
Set the size bytes at dest to value.
jit_insn_min
jit_insn_move_blocks_to_end
Move all of the blocks between from_label (inclusive) and to_label (exclusive) to the end of the current function. This is typically used to move the expression in a while loop to the end of the body, where it can be executed more efficiently.
jit_insn_move_blocks_to_start
Move all of the blocks between from_label (inclusive) and to_label (exclusive) to the start of the current function. This is typically used to move initialization code to the head of the function.
jit_insn_mul
Multiply two values and return the result in a new temporary value.
jit_insn_mul_ovf
Multiply two values and return the result in a new temporary value. Throw an exception if overflow occurs.
jit_insn_ne
Compare two values for inequality and return the result in a new temporary value.
jit_insn_neg
Negate a value and return the result in a new temporary value.
jit_insn_new_block
Start a new basic block, without giving it an explicit label. Returns a non-zero value on success.
jit_insn_nop
Emits “no operation” instruction. You may want to do that if you need an empty block to move it with jit_insn_move_blocks_XXX later. If you will not put empty instruction between two labels, both labels will point to the same block, and block moving will fail.
jit_insn_not
Bitwise NOT a value and return the result in a new temporary value.
jit_insn_or
Bitwise OR two values and return the result in a new temporary value.
jit_insn_outgoing_frame_posn
Output an instruction that stores the contents of value in the stack frame at frame_offset.
jit_insn_outgoing_reg
Output an instruction that copies the contents of value into the register reg at this point in the code. This is typically used just before making an outgoing subroutine call.
jit_insn_pop_stack
Pop num_items items from the function call stack. You normally wouldn’t call this yourself - it is used by CPU back ends to clean up the stack after calling a subroutine. The size of an item is specific to the back end (it could be bytes, words, or some other measurement).
jit_insn_pow
jit_insn_push
Push a value onto the function call stack, in preparation for a call. You normally wouldn’t call this yourself - it is used internally by the CPU back ends to set up the stack for a subroutine call.
jit_insn_push_ptr
Push *value onto the function call stack, in preparation for a call. This is normally used for returning struct and union values where you have the effective address of the structure, rather than the structure’s contents, in value.
jit_insn_push_return_area_ptr
Push the interpreter’s return area pointer onto the stack. You normally wouldn’t call this yourself - it is used internally by the CPU back ends to set up the stack for a subroutine call.
jit_insn_rem
Divide two values and return the remainder in a new temporary value. Throws an exception on division by zero or arithmetic error (an arithmetic error is one where the minimum possible signed integer value is divided by -1).
jit_insn_rem_ieee
Divide two values and return the remainder in a new temporary value. Throws an exception on division by zero or arithmetic error (an arithmetic error is one where the minimum possible signed integer value is divided by -1). This function is identical to jit_insn_rem, except that it uses IEEE rules for computing the remainder of floating-point values.
jit_insn_rethrow_unhandled
Rethrow the current exception because it cannot be handled by any of the catch blocks in the current function.
jit_insn_return
Output an instruction to return value as the function’s result. If value is NULL, then the function is assumed to return void. If the function returns a structure, this will copy the value into the memory at the structure return address.
jit_insn_return_from_filter
Return from a filter subroutine with the specified value as its result.
jit_insn_return_from_finally
Return from the finally clause to where it was called from. This is usually the last instruction in a finally clause.
jit_insn_return_ptr
Output an instruction to return *value as the function’s result. This is normally used for returning struct and union values where you have the effective address of the structure, rather than the structure’s contents, in value.
jit_insn_return_reg
Output an instruction that notes that the contents of value can be found in the register reg at this point in the code. This is similar to jit_insn_incoming_reg, except that it refers to return values, not parameter values.
jit_insn_rint
Round value1 to the nearest integer. Half-way cases are rounded to the even number.
jit_insn_round
Round value1 to the nearest integer. Half-way cases are rounded away from zero.
jit_insn_set_param
Set the parameter slot at offset in the outgoing parameter area to value. This may be used instead of jit_insn_push if it is more efficient to store directly to the stack than to push. The outgoing parameter area is allocated within the frame when the function is first entered.
jit_insn_set_param_ptr
Same as jit_insn_set_param, except that the parameter is at *value.
jit_insn_setup_for_nested
jit_insn_shl
Perform a bitwise left shift on two values and return the result in a new temporary value.
jit_insn_shr
Perform a bitwise right shift on two values and return the result in a new temporary value. This performs a signed shift on signed operators, and an unsigned shift on unsigned operands.
jit_insn_sign
jit_insn_sin
jit_insn_sinh
jit_insn_sqrt
jit_insn_sshr
Perform a bitwise right shift on two values and return the result in a new temporary value. This performs an signed shift on both signed and unsigned operands.
jit_insn_start_catcher
Start the catcher block for func. There should be exactly one catcher block for any function that involves a try. All exceptions that are thrown within the function will cause control to jump to this point. Returns a value that holds the exception that was thrown.
jit_insn_start_filter
Define the start of a filter. Filters are embedded subroutines within functions that are used to filter exceptions in catch blocks.
jit_insn_start_finally
Start a finally clause.
jit_insn_store
Store the contents of value at the location referred to by dest. The dest should be a jit_value_t representing a local variable or temporary. Use jit_insn_store_relative to store to a location referred to by a pointer.
jit_insn_store_elem
Store value at position index of the array starting at base_addr. The effective address of the storage location is base_addr + index * sizeof(jit_value_get_type(value)).
jit_insn_store_relative
Store value at the effective address (dest + offset), where dest is a pointer. Returns a non-zero value on success.
jit_insn_sub
Subtract two values and return the result in a new temporary value.
jit_insn_sub_ovf
Subtract two values and return the result in a new temporary value. Throw an exception if overflow occurs.
jit_insn_tan
jit_insn_tanh
jit_insn_throw
Throw a pointer value as an exception object. This can also be used to “rethrow” an object from a catch handler that is not interested in handling the exception.
jit_insn_thrown_exception
Get the value that holds the most recent thrown exception. This is typically used in catch clauses.
jit_insn_to_bool
Convert a value into a boolean 0 or 1 result of type jit_type_int.
jit_insn_to_not_bool
Convert a value into a boolean 1 or 0 result of type jit_type_int (i.e. the inverse of jit_insn_to_bool).
jit_insn_trunc
Round value1 towards zero.
jit_insn_uses_catcher
Notify the function building process that func contains some form of catch clause for catching exceptions. This must be called before any instruction that is covered by a try, ideally at the start of the function output process.
jit_insn_ushr
Perform a bitwise right shift on two values and return the result in a new temporary value. This performs an unsigned shift on both signed and unsigned operands.
jit_insn_xor
Bitwise XOR two values and return the result in a new temporary value.
jit_int_abs
jit_int_add
jit_int_add_ovf
jit_int_and
jit_int_cmp
jit_int_div
jit_int_div_ovf
jit_int_eq
jit_int_ge
jit_int_gt
jit_int_le
jit_int_lt
jit_int_max
jit_int_min
jit_int_mul
jit_int_mul_ovf
jit_int_ne
jit_int_neg
jit_int_not
jit_int_or
jit_int_rem
jit_int_rem_ovf
jit_int_shl
jit_int_shr
jit_int_sign
jit_int_sub
jit_int_sub_ovf
jit_int_to_float32
jit_int_to_float64
jit_int_to_int
jit_int_to_int_ovf
jit_int_to_long
jit_int_to_long_ovf
jit_int_to_nfloat
jit_int_to_sbyte
jit_int_to_sbyte_ovf
jit_int_to_short
jit_int_to_short_ovf
jit_int_to_ubyte
jit_int_to_ubyte_ovf
jit_int_to_uint
jit_int_to_uint_ovf
jit_int_to_ulong
jit_int_to_ulong_ovf
jit_int_to_ushort
jit_int_to_ushort_ovf
jit_int_xor
jit_long_abs
jit_long_add
jit_long_add_ovf
jit_long_and
jit_long_cmp
jit_long_div
jit_long_div_ovf
jit_long_eq
jit_long_ge
jit_long_gt
jit_long_le
jit_long_lt
jit_long_max
jit_long_min
jit_long_mul
jit_long_mul_ovf
jit_long_ne
jit_long_neg
jit_long_not
jit_long_or
jit_long_rem
jit_long_rem_ovf
jit_long_shl
jit_long_shr
jit_long_sign
jit_long_sub
jit_long_sub_ovf
jit_long_to_float32
jit_long_to_float64
jit_long_to_int
jit_long_to_int_ovf
jit_long_to_long
jit_long_to_long_ovf
jit_long_to_nfloat
jit_long_to_uint
jit_long_to_uint_ovf
jit_long_to_ulong
jit_long_to_ulong_ovf
jit_long_xor
jit_malloc
jit_memchr
jit_memcmp
jit_memcpy
jit_memmove
jit_memset
jit_meta_destroy
jit_meta_free
jit_meta_get
jit_meta_set
jit_nfloat_abs
jit_nfloat_acos
jit_nfloat_add
jit_nfloat_asin
jit_nfloat_atan
jit_nfloat_atan2
jit_nfloat_ceil
jit_nfloat_cmpg
jit_nfloat_cmpl
jit_nfloat_cos
jit_nfloat_cosh
jit_nfloat_div
jit_nfloat_eq
jit_nfloat_exp
jit_nfloat_floor
jit_nfloat_ge
jit_nfloat_gt
jit_nfloat_ieee_rem
jit_nfloat_is_finite
jit_nfloat_is_inf
jit_nfloat_is_nan
jit_nfloat_le
jit_nfloat_log
jit_nfloat_log10
jit_nfloat_lt
jit_nfloat_max
jit_nfloat_min
jit_nfloat_mul
jit_nfloat_ne
jit_nfloat_neg
jit_nfloat_pow
jit_nfloat_rem
jit_nfloat_rint
jit_nfloat_round
jit_nfloat_sign
jit_nfloat_sin
jit_nfloat_sinh
jit_nfloat_sqrt
jit_nfloat_sub
jit_nfloat_tan
jit_nfloat_tanh
jit_nfloat_to_float32
jit_nfloat_to_float64
jit_nfloat_to_int
jit_nfloat_to_int_ovf
jit_nfloat_to_long
jit_nfloat_to_long_ovf
jit_nfloat_to_uint
jit_nfloat_to_uint_ovf
jit_nfloat_to_ulong
jit_nfloat_to_ulong_ovf
jit_nfloat_trunc
jit_optimize
jit_raw_supported
jit_readelf_add_to_context
jit_readelf_close
jit_readelf_get_name
jit_readelf_get_needed
jit_readelf_get_section
jit_readelf_get_section_by_type
jit_readelf_get_symbol
jit_readelf_map_vaddr
jit_readelf_num_needed
jit_readelf_open
jit_readelf_register_symbol
jit_readelf_resolve_all
jit_realloc
jit_snprintf
jit_sprintf
jit_stack_trace_free
Free the memory associated with a stack trace.
jit_stack_trace_get_function
Get the function that is at position posn within a stack trace. Position 0 is the function that created the stack trace. If this returns NULL, then it indicates that there is a native callout at posn within the stack trace.
jit_stack_trace_get_offset
Get the bytecode offset that is recorded for position posn within a stack trace. This will be JIT_NO_OFFSET if there is no bytecode offset associated with posn.
jit_stack_trace_get_pc
Get the program counter that corresponds to position posn within a stack trace. This is the point within the function where execution had reached at the time of the trace.
jit_stack_trace_get_size
Get the size of a stack trace.
jit_strcat
jit_strchr
jit_strcmp
jit_strcpy
jit_strdup
jit_stricmp
jit_strlen
jit_strncmp
jit_strncpy
jit_strndup
jit_strnicmp
jit_strrchr
jit_supports_closures
jit_supports_threads
jit_supports_virtual_memory
jit_type_best_alignment
jit_type_copy
jit_type_create_pointer
jit_type_create_signature
jit_type_create_struct
jit_type_create_tagged
jit_type_create_union
jit_type_find_name
jit_type_free
jit_type_get_abi
jit_type_get_alignment
jit_type_get_field
jit_type_get_kind
jit_type_get_name
jit_type_get_offset
jit_type_get_param
jit_type_get_ref
jit_type_get_return
jit_type_get_size
jit_type_get_tagged_data
jit_type_get_tagged_kind
jit_type_get_tagged_type
jit_type_has_tag
jit_type_is_pointer
jit_type_is_primitive
jit_type_is_signature
jit_type_is_struct
jit_type_is_tagged
jit_type_is_union
jit_type_normalize
jit_type_num_fields
jit_type_num_params
jit_type_promote_int
jit_type_remove_tags
jit_type_return_via_pointer
jit_type_set_names
jit_type_set_offset
jit_type_set_size_and_alignment
jit_type_set_tagged_data
jit_type_set_tagged_type
jit_uint_add
jit_uint_add_ovf
jit_uint_and
jit_uint_cmp
jit_uint_div
jit_uint_div_ovf
jit_uint_eq
jit_uint_ge
jit_uint_gt
jit_uint_le
jit_uint_lt
jit_uint_max
jit_uint_min
jit_uint_mul
jit_uint_mul_ovf
jit_uint_ne
jit_uint_neg
jit_uint_not
jit_uint_or
jit_uint_rem
jit_uint_rem_ovf
jit_uint_shl
jit_uint_shr
jit_uint_sub
jit_uint_sub_ovf
jit_uint_to_float32
jit_uint_to_float64
jit_uint_to_int
jit_uint_to_int_ovf
jit_uint_to_long
jit_uint_to_long_ovf
jit_uint_to_nfloat
jit_uint_to_uint
jit_uint_to_uint_ovf
jit_uint_to_ulong
jit_uint_to_ulong_ovf
jit_uint_xor
jit_ulong_add
jit_ulong_add_ovf
jit_ulong_and
jit_ulong_cmp
jit_ulong_div
jit_ulong_div_ovf
jit_ulong_eq
jit_ulong_ge
jit_ulong_gt
jit_ulong_le
jit_ulong_lt
jit_ulong_max
jit_ulong_min
jit_ulong_mul
jit_ulong_mul_ovf
jit_ulong_ne
jit_ulong_neg
jit_ulong_not
jit_ulong_or
jit_ulong_rem
jit_ulong_rem_ovf
jit_ulong_shl
jit_ulong_shr
jit_ulong_sub
jit_ulong_sub_ovf
jit_ulong_to_float32
jit_ulong_to_float64
jit_ulong_to_int
jit_ulong_to_int_ovf
jit_ulong_to_long
jit_ulong_to_long_ovf
jit_ulong_to_nfloat
jit_ulong_to_uint
jit_ulong_to_uint_ovf
jit_ulong_to_ulong
jit_ulong_to_ulong_ovf
jit_ulong_xor
jit_unwind_free
jit_unwind_get_function
jit_unwind_get_offset
jit_unwind_get_pc
jit_unwind_init
jit_unwind_jump
jit_unwind_next
jit_unwind_next_pc
jit_uses_interpreter
jit_value_create
Create a new value in the context of a function’s current block. The value initially starts off as a block-specific temporary. It will be converted into a function-wide local variable if it is ever referenced from a different block. Returns NULL if out of memory.
jit_value_create_constant
Create a new constant from a generic constant structure in the specified function. Returns NULL if out of memory or if the type in const_value is not suitable for a constant.
jit_value_create_float32_constant
Create a new 32-bit floating-point constant in the specified function. Returns NULL if out of memory.
jit_value_create_float64_constant
Create a new 64-bit floating-point constant in the specified function. Returns NULL if out of memory.
jit_value_create_long_constant
Create a new 64-bit integer constant in the specified function. This can also be used to create constants of type jit_type_ulong. Returns NULL if out of memory.
jit_value_create_nfloat_constant
Create a new native floating-point constant in the specified function. Returns NULL if out of memory.
jit_value_create_nint_constant
Create a new native integer constant in the specified function. Returns NULL if out of memory.
jit_value_get_block
Get the block which owns a particular value.
jit_value_get_constant
Get the constant value within a particular value. The returned structure’s type field will be jit_type_void if value is not a constant.
jit_value_get_context
Get the context which owns a particular value.
jit_value_get_float32_constant
Get the constant value within a particular value, assuming that its type is compatible with jit_type_float32.
jit_value_get_float64_constant
Get the constant value within a particular value, assuming that its type is compatible with jit_type_float64.
jit_value_get_function
Get the function which owns a particular value.
jit_value_get_long_constant
Get the constant value within a particular value, assuming that its type is compatible with jit_type_long.
jit_value_get_nfloat_constant
Get the constant value within a particular value, assuming that its type is compatible with jit_type_nfloat.
jit_value_get_nint_constant
Get the constant value within a particular value, assuming that its type is compatible with jit_type_nint.
jit_value_get_param
Get the value that corresponds to a specified function parameter. Returns NULL if out of memory or param is invalid.
jit_value_get_struct_pointer
Get the value that contains the structure return pointer for a function. If the function does not have a structure return pointer (i.e. structures are returned in registers), then this returns NULL.
jit_value_get_type
Get the type that is associated with a value.
jit_value_is_addressable
Determine if a value is addressable.
jit_value_is_constant
Determine if a value is a constant.
jit_value_is_local
Determine if a value is local. i.e. its scope extends over multiple blocks within its function.
jit_value_is_parameter
Determine if a value is a function parameter.
jit_value_is_temporary
Determine if a value is temporary. i.e. its scope extends over a single block within its function.
jit_value_is_true
Determine if value is constant and non-zero.
jit_value_is_volatile
Determine if a value is volatile.
jit_value_ref
Create a reference to the specified value from the current block in func. This will convert a temporary value into a local value if value is being referenced from a different block than its original.
jit_value_set_addressable
Set a flag on a value to indicate that it is addressable. This should be used when you want to take the address of a value (e.g. &variable in C). The value is guaranteed to not be stored in a register across a function call. If you refer to a value from a nested function (jit_value_ref), then the value will be automatically marked as addressable.
jit_value_set_volatile
Set a flag on a value to indicate that it is volatile. The contents of the value must always be reloaded from memory, never from a cached register copy.
jit_vmem_commit
jit_vmem_decommit
jit_vmem_init
jit_vmem_page_size
jit_vmem_protect
jit_vmem_release
jit_vmem_reserve
jit_vmem_reserve_committed
jit_vmem_round_down
jit_vmem_round_up
jit_writeelf_add_function
jit_writeelf_add_needed
jit_writeelf_create
jit_writeelf_destroy
jit_writeelf_write
jit_writeelf_write_section
jitom_class_add_ref
jitom_class_delete
jitom_class_get_all_supers
jitom_class_get_fields
jitom_class_get_interfaces
jitom_class_get_methods
jitom_class_get_modifiers
jitom_class_get_name
jitom_class_get_primary_super
jitom_class_get_type
jitom_class_get_value_type
jitom_class_new
jitom_class_new_value
jitom_destroy_model
jitom_field_get_modifiers
jitom_field_get_name
jitom_field_get_type
jitom_field_load
jitom_field_load_address
jitom_field_store
jitom_get_class_by_name
jitom_method_get_modifiers
jitom_method_get_name
jitom_method_get_type
jitom_method_invoke
jitom_method_invoke_virtual
jitom_type_get_class
jitom_type_get_model
jitom_type_is_class
jitom_type_is_value
jitom_type_tag_as_class
jitom_type_tag_as_value

Type Aliases§

__builtin_va_list
_jit_arch_frame_t
_jit_block
_jit_context
_jit_function
_jit_insn
_jit_meta
_jit_type
_jit_value
jit_abi_t
jit_block_t
jit_closure_func
jit_closure_va_list
jit_closure_va_list_t
jit_context_t
jit_debugger
jit_debugger_breakpoint_id_t
jit_debugger_breakpoint_info_t
jit_debugger_event_t
jit_debugger_hook_func
jit_debugger_t
jit_debugger_thread_id_t
jit_exception_func
jit_float32
jit_float64
jit_function_info_t
jit_function_t
jit_insn_t
jit_int
jit_label_t
jit_long
jit_memory_context_t
jit_memory_manager_t
jit_meta_free_func
jit_meta_t
jit_nfloat
jit_nint
jit_nuint
jit_objmodel
jit_objmodel_t
jit_on_demand_driver_func
jit_on_demand_func
jit_opcode_info_t
jit_prot_t
jit_ptr
jit_readelf
jit_readelf_t
jit_sbyte
jit_short
jit_size_t
jit_stack_trace
jit_stack_trace_t
jit_type_t
jit_ubyte
jit_uint
jit_ulong
jit_ushort
jit_value_t
jit_writeelf
jit_writeelf_t
jitom_class
jitom_class_t
jitom_field
jitom_field_t
jitom_method
jitom_method_t

Unions§

jit_constant_t__bindgen_ty_1