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

Go to the source code of this file.

Go to the SVN repository for this file.

Macros

#define ARM_ABI_INFO   " ABI:hardfp"
 
#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)
 
#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)
 
#define TMP_PC   (SLJIT_NUMBER_OF_REGISTERS + 4)
 
#define TMP_FREG1   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
 
#define TMP_FREG2   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
 
#define CONST_POOL_ALIGNMENT   8
 
#define CONST_POOL_EMPTY   0xffffffff
 
#define ALIGN_INSTRUCTION(ptr)    (sljit_ins*)(((sljit_ins)(ptr) + (CONST_POOL_ALIGNMENT * sizeof(sljit_ins)) - 1) & ~((CONST_POOL_ALIGNMENT * sizeof(sljit_ins)) - 1))
 
#define MAX_DIFFERENCE(max_diff)    (((max_diff) / (sljit_s32)sizeof(sljit_ins)) - (CONST_POOL_ALIGNMENT - 1))
 
#define RM(rm)   ((sljit_ins)reg_map[rm])
 
#define RM8(rm)   ((sljit_ins)reg_map[rm] << 8)
 
#define RD(rd)   ((sljit_ins)reg_map[rd] << 12)
 
#define RN(rn)   ((sljit_ins)reg_map[rn] << 16)
 
#define VM(vm)   (((sljit_ins)freg_map[vm]) | ((sljit_ins)freg_ebit_map[vm] << 5))
 
#define VD(vd)   (((sljit_ins)freg_map[vd] << 12) | ((sljit_ins)freg_ebit_map[vd] << 22))
 
#define VN(vn)   (((sljit_ins)freg_map[vn] << 16) | ((sljit_ins)freg_ebit_map[vn] << 7))
 
#define COND_MASK   0xf0000000
 
#define CONDITIONAL   0xe0000000
 
#define PUSH_POOL   0xff000000
 
#define ADC   0xe0a00000
 
#define ADD   0xe0800000
 
#define AND   0xe0000000
 
#define B   0xea000000
 
#define BIC   0xe1c00000
 
#define BKPT   0xe1200070
 
#define BL   0xeb000000
 
#define BLX   0xe12fff30
 
#define BX   0xe12fff10
 
#define CLZ   0xe16f0f10
 
#define CMN   0xe1600000
 
#define CMP   0xe1400000
 
#define EOR   0xe0200000
 
#define LDR   0xe5100000
 
#define LDR_POST   0xe4100000
 
#define LDREX   0xe1900f9f
 
#define LDREXB   0xe1d00f9f
 
#define LDREXH   0xe1f00f9f
 
#define MLA   0xe0200090
 
#define MOV   0xe1a00000
 
#define MUL   0xe0000090
 
#define MVN   0xe1e00000
 
#define NOP   0xe1a00000
 
#define ORR   0xe1800000
 
#define PUSH   0xe92d0000
 
#define POP   0xe8bd0000
 
#define REV   0xe6bf0f30
 
#define REV16   0xe6bf0fb0
 
#define RSB   0xe0600000
 
#define RSC   0xe0e00000
 
#define SBC   0xe0c00000
 
#define SMULL   0xe0c00090
 
#define STR   0xe5000000
 
#define STREX   0xe1800f90
 
#define STREXB   0xe1c00f90
 
#define STREXH   0xe1e00f90
 
#define SUB   0xe0400000
 
#define SXTB   0xe6af0070
 
#define SXTH   0xe6bf0070
 
#define TST   0xe1000000
 
#define UMULL   0xe0800090
 
#define UXTB   0xe6ef0070
 
#define UXTH   0xe6ff0070
 
#define VABS_F32   0xeeb00ac0
 
#define VADD_F32   0xee300a00
 
#define VAND   0xf2000110
 
#define VCMP_F32   0xeeb40a40
 
#define VCVT_F32_S32   0xeeb80ac0
 
#define VCVT_F32_U32   0xeeb80a40
 
#define VCVT_F64_F32   0xeeb70ac0
 
#define VCVT_S32_F32   0xeebd0ac0
 
#define VDIV_F32   0xee800a00
 
#define VDUP   0xee800b10
 
#define VDUP_s   0xf3b00c00
 
