NCBI C++ ToolKit
Macros | Typedefs | Functions | Variables
sljitNativeARM_64.c File Reference

Go to the source code of this file.

Go to the SVN repository for this file.

Macros

#define TMP_ZERO   (0)
 
#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)
 
#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)
 
#define TMP_LR   (SLJIT_NUMBER_OF_REGISTERS + 4)
 
#define TMP_FP   (SLJIT_NUMBER_OF_REGISTERS + 5)
 
#define TMP_FREG1   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
 
#define TMP_FREG2   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
 
#define W_OP   ((sljit_ins)1 << 31)
 
#define RD(rd)   ((sljit_ins)reg_map[rd])
 
#define RT(rt)   ((sljit_ins)reg_map[rt])
 
#define RN(rn)   ((sljit_ins)reg_map[rn] << 5)
 
#define RT2(rt2)   ((sljit_ins)reg_map[rt2] << 10)
 
#define RM(rm)   ((sljit_ins)reg_map[rm] << 16)
 
#define VD(vd)   ((sljit_ins)freg_map[vd])
 
#define VT(vt)   ((sljit_ins)freg_map[vt])
 
#define VT2(vt)   ((sljit_ins)freg_map[vt] << 10)
 
#define VN(vn)   ((sljit_ins)freg_map[vn] << 5)
 
#define VM(vm)   ((sljit_ins)freg_map[vm] << 16)
 
#define ADC   0x9a000000
 
#define ADD   0x8b000000
 
#define ADDE   0x8b200000
 
#define ADDI   0x91000000
 
#define ADR   0x10000000
 
#define ADRP   0x90000000
 
#define AND   0x8a000000
 
#define ANDI   0x92000000
 
#define AND_v   0x0e201c00
 
#define ASRV   0x9ac02800
 
#define B   0x14000000
 
#define B_CC   0x54000000
 
#define BL   0x94000000
 
#define BLR   0xd63f0000
 
#define BR   0xd61f0000
 
#define BRK   0xd4200000
 
#define CAS   0xc8a07c00
 
#define CASB   0x08a07c00
 
#define CASH   0x48a07c00
 
#define CBZ   0xb4000000
 
#define CCMPI   0xfa400800
 
#define CLZ   0xdac01000
 
#define CSEL   0x9a800000
 
#define CSINC   0x9a800400
 
#define DUP_e   0x0e000400
 
#define DUP_g   0x0e000c00
 
#define EOR   0xca000000
 
#define EOR_v   0x2e201c00
 
#define EORI   0xd2000000
 
#define EXTR   0x93c00000
 
#define FABS   0x1e60c000
 
#define FADD   0x1e602800
 
#define FCMP   0x1e602000
 
#define FCSEL   0x1e600c00
 
#define FCVT   0x1e224000
 
#define FCVTL   0x0e217800
 
#define FCVTZS   0x9e780000
 
#define FDIV   0x1e601800
 
#define FMOV   0x1e604000
 
#define FMOV_R   0x9e660000
 
#define FMOV_I   0x1e601000
 
#define FMUL   0x1e600800
 
#define FNEG   0x1e614000
 
#define FSUB   0x1e603800
 
#define INS   0x4e001c00
 
#define INS_e   0x6e000400
 
#define LD1   0x0c407000
 
#define LD1_s   0x0d400000
 
#define LD1R   0x0d40c000
 
#define LDRI   0xf9400000
 
#define LDRI_F64   0xfd400000
 
#define LDRI_POST   0xf8400400
 
#define LDP   0xa9400000
 
#define LDP_F64   0x6d400000
 
#define LDP_POST   0xa8c00000
 
#define LDR_PRE   0xf8400c00
 
#define LDXR   0xc85f7c00
 
#define LDXRB   0x085f7c00
 
#define LDXRH   0x485f7c00
 
#define LSLV   0x9ac02000
 
#define LSRV   0x9ac02400
 
#define MADD   0x9b000000
 
#define MOVI   0x0f000400
 
#define MOVK   0xf2800000
 
#define MOVN   0x92800000
 
#define MOVZ   0xd2800000
 
#define NOP   0xd503201f
 
#define ORN   0xaa200000
 
#define ORR   0xaa000000
 
#define ORR_v   0x0ea01c00
 
#define ORRI   0xb2000000
 
#define RBIT   0xdac00000
 
#define RET   0xd65f0000
 
#define REV   0xdac00c00
 
#define REV16   0xdac00400
 
#define RORV   0x9ac02c00
 
#define SBC   0xda000000
 
#define SBFM   0x93400000
 
#define SCVTF   0x9e620000
 
#define SDIV   0x9ac00c00
 
#define SMADDL   0x9b200000
 
#define SMOV   0x0e002c00
 
#define SMULH   0x9b403c00
 
#define SSHLL   0x0f00a400
 
#define ST1   0x0c007000
 
#define ST1_s   0x0d000000
 
#define STP   0xa9000000
 
#define STP_F64   0x6d000000
 
#define STP_PRE   0xa9800000
 
#define STRB   0x38206800
 
#define STRBI   0x39000000
 
#define STRI   0xf9000000
 
#define STRI_F64   0xfd000000
 
#define STR_FI   0x3d000000
 
#define STR_FR   0x3c206800
 
#define STUR_FI   0x3c000000
 
#define STURBI   0x38000000
 
#define STXR   0xc8007c00
 
#define STXRB   0x8007c00
 