#define VEOR   0xf3000110
 
#define VLD1   0xf4200000
 
#define VLD1_r   0xf4a00c00
 
#define VLD1_s   0xf4a00000
 
#define VLDR_F32   0xed100a00
 
#define VMOV_F32   0xeeb00a40
 
#define VMOV   0xee000a10
 
#define VMOV2   0xec400a10
 
#define VMOV_i   0xf2800010
 
#define VMOV_s   0xee000b10
 
#define VMOVN   0xf3b20200
 
#define VMRS   0xeef1fa10
 
#define VMUL_F32   0xee200a00
 
#define VNEG_F32   0xeeb10a40
 
#define VORR   0xf2200110
 
#define VPOP   0xecbd0b00
 
#define VPUSH   0xed2d0b00
 
#define VSHLL   0xf2800a10
 
#define VSHR   0xf2800010
 
#define VSRA   0xf2800110
 
#define VST1   0xf4000000
 
#define VST1_s   0xf4800000
 
#define VSTR_F32   0xed000a00
 
#define VSUB_F32   0xee300a40
 
#define WORD_SIZE   0x00
 
#define BYTE_SIZE   0x01
 
#define HALF_SIZE   0x02
 
#define PRELOAD   0x03
 
#define SIGNED   0x04
 
#define LOAD_DATA   0x08
 
#define ALLOW_IMM   0x10
 
#define ALLOW_INV_IMM   0x20
 
#define ALLOW_ANY_IMM   (ALLOW_IMM | ALLOW_INV_IMM)
 
#define ALLOW_NEG_IMM   0x40
 
#define ALLOW_DOUBLE_IMM   0x80
 
#define EMIT_DATA_TRANSFER(type, add, target_reg, base_reg, arg)    (data_transfer_insts[(type) & 0xf] | ((add) << 23) | RD(target_reg) | RN(base_reg) | (sljit_ins)(arg))
 
#define IS_TYPE1_TRANSFER(type)    (data_transfer_insts[(type) & 0xf] & 0x04000000)
 
#define TYPE2_TRANSFER_IMM(imm)    (((imm) & 0xf) | (((imm) & 0xf0) << 4) | (1 << 22))
 
#define EMIT_FPU_OPERATION(opcode, mode, dst, src1, src2)    ((sljit_ins)(opcode) | (sljit_ins)(mode) | VD(dst) | VM(src1) | VN(src2))
 
#define ARGS_SWAPPED   0x01
 
#define INV_IMM   0x02
 
#define REGISTER_OP   0x04
 
#define UNUSED_RETURN   0x08
 
#define SET_FLAGS   (1 << 20)
 
#define SRC2_IMM   (1 << 25)
 
#define FPU_LOAD   (1 << 20)
 
#define EMIT_FPU_DATA_TRANSFER(inst, add, base, freg, offs)    ((inst) | (sljit_ins)((add) << 23) | RN(base) | VD(freg) | (sljit_ins)(offs))
 
#define SLJIT_QUAD_OTHER_HALF(freg)   ((((freg) & 0x1) << 1) - 1)
 

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 inst)
 
static SLJIT_INLINE sljit_s32 emit_imm (struct sljit_compiler *compiler, sljit_s32 reg, sljit_sw imm)
 
static SLJIT_INLINE sljit_s32 detect_jump_type (struct sljit_jump *jump, sljit_uw *code_ptr, sljit_uw *code, sljit_sw executable_offset)
 
static void set_jump_addr (sljit_uw jump_ptr, sljit_sw executable_offset, sljit_uw new_addr, sljit_s32 flush_cache)
 
static sljit_uw get_imm (sljit_uw imm)
 
static sljit_s32 load_immediate (struct sljit_compiler *compiler, sljit_s32 reg, sljit_uw imm)
 
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 void set_const_value (sljit_uw addr, sljit_sw executable_offset, sljit_uw new_constant, sljit_s32 flush_cache)
 
static SLJIT_INLINE sljit_sw mov_addr_get_length (struct sljit_jump *jump, sljit_ins *code_ptr, sljit_ins *code, sljit_sw executable_offset)
 
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)
 
static sljit_s32 emit_op (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 inp_flags, 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_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_add_sp (struct sljit_compiler *compiler, sljit_uw imm)
 
static sljit_s32 emit_stack_frame_release (struct sljit_compiler *compiler, sljit_s32 frame_size)
 
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)
 
static SLJIT_INLINE sljit_s32 emit_single_op (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 flags, sljit_uw dst, sljit_uw src1, sljit_uw src2)
 
static sljit_uw compute_imm (sljit_uw imm, sljit_uw *imm2)
 
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)
 
static sljit_s32 hardfloat_call_with_args (struct sljit_compiler *compiler, sljit_s32 arg_types)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_call (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 arg_types)
 
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)
 
static sljit_s32 update_mem_addr (struct sljit_compiler *compiler, sljit_s32 *mem, sljit_sw *memw, sljit_s32 max_offset)
 
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 (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)
 
static SLJIT_INLINE sljit_s32 simd_get_quad_reg_index (sljit_s32 freg)
 
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 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+5]
 
static const sljit_u8 freg_map [((SLJIT_NUMBER_OF_FLOAT_REGISTERS+2)<< 1)+1]
 
static const sljit_u8 freg_ebit_map [((SLJIT_NUMBER_OF_FLOAT_REGISTERS+2)<< 1)+1]
 
static const sljit_ins data_transfer_insts [16]
 

Macro Definition Documentation

◆ ADC

#define ADC   0xe0a00000

Definition at line 105 of file sljitNativeARM_32.c.

◆ ADD

#define ADD   0xe0800000

Definition at line 106 of file sljitNativeARM_32.c.

◆ ALIGN_INSTRUCTION

#define ALIGN_INSTRUCTION (   ptr)     (sljit_ins*)(((sljit_ins)(ptr) + (CONST_POOL_ALIGNMENT * sizeof(sljit_ins)) - 1) & ~((CONST_POOL_ALIGNMENT * sizeof(sljit_ins)) - 1))

Definition at line 60 of file sljitNativeARM_32.c.

◆ ALLOW_ANY_IMM

#define ALLOW_ANY_IMM   (ALLOW_IMM | ALLOW_INV_IMM)

Definition at line 1163 of file sljitNativeARM_32.c.

◆ ALLOW_DOUBLE_IMM

#define ALLOW_DOUBLE_IMM   0x80

Definition at line 1165 of file sljitNativeARM_32.c.

◆ ALLOW_IMM

#define ALLOW_IMM   0x10

Definition at line 1161 of file sljitNativeARM_32.c.

◆ ALLOW_INV_IMM

#define ALLOW_INV_IMM   0x20

Definition at line 1162 of file sljitNativeARM_32.c.

◆ ALLOW_NEG_IMM

#define ALLOW_NEG_IMM   0x40

Definition at line 1164 of file sljitNativeARM_32.c.

◆ AND

#define AND   0xe0000000

Definition at line 107 of file sljitNativeARM_32.c.

◆ ARGS_SWAPPED

#define ARGS_SWAPPED   0x01

Definition at line 1207 of file sljitNativeARM_32.c.

◆ ARM_ABI_INFO

#define ARM_ABI_INFO   " ABI:hardfp"

Definition at line 30 of file sljitNativeARM_32.c.

◆ B

#define B   0xea000000

Definition at line 108 of file sljitNativeARM_32.c.

◆ BIC

#define BIC   0xe1c00000

Definition at line 109 of file sljitNativeARM_32.c.

◆ BKPT

#define BKPT   0xe1200070

Definition at line 110 of file sljitNativeARM_32.c.

◆ BL

#define BL   0xeb000000

Definition at line 111 of file sljitNativeARM_32.c.

◆ BLX

#define BLX   0xe12fff30

Definition at line 112 of file sljitNativeARM_32.c.

◆ BX

#define BX   0xe12fff10

Definition at line 113 of file sljitNativeARM_32.c.

◆ BYTE_SIZE

#define BYTE_SIZE   0x01

Definition at line 1154 of file sljitNativeARM_32.c.

◆ CLZ

#define CLZ   0xe16f0f10

Definition at line 114 of file sljitNativeARM_32.c.

◆ CMN

#define CMN   0xe1600000