#define STXRH   0x48007c00
 
#define SUB   0xcb000000
 
#define SUBI   0xd1000000
 
#define SUBS   0xeb000000
 
#define TBZ   0x36000000
 
#define UBFM   0xd3400000
 
#define UCVTF   0x9e630000
 
#define UDIV   0x9ac00800
 
#define UMOV   0x0e003c00
 
#define UMULH   0x9bc03c00
 
#define USHLL   0x2f00a400
 
#define USHR   0x2f000400
 
#define USRA   0x2f001400
 
#define XTN   0x0e212800
 
#define CSET   (CSINC | RM(TMP_ZERO) | RN(TMP_ZERO))
 
#define LDR   (STRI | (1 << 22))
 
#define LDRB   (STRBI | (1 << 22))
 
#define LDRH   (LDRB | (1 << 30))
 
#define MOV   (ORR | RN(TMP_ZERO))
 
#define COUNT_TRAILING_ZERO(value, result)
 
#define LOGICAL_IMM_CHECK   (sljit_ins)0x100
 
#define ARG1_IMM   0x0010000
 
#define ARG2_IMM   0x0020000
 
#define INT_OP   0x0040000
 
#define SET_FLAGS   0x0080000
 
#define UNUSED_RETURN   0x0100000
 
#define CHECK_FLAGS(flag_bits)
 
#define STORE   0x10
 
#define SIGNED   0x20
 
#define BYTE_SIZE   0x0
 
#define HALF_SIZE   0x1
 
#define INT_SIZE   0x2
 
#define WORD_SIZE   0x3
 
#define MEM_SIZE_SHIFT(flags)   ((sljit_ins)(flags) & 0x3)
 

Typedefs

typedef sljit_u32 sljit_ins
 

Functions

SLJIT_API_FUNC_ATTRIBUTE const char * sljit_get_platform_name (void)
 
static sljit_s32 push_inst (struct sljit_compiler *compiler, sljit_ins ins)
 
static SLJIT_INLINE sljit_s32 emit_imm64_const (struct sljit_compiler *compiler, sljit_s32 dst, sljit_uw imm)
 
static SLJIT_INLINE sljit_insdetect_jump_type (struct sljit_jump *jump, sljit_ins *code_ptr, sljit_ins *code, sljit_sw executable_offset)
 
static SLJIT_INLINE sljit_sw mov_addr_get_length (struct sljit_jump *jump, sljit_ins *code_ptr, sljit_ins *code, sljit_sw executable_offset)
 
static SLJIT_INLINE void generate_jump_or_mov_addr (struct sljit_jump *jump, sljit_sw executable_offset)
 
static void reduce_code_size (struct sljit_compiler *compiler)
 
SLJIT_API_FUNC_ATTRIBUTE void * sljit_generate_code (struct sljit_compiler *compiler, sljit_s32 options, void *exec_allocator_data)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature (sljit_s32 feature_type)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_cmp_info (sljit_s32 type)
 
static sljit_ins logical_imm (sljit_sw imm, sljit_u32 len)
 
static sljit_s32 load_immediate (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw simm)
 
static sljit_s32 emit_op_imm (struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 dst, sljit_sw arg1, sljit_sw arg2)
 