Definition at line 115 of file sljitNativeARM_32.c.

◆ CMP

#define CMP   0xe1400000

Definition at line 116 of file sljitNativeARM_32.c.

◆ COND_MASK

#define COND_MASK   0xf0000000

Definition at line 101 of file sljitNativeARM_32.c.

◆ CONDITIONAL

#define CONDITIONAL   0xe0000000

Definition at line 102 of file sljitNativeARM_32.c.

◆ CONST_POOL_ALIGNMENT

#define CONST_POOL_ALIGNMENT   8

Definition at line 57 of file sljitNativeARM_32.c.

◆ CONST_POOL_EMPTY

#define CONST_POOL_EMPTY   0xffffffff

Definition at line 58 of file sljitNativeARM_32.c.

◆ EMIT_DATA_TRANSFER

#define EMIT_DATA_TRANSFER (   type,
  add,
  target_reg,
  base_reg,
  arg 
)     (data_transfer_insts[(type) & 0xf] | ((add) << 23) | RD(target_reg) | RN(base_reg) | (sljit_ins)(arg))

Definition at line 1192 of file sljitNativeARM_32.c.

◆ EMIT_FPU_DATA_TRANSFER

#define EMIT_FPU_DATA_TRANSFER (   inst,
  add,
  base,
  freg,
  offs 
)     ((inst) | (sljit_ins)((add) << 23) | RN(base) | VD(freg) | (sljit_ins)(offs))

Definition at line 2654 of file sljitNativeARM_32.c.

◆ EMIT_FPU_OPERATION

#define EMIT_FPU_OPERATION (   opcode,
  mode,
  dst,
  src1,
  src2 
)     ((sljit_ins)(opcode) | (sljit_ins)(mode) | VD(dst) | VM(src1) | VN(src2))

Definition at line 1202 of file sljitNativeARM_32.c.

◆ EOR

#define EOR   0xe0200000

Definition at line 117 of file sljitNativeARM_32.c.

◆ FPU_LOAD

#define FPU_LOAD   (1 << 20)

Definition at line 2653 of file sljitNativeARM_32.c.

◆ HALF_SIZE

#define HALF_SIZE   0x02

Definition at line 1155 of file sljitNativeARM_32.c.

◆ INV_IMM

#define INV_IMM   0x02

Definition at line 1209 of file sljitNativeARM_32.c.

◆ IS_TYPE1_TRANSFER

#define IS_TYPE1_TRANSFER (   type)     (data_transfer_insts[(type) & 0xf] & 0x04000000)

Definition at line 1197 of file sljitNativeARM_32.c.

◆ LDR

#define LDR   0xe5100000

Definition at line 118 of file sljitNativeARM_32.c.

◆ LDR_POST

#define LDR_POST   0xe4100000

Definition at line 119 of file sljitNativeARM_32.c.

◆ LDREX

#define LDREX   0xe1900f9f

Definition at line 120 of file sljitNativeARM_32.c.

◆ LDREXB

#define LDREXB   0xe1d00f9f

Definition at line 121 of file sljitNativeARM_32.c.

◆ LDREXH

#define LDREXH   0xe1f00f9f

Definition at line 122 of file sljitNativeARM_32.c.

◆ LOAD_DATA

#define LOAD_DATA   0x08

Definition at line 1158 of file sljitNativeARM_32.c.

◆ MAX_DIFFERENCE

#define MAX_DIFFERENCE (   max_diff)     (((max_diff) / (sljit_s32)sizeof(sljit_ins)) - (CONST_POOL_ALIGNMENT - 1))

Definition at line 62 of file sljitNativeARM_32.c.

◆ MLA

#define MLA   0xe0200090

Definition at line 123 of file sljitNativeARM_32.c.

◆ MOV

#define MOV   0xe1a00000

Definition at line 124 of file sljitNativeARM_32.c.

◆ MUL

#define MUL   0xe0000090

Definition at line 125 of file sljitNativeARM_32.c.

◆ MVN

#define MVN   0xe1e00000

Definition at line 126 of file sljitNativeARM_32.c.

◆ NOP

#define NOP   0xe1a00000

Definition at line 127 of file sljitNativeARM_32.c.

◆ ORR

#define ORR   0xe1800000

Definition at line 128 of file sljitNativeARM_32.c.

◆ POP

#define POP   0xe8bd0000

Definition at line 130 of file sljitNativeARM_32.c.

◆ PRELOAD

#define PRELOAD   0x03

Definition at line 1156 of file sljitNativeARM_32.c.

◆ PUSH

#define PUSH   0xe92d0000

Definition at line 129 of file sljitNativeARM_32.c.

◆ PUSH_POOL

#define PUSH_POOL   0xff000000

Definition at line 103 of file sljitNativeARM_32.c.

◆ RD

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

Definition at line 88 of file sljitNativeARM_32.c.

◆ REGISTER_OP

#define REGISTER_OP   0x04

Definition at line 1211 of file sljitNativeARM_32.c.

◆ REV

#define REV   0xe6bf0f30

Definition at line 131 of file sljitNativeARM_32.c.

◆ REV16

#define REV16   0xe6bf0fb0

Definition at line 132 of file sljitNativeARM_32.c.

◆ RM

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

Definition at line 86 of file sljitNativeARM_32.c.

◆ RM8

#define RM8 (   rm)    ((sljit_ins)reg_map[rm] << 8)

Definition at line 87 of file sljitNativeARM_32.c.

◆ RN

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

Definition at line 89 of file sljitNativeARM_32.c.

◆ RSB

#define RSB   0xe0600000

Definition at line 133 of file sljitNativeARM_32.c.

◆ RSC

#define RSC   0xe0e00000

Definition at line 134 of file sljitNativeARM_32.c.

◆ SBC

#define SBC   0xe0c00000

Definition at line 135 of file sljitNativeARM_32.c.

◆ SET_FLAGS

#define SET_FLAGS   (1 << 20)

Definition at line 1215 of file sljitNativeARM_32.c.

◆ SIGNED

#define SIGNED   0x04

Definition at line 1157 of file sljitNativeARM_32.c.

◆ SLJIT_QUAD_OTHER_HALF

#define SLJIT_QUAD_OTHER_HALF (   freg)    ((((freg) & 0x1) << 1) - 1)

Definition at line 3907 of file sljitNativeARM_32.c.

◆ SMULL

#define SMULL   0xe0c00090

Definition at line 136 of file sljitNativeARM_32.c.

◆ SRC2_IMM

#define SRC2_IMM   (1 << 25)

Definition at line 1220 of file sljitNativeARM_32.c.

◆ STR

#define STR   0xe5000000

Definition at line 137 of file sljitNativeARM_32.c.

◆ STREX

#define STREX   0xe1800f90

Definition at line 138 of file sljitNativeARM_32.c.

◆ STREXB

#define STREXB   0xe1c00f90

Definition at line 139 of file sljitNativeARM_32.c.

◆ STREXH

#define STREXH   0xe1e00f90

Definition at line 140 of file sljitNativeARM_32.c.

◆ SUB

#define SUB   0xe0400000

Definition at line 141 of file sljitNativeARM_32.c.

◆ SXTB

#define SXTB   0xe6af0070

Definition at line 142 of file sljitNativeARM_32.c.

◆ SXTH

#define SXTH   0xe6bf0070

Definition at line 143 of file sljitNativeARM_32.c.

◆ TMP_FREG1

#define TMP_FREG1   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)

Definition at line 52 of file sljitNativeARM_32.c.

◆ TMP_FREG2

#define TMP_FREG2   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)

Definition at line 53 of file sljitNativeARM_32.c.

◆ TMP_PC

#define TMP_PC   (SLJIT_NUMBER_OF_REGISTERS + 4)

Definition at line 50 of file sljitNativeARM_32.c.

◆ TMP_REG1

#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)

Definition at line 48 of file sljitNativeARM_32.c.

◆ TMP_REG2

#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)

Definition at line 49 of file sljitNativeARM_32.c.

◆ TST

#define TST   0xe1000000

Definition at line 144 of file sljitNativeARM_32.c.

◆ TYPE2_TRANSFER_IMM

#define TYPE2_TRANSFER_IMM (   imm)     (((imm) & 0xf) | (((imm) & 0xf0) << 4) | (1 << 22))