static sljit_s32 emit_op_mem (struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw, sljit_s32 tmp_reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter (struct sljit_compiler *compiler, sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context (struct sljit_compiler *compiler, sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size)
 
static sljit_s32 emit_stack_frame_release (struct sljit_compiler *compiler, sljit_s32 is_return_to)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_void (struct sljit_compiler *compiler)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_to (struct sljit_compiler *compiler, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0 (struct sljit_compiler *compiler, sljit_s32 op)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2r (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst_reg, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_shift_into (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst_reg, sljit_s32 src1_reg, sljit_s32 src2_reg, sljit_s32 src3, sljit_sw src3w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_dst (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index (sljit_s32 type, sljit_s32 reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom (struct sljit_compiler *compiler, void *instruction, sljit_u32 size)
 
static sljit_s32 emit_fop_mem (struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw)
 
static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
 
static sljit_s32 sljit_emit_fop1_conv_f64_from_w (struct sljit_compiler *compiler, sljit_ins ins, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
 
static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
 
static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_uw (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
 
static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fset32 (struct sljit_compiler *compiler, sljit_s32 freg, sljit_f32 value)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fset64 (struct sljit_compiler *compiler, sljit_s32 freg, sljit_f64 value)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fcopy (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 freg, sljit_s32 reg)
 
static sljit_ins get_cc (struct sljit_compiler *compiler, sljit_s32 type)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_labelsljit_emit_label (struct sljit_compiler *compiler)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_jump (struct sljit_compiler *compiler, sljit_s32 type)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_call (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 arg_types)
 
static SLJIT_INLINE struct sljit_jumpemit_cmp_to0 (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 arg_types, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 type)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_select (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 dst_reg, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2_reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fselect (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 dst_freg, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2_freg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 reg, sljit_s32 mem, sljit_sw memw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem_update (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 reg, sljit_s32 mem, sljit_sw memw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem_update (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 freg, sljit_s32 mem, sljit_sw memw)
 
static sljit_s32 sljit_emit_simd_mem_offset (struct sljit_compiler *compiler, sljit_s32 *mem_ptr, sljit_sw memw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_mov (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 freg, sljit_s32 srcdst, sljit_sw srcdstw)
 
static sljit_ins simd_get_imm (sljit_s32 elem_size, sljit_uw value)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_replicate (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 freg, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_lane_mov (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 freg, sljit_s32 lane_index, sljit_s32 srcdst, sljit_sw srcdstw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_lane_replicate (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 freg, sljit_s32 src, sljit_s32 src_lane_index)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_extend (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 freg, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_sign (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 freg, sljit_s32 dst, sljit_sw dstw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_op2 (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 dst_freg, sljit_s32 src1_freg, sljit_s32 src2_freg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_atomic_load (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst_reg, sljit_s32 mem_reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_atomic_store (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src_reg, sljit_s32 mem_reg, sljit_s32 temp_reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_constsljit_emit_const (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_mov_addr (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw)
 
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_jump_addr (sljit_uw addr, sljit_uw new_target, sljit_sw executable_offset)
 
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const (sljit_uw addr, sljit_sw new_constant, sljit_sw executable_offset)
 

Variables

static const sljit_u8 reg_map [SLJIT_NUMBER_OF_REGISTERS+8]
 
static const sljit_u8 freg_map [SLJIT_NUMBER_OF_FLOAT_REGISTERS+3]
 

Macro Definition Documentation

◆ ADC

#define ADC   0x9a000000

Definition at line 70 of file sljitNativeARM_64.c.

◆ ADD

#define ADD   0x8b000000

Definition at line 71 of file sljitNativeARM_64.c.

◆ ADDE

#define ADDE   0x8b200000

Definition at line 72 of file sljitNativeARM_64.c.

◆ ADDI

#define ADDI   0x91000000

Definition at line 73 of file sljitNativeARM_64.c.

◆ ADR

#define ADR   0x10000000

Definition at line 74 of file sljitNativeARM_64.c.

◆ ADRP

#define ADRP   0x90000000

Definition at line 75 of file sljitNativeARM_64.c.

◆ AND

#define AND   0x8a000000

Definition at line 76 of file sljitNativeARM_64.c.

◆ AND_v

#define AND_v   0x0e201c00

Definition at line 78 of file sljitNativeARM_64.c.

◆ ANDI

#define ANDI   0x92000000

Definition at line 77 of file sljitNativeARM_64.c.

◆ ARG1_IMM

#define ARG1_IMM   0x0010000

Definition at line 803 of file sljitNativeARM_64.c.

◆ ARG2_IMM

#define ARG2_IMM   0x0020000

Definition at line 804 of file sljitNativeARM_64.c.

◆ ASRV

#define ASRV   0x9ac02800

Definition at line 79 of file sljitNativeARM_64.c.

◆ B

#define B   0x14000000

Definition at line 80 of file sljitNativeARM_64.c.

◆ B_CC

#define B_CC   0x54000000

Definition at line 81 of file sljitNativeARM_64.c.

◆ BL

#define BL   0x94000000

Definition at line 82 of file sljitNativeARM_64.c.

◆ BLR

#define BLR   0xd63f0000

Definition at line 83 of file sljitNativeARM_64.c.

◆ BR

#define BR   0xd61f0000

Definition at line 84 of file sljitNativeARM_64.c.

◆ BRK

#define BRK   0xd4200000

Definition at line 85 of file sljitNativeARM_64.c.

◆ BYTE_SIZE

#define BYTE_SIZE   0x0

Definition at line 1125 of file sljitNativeARM_64.c.

◆ CAS

#define CAS   0xc8a07c00

Definition at line 86 of file sljitNativeARM_64.c.

◆ CASB

#define CASB   0x08a07c00

Definition at line 87 of file sljitNativeARM_64.c.

◆ CASH

#define CASH   0x48a07c00

Definition at line 88 of file sljitNativeARM_64.c.

◆ CBZ

#define CBZ   0xb4000000

Definition at line 89 of file sljitNativeARM_64.c.

◆ CCMPI

#define CCMPI   0xfa400800

Definition at line 90 of file sljitNativeARM_64.c.

◆ CHECK_FLAGS

#define CHECK_FLAGS (   flag_bits)
Value:
if (flags & SET_FLAGS) { \
inv_bits |= flag_bits; \
dst = TMP_ZERO; \
}
static uch flags
#define UNUSED_RETURN
#define SET_FLAGS
#define TMP_ZERO

Definition at line 809 of file sljitNativeARM_64.c.

◆ CLZ

#define CLZ   0xdac01000

Definition at line 91 of file sljitNativeARM_64.c.

◆ COUNT_TRAILING_ZERO

#define COUNT_TRAILING_ZERO (   value,
  result 
)
Value:
result = 0; \
if (!(value & 0xffffffff)) { \
result += 32; \
value >>= 32; \
} \
if (!(value & 0xffff)) { \
result += 16; \
value >>= 16; \
} \
if (!(value & 0xff)) { \
result += 8; \
value >>= 8; \
} \
if (!(value & 0xf)) { \
result += 4; \
value >>= 4; \
} \
if (!(value & 0x3)) { \
result += 2; \
value >>= 2; \
} \
if (!(value & 0x1)) { \
result += 1; \
value >>= 1; \
}
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1227
else result
Definition: token2.c:20

Definition at line 618 of file sljitNativeARM_64.c.

◆ CSEL

#define CSEL   0x9a800000

Definition at line 92 of file sljitNativeARM_64.c.

◆ CSET

#define CSET   (CSINC | RM(TMP_ZERO) | RN(TMP_ZERO))

Definition at line 184 of file sljitNativeARM_64.c.

◆ CSINC

#define CSINC   0x9a800400

Definition at line 93 of file sljitNativeARM_64.c.

◆ DUP_e

#define DUP_e   0x0e000400

Definition at line 94 of file sljitNativeARM_64.c.

◆ DUP_g

#define DUP_g   0x0e000c00

Definition at line 95 of file sljitNativeARM_64.c.

◆ EOR

#define EOR   0xca000000

Definition at line 96 of file sljitNativeARM_64.c.

◆ EOR_v

#define EOR_v   0x2e201c00

Definition at line 97 of file sljitNativeARM_64.c.

◆ EORI

#define EORI   0xd2000000

Definition at line 98 of file sljitNativeARM_64.c.

◆ EXTR

#define EXTR   0x93c00000

Definition at line 99 of file sljitNativeARM_64.c.

◆ FABS

#define FABS   0x1e60c000

Definition at line 100 of file sljitNativeARM_64.c.

◆ FADD

#define FADD   0x1e602800

Definition at line 101 of file sljitNativeARM_64.c.

◆ FCMP

#define FCMP   0x1e602000

Definition at line 102 of file sljitNativeARM_64.c.

◆ FCSEL

#define FCSEL   0x1e600c00

Definition at line 103 of file sljitNativeARM_64.c.

◆ FCVT

#define FCVT   0x1e224000

Definition at line 104 of file sljitNativeARM_64.c.

◆ FCVTL

#define FCVTL   0x0e217800

Definition at line 105 of file sljitNativeARM_64.c.

◆ FCVTZS

#define FCVTZS   0x9e780000

Definition at line 106 of file sljitNativeARM_64.c.

◆ FDIV

#define FDIV   0x1e601800

Definition at line 107 of file sljitNativeARM_64.c.

◆ FMOV

#define FMOV   0x1e604000

Definition at line 108 of file sljitNativeARM_64.c.

◆ FMOV_I

#define FMOV_I   0x1e601000

Definition at line 110 of file sljitNativeARM_64.c.

◆ FMOV_R

#define FMOV_R   0x9e660000

Definition at line 109 of file sljitNativeARM_64.c.

◆ FMUL

#define FMUL   0x1e600800

Definition at line 111 of file sljitNativeARM_64.c.

◆ FNEG

#define FNEG   0x1e614000

Definition at line 112 of file sljitNativeARM_64.c.

◆ FSUB

#define FSUB   0x1e603800

Definition at line 113 of file sljitNativeARM_64.c.

◆ HALF_SIZE

#define HALF_SIZE   0x1

Definition at line 1126 of file sljitNativeARM_64.c.

◆ INS

#define INS   0x4e001c00

Definition at line 114 of file sljitNativeARM_64.c.

◆ INS_e

#define INS_e   0x6e000400

Definition at line 115 of file sljitNativeARM_64.c.

◆ INT_OP

#define INT_OP   0x0040000

Definition at line 805 of file sljitNativeARM_64.c.

◆ INT_SIZE

#define INT_SIZE   0x2

Definition at line 1127 of file sljitNativeARM_64.c.

◆ LD1

#define LD1   0x0c407000

Definition at line 116 of file sljitNativeARM_64.c.

◆ LD1_s

#define LD1_s   0x0d400000

Definition at line 117 of file sljitNativeARM_64.c.

◆ LD1R

#define LD1R   0x0d40c000

Definition at line 118 of file sljitNativeARM_64.c.

◆ LDP

#define LDP   0xa9400000

Definition at line 122 of file sljitNativeARM_64.c.

◆ LDP_F64

#define LDP_F64   0x6d400000

Definition at line 123 of file sljitNativeARM_64.c.

◆ LDP_POST

#define LDP_POST   0xa8c00000

Definition at line 124 of file sljitNativeARM_64.c.

◆ LDR

#define LDR   (STRI | (1 << 22))

Definition at line 185 of file sljitNativeARM_64.c.

◆ LDR_PRE

#define LDR_PRE   0xf8400c00

Definition at line 125 of file sljitNativeARM_64.c.

◆ LDRB

#define LDRB   (STRBI | (1 << 22))

Definition at line 186 of file sljitNativeARM_64.c.

◆ LDRH

#define LDRH   (LDRB | (1 << 30))

Definition at line 187 of file sljitNativeARM_64.c.

◆ LDRI

#define LDRI   0xf9400000

Definition at line 119 of file sljitNativeARM_64.c.

◆ LDRI_F64

#define LDRI_F64   0xfd400000

Definition at line 120 of file sljitNativeARM_64.c.

◆ LDRI_POST

#define LDRI_POST   0xf8400400

Definition at line 121 of file sljitNativeARM_64.c.

◆ LDXR

#define LDXR   0xc85f7c00

Definition at line 126 of file sljitNativeARM_64.c.

◆ LDXRB

#define LDXRB   0x085f7c00

Definition at line 127 of file sljitNativeARM_64.c.

◆ LDXRH

#define LDXRH   0x485f7c00

Definition at line 128 of file sljitNativeARM_64.c.

◆ LOGICAL_IMM_CHECK

#define LOGICAL_IMM_CHECK   (sljit_ins)0x100

Definition at line 645 of file sljitNativeARM_64.c.

◆ LSLV

#define LSLV   0x9ac02000

Definition at line 129 of file sljitNativeARM_64.c.

◆ LSRV

#define LSRV   0x9ac02400

Definition at line 130 of file sljitNativeARM_64.c.

◆ MADD

#define MADD   0x9b000000

Definition at line 131 of file sljitNativeARM_64.c.

◆ MEM_SIZE_SHIFT

#define MEM_SIZE_SHIFT (   flags)    ((sljit_ins)(flags) & 0x3)

Definition at line 1130 of file sljitNativeARM_64.c.

◆ MOV

#define MOV   (ORR | RN(TMP_ZERO))

Definition at line 188 of file sljitNativeARM_64.c.

◆ MOVI

#define MOVI   0x0f000400

Definition at line 132 of file sljitNativeARM_64.c.

◆ MOVK

#define MOVK   0xf2800000

Definition at line 133 of file sljitNativeARM_64.c.

◆ MOVN

#define MOVN   0x92800000

Definition at line 134 of file sljitNativeARM_64.c.

◆ MOVZ

#define MOVZ   0xd2800000

Definition at line 135 of file sljitNativeARM_64.c.

◆ NOP

#define NOP   0xd503201f

Definition at line 136 of file sljitNativeARM_64.c.

◆ ORN

#define ORN   0xaa200000

Definition at line 137 of file sljitNativeARM_64.c.

◆ ORR

#define ORR   0xaa000000

Definition at line 138 of file sljitNativeARM_64.c.

◆ ORR_v

#define ORR_v   0x0ea01c00

Definition at line 139 of file sljitNativeARM_64.c.

◆ ORRI

#define ORRI   0xb2000000

Definition at line 140 of file sljitNativeARM_64.c.

◆ RBIT

#define RBIT   0xdac00000

Definition at line 141 of file sljitNativeARM_64.c.

◆ RD

#define RD (   rd)    ((sljit_ins)reg_map[rd])

Definition at line 55 of file sljitNativeARM_64.c.

◆ RET

#define RET   0xd65f0000

Definition at line 142 of file sljitNativeARM_64.c.

◆ REV

#define REV   0xdac00c00

Definition at line 143 of file sljitNativeARM_64.c.

◆ REV16

#define REV16   0xdac00400

Definition at line 144 of file sljitNativeARM_64.c.

◆ RM

#define RM (   rm)    ((sljit_ins)reg_map[rm] << 16)

Definition at line 59 of file sljitNativeARM_64.c.

◆ RN

#define RN (   rn)    ((sljit_ins)reg_map[rn] << 5)

Definition at line 57 of file sljitNativeARM_64.c.

◆ RORV

#define RORV   0x9ac02c00

Definition at line 145 of file sljitNativeARM_64.c.

◆ RT

#define RT (   rt)    ((sljit_ins)reg_map[rt])

Definition at line 56 of file sljitNativeARM_64.c.

◆ RT2

#define RT2 (   rt2)    ((sljit_ins)reg_map[rt2] << 10)

Definition at line 58 of file sljitNativeARM_64.c.

◆ SBC

#define SBC   0xda000000

Definition at line 146 of file sljitNativeARM_64.c.

◆ SBFM

#define SBFM   0x93400000

Definition at line 147 of file sljitNativeARM_64.c.

◆ SCVTF

#define SCVTF   0x9e620000

Definition at line 148 of file sljitNativeARM_64.c.

◆ SDIV

#define SDIV   0x9ac00c00

Definition at line 149 of file sljitNativeARM_64.c.

◆ SET_FLAGS

#define SET_FLAGS   0x0080000

Definition at line 806 of file sljitNativeARM_64.c.

◆ SIGNED

#define SIGNED   0x20

Definition at line 1123 of file sljitNativeARM_64.c.

◆ SMADDL

#define SMADDL   0x9b200000

Definition at line 150 of file sljitNativeARM_64.c.

◆ SMOV

#define SMOV   0x0e002c00

Definition at line 151 of file sljitNativeARM_64.c.

◆ SMULH

#define SMULH   0x9b403c00

Definition at line 152 of file sljitNativeARM_64.c.

◆ SSHLL

#define SSHLL   0x0f00a400

Definition at line 153 of file sljitNativeARM_64.c.

◆ ST1

#define ST1   0x0c007000

Definition at line 154 of file sljitNativeARM_64.c.

◆ ST1_s

#define ST1_s   0x0d000000

Definition at line 155 of file sljitNativeARM_64.c.

◆ STORE

#define STORE   0x10

Definition at line 1122 of file sljitNativeARM_64.c.

◆ STP

#define STP   0xa9000000

Definition at line 156 of file sljitNativeARM_64.c.

◆ STP_F64

#define STP_F64   0x6d000000

Definition at line 157 of file sljitNativeARM_64.c.

◆ STP_PRE

#define STP_PRE   0xa9800000

Definition at line 158 of file sljitNativeARM_64.c.

◆ STR_FI

#define STR_FI   0x3d000000

Definition at line 163 of file sljitNativeARM_64.c.

◆ STR_FR

#define STR_FR   0x3c206800

Definition at line 164 of file sljitNativeARM_64.c.

◆ STRB

#define STRB   0x38206800

Definition at line 159 of file sljitNativeARM_64.c.

◆ STRBI

#define STRBI   0x39000000

Definition at line 160 of file sljitNativeARM_64.c.

◆ STRI

#define STRI   0xf9000000

Definition at line 161 of file sljitNativeARM_64.c.

◆ STRI_F64

#define STRI_F64   0xfd000000

Definition at line 162 of file sljitNativeARM_64.c.

◆ STUR_FI

#define STUR_FI   0x3c000000

Definition at line 165 of file sljitNativeARM_64.c.

◆ STURBI

#define STURBI   0x38000000

Definition at line 166 of file sljitNativeARM_64.c.

◆ STXR

#define STXR   0xc8007c00

Definition at line 167 of file sljitNativeARM_64.c.

◆ STXRB

#define STXRB   0x8007c00

Definition at line 168 of file sljitNativeARM_64.c.

◆ STXRH

#define STXRH   0x48007c00

Definition at line 169 of file sljitNativeARM_64.c.

◆ SUB

#define SUB   0xcb000000

Definition at line 170 of file sljitNativeARM_64.c.

◆ SUBI

#define SUBI   0xd1000000

Definition at line 171 of file sljitNativeARM_64.c.

◆ SUBS

#define SUBS   0xeb000000

Definition at line 172 of file sljitNativeARM_64.c.

◆ TBZ

#define TBZ   0x36000000

Definition at line 173 of file sljitNativeARM_64.c.

◆ TMP_FP

#define TMP_FP   (SLJIT_NUMBER_OF_REGISTERS + 5)

Definition at line 40 of file sljitNativeARM_64.c.

◆ TMP_FREG1

#define TMP_FREG1   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)

Definition at line 42 of file sljitNativeARM_64.c.

◆ TMP_FREG2

#define TMP_FREG2   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)

Definition at line 43 of file sljitNativeARM_64.c.

◆ TMP_LR

#define TMP_LR   (SLJIT_NUMBER_OF_REGISTERS + 4)

Definition at line 39 of file sljitNativeARM_64.c.

◆ TMP_REG1

#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)

Definition at line 37 of file sljitNativeARM_64.c.

◆ TMP_REG2

#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)

Definition at line 38 of file sljitNativeARM_64.c.

◆ TMP_ZERO

#define TMP_ZERO   (0)

Definition at line 35 of file sljitNativeARM_64.c.

◆ UBFM

#define UBFM   0xd3400000

Definition at line 174 of file sljitNativeARM_64.c.

◆ UCVTF

#define UCVTF   0x9e630000

Definition at line 175 of file sljitNativeARM_64.c.

◆ UDIV

#define UDIV   0x9ac00800

Definition at line 176 of file sljitNativeARM_64.c.

◆ UMOV

#define UMOV   0x0e003c00

Definition at line 177 of file sljitNativeARM_64.c.

◆ UMULH

#define UMULH   0x9bc03c00

Definition at line 178 of file sljitNativeARM_64.c.

◆ UNUSED_RETURN

#define UNUSED_RETURN   0x0100000

Definition at line 807 of file sljitNativeARM_64.c.

◆ USHLL

#define USHLL   0x2f00a400

Definition at line 179 of file sljitNativeARM_64.c.

◆ USHR

#define USHR   0x2f000400

Definition at line 180 of file sljitNativeARM_64.c.

◆ USRA

#define USRA   0x2f001400

Definition at line 181 of file sljitNativeARM_64.c.

◆ VD

#define VD (   vd)    ((sljit_ins)freg_map[vd])

Definition at line 60 of file sljitNativeARM_64.c.

◆ VM

#define VM (   vm)    ((sljit_ins)freg_map[vm] << 16)

Definition at line 64 of file sljitNativeARM_64.c.

◆ VN

#define VN (   vn)    ((sljit_ins)freg_map[vn] << 5)

Definition at line 63 of file sljitNativeARM_64.c.

◆ VT

#define VT (   vt)    ((sljit_ins)freg_map[vt])

Definition at line 61 of file sljitNativeARM_64.c.

◆ VT2

#define VT2 (   vt)    ((sljit_ins)freg_map[vt] << 10)

Definition at line 62 of file sljitNativeARM_64.c.

◆ W_OP

#define W_OP   ((sljit_ins)1 << 31)

Definition at line 54 of file sljitNativeARM_64.c.

◆ WORD_SIZE

#define WORD_SIZE   0x3

Definition at line 1128 of file sljitNativeARM_64.c.

◆ XTN

#define XTN   0x0e212800

Definition at line 182 of file sljitNativeARM_64.c.

Typedef Documentation

◆ sljit_ins

Definition at line 33 of file sljitNativeARM_64.c.

Function Documentation

◆ detect_jump_type()

static SLJIT_INLINE sljit_ins* detect_jump_type ( struct sljit_jump jump,
sljit_ins code_ptr,
sljit_ins code,
sljit_sw  executable_offset 
)
static

◆ emit_cmp_to0()

static SLJIT_INLINE struct sljit_jump* emit_cmp_to0 ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  src,
sljit_sw  srcw 
)
static

◆ emit_fop_mem()

static sljit_s32 emit_fop_mem ( struct sljit_compiler compiler,
sljit_s32  flags,
sljit_s32  reg,
sljit_s32  arg,
sljit_sw  argw 
)
static

◆ emit_imm64_const()

static SLJIT_INLINE sljit_s32 emit_imm64_const ( struct sljit_compiler compiler,
sljit_s32  dst,
sljit_uw  imm 
)
static

Definition at line 199 of file sljitNativeARM_64.c.

References FAIL_IF, MOVK, MOVZ, push_inst(), and RD.

Referenced by sljit_emit_const().

◆ emit_op_imm()

static sljit_s32 emit_op_imm ( struct sljit_compiler compiler,
sljit_s32  flags,
sljit_s32  dst,
sljit_sw  arg1,
sljit_sw  arg2 
)
static

◆ emit_op_mem()

static sljit_s32 emit_op_mem ( struct sljit_compiler compiler,
sljit_s32  flags,
sljit_s32  reg,
sljit_s32  arg,
sljit_sw  argw,
sljit_s32  tmp_reg 
)
static

◆ emit_stack_frame_release()

static sljit_s32 emit_stack_frame_release ( struct sljit_compiler compiler,
sljit_s32  is_return_to 
)
static

◆ generate_jump_or_mov_addr()

static SLJIT_INLINE void generate_jump_or_mov_addr ( struct sljit_jump jump,
sljit_sw  executable_offset 
)
static

◆ get_cc()

static sljit_ins get_cc ( struct sljit_compiler compiler,
sljit_s32  type 
)
static

◆ load_immediate()

static sljit_s32 load_immediate ( struct sljit_compiler compiler,
sljit_s32  dst,
sljit_sw  simm 
)
static

◆ logical_imm()

static sljit_ins logical_imm ( sljit_sw  imm,
sljit_u32  len 
)
static

◆ mov_addr_get_length()

static SLJIT_INLINE sljit_sw mov_addr_get_length ( struct sljit_jump jump,
sljit_ins code_ptr,
sljit_ins code,
sljit_sw  executable_offset 
)
static

◆ push_inst()

static sljit_s32 push_inst ( struct sljit_compiler compiler,
sljit_ins  ins 
)
static

◆ reduce_code_size()

static void reduce_code_size ( struct sljit_compiler compiler)
static

◆ simd_get_imm()

static sljit_ins simd_get_imm ( sljit_s32  elem_size,
sljit_uw  value 
)
static

Definition at line 2824 of file sljitNativeARM_64.c.

References result, SLJIT_ASSERT, and rapidjson::value.

Referenced by sljit_emit_simd_replicate().

◆ sljit_cmp_info()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_cmp_info ( sljit_s32  type)

Definition at line 603 of file sljitNativeARM_64.c.

References SLJIT_ORDERED_NOT_EQUAL, and SLJIT_UNORDERED_OR_EQUAL.

◆ sljit_emit_atomic_load()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_atomic_load ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst_reg,
sljit_s32  mem_reg 
)

◆ sljit_emit_atomic_store()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_atomic_store ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  src_reg,
sljit_s32  mem_reg,
sljit_s32  temp_reg 
)

◆ sljit_emit_call()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  arg_types 
)

◆ sljit_emit_const()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const ( struct sljit_compiler compiler,
sljit_s32  dst,
sljit_sw  dstw,
sljit_sw  init_value 
)

◆ sljit_emit_enter()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter ( struct sljit_compiler compiler,
sljit_s32  options,
sljit_s32  arg_types,
sljit_s32  scratches,
sljit_s32  saveds,
sljit_s32  fscratches,
sljit_s32  fsaveds,
sljit_s32  local_size 
)

◆ sljit_emit_fcopy()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fcopy ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  freg,
sljit_s32  reg 
)

Definition at line 2214 of file sljitNativeARM_64.c.

References CHECK, CHECK_ERROR, FMOV_R, push_inst(), RD, RN, SLJIT_32, SLJIT_COPY_TO_F64, VD, VN, and W_OP.

◆ sljit_emit_fmem_update()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem_update ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  freg,
sljit_s32  mem,
sljit_sw  memw 
)

◆ sljit_emit_fop1()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1 ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src,
sljit_sw  srcw 
)

◆ sljit_emit_fop1_cmp()

static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2,
sljit_sw  src2w 
)
static

◆ sljit_emit_fop1_conv_f64_from_sw()

static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src,
sljit_sw  srcw 
)
static

◆ sljit_emit_fop1_conv_f64_from_uw()

static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_uw ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src,
sljit_sw  srcw 
)
static

◆ sljit_emit_fop1_conv_f64_from_w()

static sljit_s32 sljit_emit_fop1_conv_f64_from_w ( struct sljit_compiler compiler,
sljit_ins  ins,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src,
sljit_sw  srcw 
)
static

◆ sljit_emit_fop1_conv_sw_from_f64()

static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64 ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src,
sljit_sw  srcw 
)
static

◆ sljit_emit_fop2()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2 ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2,
sljit_sw  src2w 
)

◆ sljit_emit_fselect()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fselect ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  dst_freg,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2_freg 
)

◆ sljit_emit_fset32()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fset32 ( struct sljit_compiler compiler,
sljit_s32  freg,
sljit_f32  value 
)

◆ sljit_emit_fset64()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fset64 ( struct sljit_compiler compiler,
sljit_s32  freg,
sljit_f64  value 
)

◆ sljit_emit_icall()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  arg_types,
sljit_s32  src,
sljit_sw  srcw 
)

◆ sljit_emit_ijump()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  src,
sljit_sw  srcw 
)

◆ sljit_emit_jump()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump ( struct sljit_compiler compiler,
sljit_s32  type 
)

◆ sljit_emit_label()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label ( struct sljit_compiler compiler)

◆ sljit_emit_mem()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  reg,
sljit_s32  mem,
sljit_sw  memw 
)

◆ sljit_emit_mem_update()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem_update ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  reg,
sljit_s32  mem,
sljit_sw  memw 
)

◆ sljit_emit_mov_addr()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_mov_addr ( struct sljit_compiler compiler,
sljit_s32  dst,
sljit_sw  dstw 
)

◆ sljit_emit_op0()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0 ( struct sljit_compiler compiler,
sljit_s32  op 
)

◆ sljit_emit_op1()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1 ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src,
sljit_sw  srcw 
)

◆ sljit_emit_op2()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2 ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2,
sljit_sw  src2w 
)

◆ sljit_emit_op2r()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2r ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst_reg,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2,
sljit_sw  src2w 
)