Definition at line 1199 of file sljitNativeARM_32.c.

◆ UMULL

#define UMULL   0xe0800090

Definition at line 145 of file sljitNativeARM_32.c.

◆ UNUSED_RETURN

#define UNUSED_RETURN   0x08

Definition at line 1213 of file sljitNativeARM_32.c.

◆ UXTB

#define UXTB   0xe6ef0070

Definition at line 146 of file sljitNativeARM_32.c.

◆ UXTH

#define UXTH   0xe6ff0070

Definition at line 147 of file sljitNativeARM_32.c.

◆ VABS_F32

#define VABS_F32   0xeeb00ac0

Definition at line 148 of file sljitNativeARM_32.c.

◆ VADD_F32

#define VADD_F32   0xee300a00

Definition at line 149 of file sljitNativeARM_32.c.

◆ VAND

#define VAND   0xf2000110

Definition at line 150 of file sljitNativeARM_32.c.

◆ VCMP_F32

#define VCMP_F32   0xeeb40a40

Definition at line 151 of file sljitNativeARM_32.c.

◆ VCVT_F32_S32

#define VCVT_F32_S32   0xeeb80ac0

Definition at line 152 of file sljitNativeARM_32.c.

◆ VCVT_F32_U32

#define VCVT_F32_U32   0xeeb80a40

Definition at line 153 of file sljitNativeARM_32.c.

◆ VCVT_F64_F32

#define VCVT_F64_F32   0xeeb70ac0

Definition at line 154 of file sljitNativeARM_32.c.

◆ VCVT_S32_F32

#define VCVT_S32_F32   0xeebd0ac0

Definition at line 155 of file sljitNativeARM_32.c.

◆ VD

#define VD (   vd)    (((sljit_ins)freg_map[vd] << 12) | ((sljit_ins)freg_ebit_map[vd] << 22))

Definition at line 92 of file sljitNativeARM_32.c.

◆ VDIV_F32

#define VDIV_F32   0xee800a00

Definition at line 156 of file sljitNativeARM_32.c.

◆ VDUP

#define VDUP   0xee800b10

Definition at line 157 of file sljitNativeARM_32.c.

◆ VDUP_s

#define VDUP_s   0xf3b00c00

Definition at line 158 of file sljitNativeARM_32.c.

◆ VEOR

#define VEOR   0xf3000110

Definition at line 159 of file sljitNativeARM_32.c.

◆ VLD1

#define VLD1   0xf4200000

Definition at line 160 of file sljitNativeARM_32.c.

◆ VLD1_r

#define VLD1_r   0xf4a00c00

Definition at line 161 of file sljitNativeARM_32.c.

◆ VLD1_s

#define VLD1_s   0xf4a00000

Definition at line 162 of file sljitNativeARM_32.c.

◆ VLDR_F32

#define VLDR_F32   0xed100a00

Definition at line 163 of file sljitNativeARM_32.c.

◆ VM

#define VM (   vm)    (((sljit_ins)freg_map[vm]) | ((sljit_ins)freg_ebit_map[vm] << 5))

Definition at line 91 of file sljitNativeARM_32.c.

◆ VMOV

#define VMOV   0xee000a10

Definition at line 165 of file sljitNativeARM_32.c.

◆ VMOV2

#define VMOV2   0xec400a10

Definition at line 166 of file sljitNativeARM_32.c.

◆ VMOV_F32

#define VMOV_F32   0xeeb00a40

Definition at line 164 of file sljitNativeARM_32.c.

◆ VMOV_i

#define VMOV_i   0xf2800010

Definition at line 167 of file sljitNativeARM_32.c.

◆ VMOV_s

#define VMOV_s   0xee000b10

Definition at line 168 of file sljitNativeARM_32.c.

◆ VMOVN

#define VMOVN   0xf3b20200

Definition at line 169 of file sljitNativeARM_32.c.

◆ VMRS

#define VMRS   0xeef1fa10

Definition at line 170 of file sljitNativeARM_32.c.

◆ VMUL_F32

#define VMUL_F32   0xee200a00

Definition at line 171 of file sljitNativeARM_32.c.

◆ VN