Definition at line 1735 of file sljitNativeARM_64.c.

References CHECK, CHECK_ERROR, sljit_emit_op2(), SLJIT_MULADD, and SLJIT_SUCCESS.

◆ sljit_emit_op2u()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2,
sljit_sw  src2w 
)

Definition at line 1724 of file sljitNativeARM_64.c.

References CHECK, CHECK_ERROR, sljit_emit_op2(), and TMP_REG2.

◆ sljit_emit_op_custom()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom ( struct sljit_compiler compiler,
void *  instruction,
sljit_u32  size 
)

◆ sljit_emit_op_dst()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_dst ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw 
)

◆ sljit_emit_op_flags()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  type 
)

◆ sljit_emit_op_src()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  src,
sljit_sw  srcw 
)

◆ sljit_emit_return_to()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_to ( struct sljit_compiler compiler,
sljit_s32  src,
sljit_sw  srcw 
)

◆ sljit_emit_return_void()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_void ( struct sljit_compiler compiler)

◆ sljit_emit_select()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_select ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  dst_reg,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2_reg 
)

◆ sljit_emit_shift_into()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_shift_into ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst_reg,
sljit_s32  src1_reg,
sljit_s32  src2_reg,
sljit_s32  src3,
sljit_sw  src3w 
)

◆ sljit_emit_simd_extend()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_extend ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  freg,
sljit_s32  src,
sljit_sw  srcw 
)

◆ sljit_emit_simd_lane_mov()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_lane_mov ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  freg,
sljit_s32  lane_index,
sljit_s32  srcdst,
sljit_sw  srcdstw 
)

◆ sljit_emit_simd_lane_replicate()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_lane_replicate ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  freg,
sljit_s32  src,
sljit_s32  src_lane_index 
)

◆ sljit_emit_simd_mem_offset()

static sljit_s32 sljit_emit_simd_mem_offset ( struct sljit_compiler compiler,
sljit_s32 mem_ptr,
sljit_sw  memw 
)
static

◆ sljit_emit_simd_mov()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_mov ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  freg,
sljit_s32  srcdst,
sljit_sw  srcdstw 
)

◆ sljit_emit_simd_op2()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_op2 ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  dst_freg,
sljit_s32  src1_freg,
sljit_s32  src2_freg 
)

◆ sljit_emit_simd_replicate()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_replicate ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  freg,
sljit_s32  src,
sljit_sw  srcw 
)

◆ sljit_emit_simd_sign()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_simd_sign ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  freg,
sljit_s32  dst,
sljit_sw  dstw 
)

◆ sljit_generate_code()

SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code ( struct sljit_compiler compiler,
sljit_s32  options,
void *  exec_allocator_data 
)

◆ sljit_get_local_base()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base ( struct sljit_compiler compiler,
sljit_s32  dst,
sljit_sw  dstw,
sljit_sw  offset 
)