#define VN (   vn)    (((sljit_ins)freg_map[vn] << 16) | ((sljit_ins)freg_ebit_map[vn] << 7))

Definition at line 93 of file sljitNativeARM_32.c.

◆ VNEG_F32

#define VNEG_F32   0xeeb10a40

Definition at line 172 of file sljitNativeARM_32.c.

◆ VORR

#define VORR   0xf2200110

Definition at line 173 of file sljitNativeARM_32.c.

◆ VPOP

#define VPOP   0xecbd0b00

Definition at line 174 of file sljitNativeARM_32.c.

◆ VPUSH

#define VPUSH   0xed2d0b00

Definition at line 175 of file sljitNativeARM_32.c.

◆ VSHLL

#define VSHLL   0xf2800a10

Definition at line 176 of file sljitNativeARM_32.c.

◆ VSHR

#define VSHR   0xf2800010

Definition at line 177 of file sljitNativeARM_32.c.

◆ VSRA

#define VSRA   0xf2800110

Definition at line 178 of file sljitNativeARM_32.c.

◆ VST1

#define VST1   0xf4000000

Definition at line 179 of file sljitNativeARM_32.c.

◆ VST1_s

#define VST1_s   0xf4800000

Definition at line 180 of file sljitNativeARM_32.c.

◆ VSTR_F32

#define VSTR_F32   0xed000a00

Definition at line 181 of file sljitNativeARM_32.c.

◆ VSUB_F32

#define VSUB_F32   0xee300a40

Definition at line 182 of file sljitNativeARM_32.c.

◆ WORD_SIZE

#define WORD_SIZE   0x00

Definition at line 1153 of file sljitNativeARM_32.c.

Typedef Documentation

◆ sljit_ins

Definition at line 45 of file sljitNativeARM_32.c.

Function Documentation

◆ compute_imm()

static sljit_uw compute_imm ( sljit_uw  imm,
sljit_uw imm2 
)
static

Definition at line 1822 of file sljitNativeARM_32.c.

References mask, SLJIT_ASSERT, and SRC2_IMM.

Referenced by emit_op(), and load_immediate().

◆ detect_jump_type()

static SLJIT_INLINE sljit_s32 detect_jump_type ( struct sljit_jump jump,
sljit_uw code_ptr,
sljit_uw code,
sljit_sw  executable_offset 
)
static

◆ emit_add_sp()

static sljit_s32 emit_add_sp ( struct sljit_compiler compiler,
sljit_uw  imm 
)
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_imm()

static SLJIT_INLINE sljit_s32 emit_imm ( struct sljit_compiler compiler,
sljit_s32  reg,
sljit_sw  imm 
)
static

Definition at line 468 of file sljitNativeARM_32.c.

References FAIL_IF, MOVT, MOVW, push_inst(), and RD.

Referenced by sljit_emit_const().

◆ emit_op()

static sljit_s32 emit_op ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  inp_flags,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2,
sljit_sw  src2w 
)
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_single_op()

static SLJIT_INLINE sljit_s32 emit_single_op ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  flags,
sljit_uw  dst,
sljit_uw  src1,
sljit_uw  src2 
)
static

◆ emit_stack_frame_release()

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

◆ get_cc()

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

◆ get_imm()

static sljit_uw get_imm ( sljit_uw  imm)
static

◆ hardfloat_call_with_args()

static sljit_s32 hardfloat_call_with_args ( struct sljit_compiler compiler,
sljit_s32  arg_types 
)
static

◆ load_immediate()

static sljit_s32 load_immediate ( struct sljit_compiler compiler,
sljit_s32  reg,
sljit_uw  imm 
)
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  inst 
)
static

◆ set_const_value()

static void set_const_value ( sljit_uw  addr,
sljit_sw  executable_offset,
sljit_uw  new_constant,
sljit_s32  flush_cache 
)
static

◆ set_jump_addr()

static void set_jump_addr ( sljit_uw  jump_ptr,
sljit_sw  executable_offset,
sljit_uw  new_addr,
sljit_s32  flush_cache 
)
static

◆ simd_get_imm()

static sljit_ins simd_get_imm ( sljit_s32  elem_size,
sljit_uw  value 
)
static

Definition at line 3968 of file sljitNativeARM_32.c.