◆ sljit_get_platform_name()

SLJIT_API_FUNC_ATTRIBUTE const char* sljit_get_platform_name ( void  )

Definition at line 27 of file sljitNativeARM_64.c.

◆ sljit_get_register_index()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index ( sljit_s32  type,
sljit_s32  reg 
)

◆ sljit_has_cpu_feature()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature ( sljit_s32  feature_type)

◆ sljit_set_const()

SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const ( sljit_uw  addr,
sljit_sw  new_constant,
sljit_sw  executable_offset 
)

Definition at line 3488 of file sljitNativeARM_64.c.

References sljit_set_jump_addr().

◆ sljit_set_context()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context ( struct sljit_compiler compiler,
sljit_s32  options,
sljit_s32  arg_types,
sljit_s32  scratches,
sljit_s32  saveds,
sljit_s32  fscratches,
sljit_s32  fsaveds,
sljit_s32  local_size 
)

Definition at line 1385 of file sljitNativeARM_64.c.

References CHECK, CHECK_ERROR, sljit_compiler::local_size, and SLJIT_SUCCESS.

◆ sljit_set_jump_addr()

SLJIT_API_FUNC_ATTRIBUTE void sljit_set_jump_addr ( sljit_uw  addr,
sljit_uw  new_target,
sljit_sw  executable_offset 
)

Variable Documentation

◆ freg_map

const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS+3]
static
Initial value:
= {
0, 0, 1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 15, 14, 13, 12, 11, 10, 9, 8, 30, 31
}

Definition at line 50 of file sljitNativeARM_64.c.

Referenced by sljit_get_register_index().

◆ reg_map

const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS+8]
static
Initial value:
= {
31, 0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16, 17, 8, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 31, 9, 10, 30, 29
}

Definition at line 46 of file sljitNativeARM_64.c.

Referenced by sljit_emit_op_src(), and sljit_get_register_index().

Modified on Fri Sep 20 14:57:44 2024 by modify_doxy.py rev. 669887