References result, SLJIT_ASSERT, and rapidjson::value.

Referenced by sljit_emit_simd_replicate().

◆ simd_get_quad_reg_index()

static SLJIT_INLINE sljit_s32 simd_get_quad_reg_index ( sljit_s32  freg)
static

◆ 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 
)

Definition at line 4513 of file sljitNativeARM_32.c.

References CHECK, CHECK_ERROR, LDREX, LDREXB, LDREXH, push_inst(), RD, RN, SLJIT_MOV_U16, and SLJIT_MOV_U8.

◆ 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 2954 of file sljitNativeARM_32.c.

References CHECK, CHECK_ERROR, push_inst(), RD, RN, SLJIT_32, SLJIT_COPY_FROM_F64, VM, VMOV, VMOV2, and VN.

◆ sljit_emit_fmem()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem ( 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

Definition at line 2745 of file sljitNativeARM_32.c.

References SLJIT_32, sljit_emit_fop1_conv_f64_from_w(), and VCVT_F32_S32.

◆ 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

Definition at line 2752 of file sljitNativeARM_32.c.

References SLJIT_32, sljit_emit_fop1_conv_f64_from_w(), and VCVT_F32_U32.

◆ 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 2486 of file sljitNativeARM_32.c.

References CHECK, CHECK_ERROR, emit_op(), 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 2475 of file sljitNativeARM_32.c.

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

◆ 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)

Definition at line 1559 of file sljitNativeARM_32.c.

References CHECK, CHECK_ERROR, and emit_stack_frame_release().

◆ 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_platform_name()

SLJIT_API_FUNC_ATTRIBUTE const char* sljit_get_platform_name ( void  )

Definition at line 33 of file sljitNativeARM_32.c.

References ARM_ABI_INFO.

◆ 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 4633 of file sljitNativeARM_32.c.

References set_const_value().

◆ 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 
)

◆ sljit_set_jump_addr()

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

Definition at line 4628 of file sljitNativeARM_32.c.

References set_jump_addr().

◆ update_mem_addr()

static sljit_s32 update_mem_addr ( struct sljit_compiler compiler,
sljit_s32 mem,
sljit_sw memw,
sljit_s32  max_offset 
)
static

Variable Documentation

◆ data_transfer_insts

const sljit_ins data_transfer_insts[16]
static
Initial value:
= {
0xe5000000 ,
0xe5400000 ,
0xe10000b0 ,
0x00000000 ,
0xe5000000 ,
0xe5400000 ,
0xe10000b0 ,
0x00000000 ,
0xe5100000 ,
0xe5500000 ,
0xe11000b0 ,
0xf5500000 ,
0xe5100000 ,
0xe11000d0 ,
0xe11000f0 ,
0x00000000 ,
}

Definition at line 1172 of file sljitNativeARM_32.c.

◆ freg_ebit_map

const sljit_u8 freg_ebit_map[((SLJIT_NUMBER_OF_FLOAT_REGISTERS+2)<< 1)+1]
static
Initial value:
= {
0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1
}

Definition at line 78 of file sljitNativeARM_32.c.

Referenced by sljit_emit_simd_lane_mov(), and sljit_emit_simd_replicate().

◆ freg_map

const sljit_u8 freg_map[((SLJIT_NUMBER_OF_FLOAT_REGISTERS+2)<< 1)+1]
static
Initial value:
= {
0,
0, 1, 2, 3, 4, 5, 15, 14, 13, 12, 11, 10, 9, 8,
7, 6,
0, 1, 2, 3, 4, 5, 15, 14, 13, 12, 11, 10, 9, 8,
7, 6
}

Definition at line 70 of file sljitNativeARM_32.c.

Referenced by call_with_args(), emit_vex_instruction(), emit_x86_instruction(), simd_get_quad_reg_index(), sljit_emit_fcopy(), sljit_emit_fset(), sljit_emit_fset32(), sljit_emit_fset64(), sljit_emit_simd_replicate(), sljit_emit_simd_sign(), and sljit_get_register_index().

◆ reg_map

const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS+5]
static
Modified on Fri Sep 20 14:58:15 2024 by modify_doxy.py rev. 669887