NCBI C++ ToolKit
Macros | Typedefs | Functions | Variables
sljitNativeMIPS_common.c File Reference
#include "sljitNativeMIPS_64.c"
+ Include dependency graph for sljitNativeMIPS_common.c:

Go to the source code of this file.

Go to the SVN repository for this file.

Macros

#define SLJIT_IS_FPU_AVAILABLE   0
 
#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)
 
#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)
 
#define TMP_REG3   (SLJIT_NUMBER_OF_REGISTERS + 4)
 
#define PIC_ADDR_REG   TMP_REG1
 
#define FCSR_REG   31
 
#define RETURN_ADDR_REG   31
 
#define EQUAL_FLAG   3
 
#define OTHER_FLAG   1
 
#define TMP_FREG1   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
 
#define TMP_FREG2   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
 
#define TMP_FREG3   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3)
 
#define S(s)   ((sljit_ins)reg_map[s] << 21)
 
#define T(t)   ((sljit_ins)reg_map[t] << 16)
 
#define D(d)   ((sljit_ins)reg_map[d] << 11)
 
#define FT(t)   ((sljit_ins)freg_map[t] << 16)
 
#define FS(s)   ((sljit_ins)freg_map[s] << 11)
 
#define FD(d)   ((sljit_ins)freg_map[d] << 6)
 
#define SA(s)   ((sljit_ins)(s) << 21)
 
#define TA(t)   ((sljit_ins)(t) << 16)
 
#define DA(d)   ((sljit_ins)(d) << 11)
 
#define IMM(imm)   ((sljit_ins)(imm) & 0xffff)
 
#define SH_IMM(imm)   ((sljit_ins)(imm) << 6)
 
#define DR(dr)   (reg_map[dr])
 
#define FR(dr)   (freg_map[dr])
 
#define HI(opcode)   ((sljit_ins)(opcode) << 26)
 
#define LO(opcode)   ((sljit_ins)(opcode))
 
#define FMT_S   (16 << 21)
 
#define FMT_D   (17 << 21)
 
#define ABS_S   (HI(17) | FMT_S | LO(5))
 
#define ADD_S   (HI(17) | FMT_S | LO(0))
 
#define ADDIU   (HI(9))
 
#define ADDU   (HI(0) | LO(33))
 
#define AND   (HI(0) | LO(36))
 
#define ANDI   (HI(12))
 
#define B   (HI(4))
 
#define BAL   (HI(1) | (17 << 16))
 
#define BC1F   (HI(17) | (8 << 21))
 
#define BC1T   (HI(17) | (8 << 21) | (1 << 16))
 
#define BEQ   (HI(4))
 
#define BGEZ   (HI(1) | (1 << 16))
 
#define BGTZ   (HI(7))
 
#define BLEZ   (HI(6))
 
#define BLTZ   (HI(1) | (0 << 16))
 
#define BNE   (HI(5))
 
#define BREAK   (HI(0) | LO(13))
 
#define CFC1   (HI(17) | (2 << 21))
 
#define C_EQ_S   (HI(17) | FMT_S | LO(50))
 
#define C_OLE_S   (HI(17) | FMT_S | LO(54))
 
#define C_OLT_S   (HI(17) | FMT_S | LO(52))
 
#define C_UEQ_S   (HI(17) | FMT_S | LO(51))
 
#define C_ULE_S   (HI(17) | FMT_S | LO(55))
 
#define C_ULT_S   (HI(17) | FMT_S | LO(53))
 
#define C_UN_S   (HI(17) | FMT_S | LO(49))
 
#define C_FD   (0)
 
#define CVT_S_S   (HI(17) | FMT_S | LO(32))
 
#define DADDIU   (HI(25))
 
#define DADDU   (HI(0) | LO(45))
 
#define DDIV   (HI(0) | LO(30))
 
#define DDIVU   (HI(0) | LO(31))
 
#define DIV   (HI(0) | LO(26))
 
#define DIVU   (HI(0) | LO(27))
 
#define DMULT   (HI(0) | LO(28))
 
#define DMULTU   (HI(0) | LO(29))
 
#define DIV_S   (HI(17) | FMT_S | LO(3))
 
#define DMFC1   (HI(17) | (1 << 21))
 
#define DMTC1   (HI(17) | (5 << 21))
 
#define DSLL   (HI(0) | LO(56))
 
#define DSLL32   (HI(0) | LO(60))
 
#define DSLLV   (HI(0) | LO(20))
 
#define DSRA   (HI(0) | LO(59))
 
#define DSRA32   (HI(0) | LO(63))
 
#define DSRAV   (HI(0) | LO(23))
 
#define DSRL   (HI(0) | LO(58))
 
#define DSRL32   (HI(0) | LO(62))
 
#define DSRLV   (HI(0) | LO(22))
 
#define DSUBU   (HI(0) | LO(47))
 
#define J   (HI(2))
 
#define JAL   (HI(3))
 
#define JALR   (HI(0) | LO(9))
 
#define JR   (HI(0) | LO(8))
 
#define LD   (HI(55))
 
#define LDL   (HI(26))
 
#define LDR   (HI(27))
 
#define LDC1   (HI(53))
 
#define LUI   (HI(15))
 
#define LW   (HI(35))
 
#define LWL   (HI(34))
 
#define LWR   (HI(38))
 
#define LWC1   (HI(49))
 
#define MFC1   (HI(17))
 
#define MFHI   (HI(0) | LO(16))
 
#define MFLO   (HI(0) | LO(18))
 
#define MTC1   (HI(17) | (4 << 21))
 
#define MULT   (HI(0) | LO(24))
 
#define MULTU   (HI(0) | LO(25))
 
#define MUL_S   (HI(17) | FMT_S | LO(2))
 
#define NEG_S   (HI(17) | FMT_S | LO(7))
 
#define NOP   (HI(0) | LO(0))
 
#define NOR   (HI(0) | LO(39))
 
#define OR   (HI(0) | LO(37))
 
#define ORI   (HI(13))
 
#define SD   (HI(63))
 
#define SDL   (HI(44))
 
#define SDR   (HI(45))
 
#define SDC1   (HI(61))
 
#define SLT   (HI(0) | LO(42))
 
#define SLTI   (HI(10))
 
#define SLTIU   (HI(11))
 
#define SLTU   (HI(0) | LO(43))
 
#define SLL   (HI(0) | LO(0))
 
#define SLLV   (HI(0) | LO(4))
 
#define SRL   (HI(0) | LO(2))
 
#define SRLV   (HI(0) | LO(6))
 
#define SRA   (HI(0) | LO(3))
 
#define SRAV   (HI(0) | LO(7))
 
#define SUB_S   (HI(17) | FMT_S | LO(1))
 
#define SUBU   (HI(0) | LO(35))
 
#define SW   (HI(43))
 
#define SWL   (HI(42))
 
#define SWR   (HI(46))
 
#define SWC1   (HI(57))
 
#define TRUNC_W_S   (HI(17) | FMT_S | LO(13))
 
#define XOR   (HI(0) | LO(38))
 
#define XORI   (HI(14))
 
#define ADDU_W   DADDU
 
#define ADDIU_W   DADDIU
 
#define SLL_W   DSLL
 
#define SRA_W   DSRA
 
#define SUBU_W   DSUBU
 
#define STORE_W   SD
 
#define LOAD_W   LD
 
#define MOV_fmt(f)   (HI(17) | f | LO(6))
 
#define SIMM_MAX   (0x7fff)
 
#define SIMM_MIN   (-0x8000)
 
#define UIMM_MAX   (0xffff)
 
#define CPU_FEATURE_DETECTED   (1 << 0)
 
#define CPU_FEATURE_FPU   (1 << 1)
 
#define CPU_FEATURE_FP64   (1 << 2)
 
#define CPU_FEATURE_FR   (1 << 3)
 
#define LOAD_DATA   0x01
 
#define WORD_DATA   0x00
 
#define BYTE_DATA   0x02
 
#define HALF_DATA   0x04
 
#define INT_DATA   0x06
 
#define SIGNED_DATA   0x08
 
#define GPR_REG   0x0f
 
#define DOUBLE_DATA   0x10
 
#define SINGLE_DATA   0x12
 
#define MEM_MASK   0x1f
 
#define ARG_TEST   0x00020
 
#define ALT_KEEP_CACHE   0x00040
 
#define CUMULATIVE_OP   0x00080
 
#define LOGICAL_OP   0x00100
 
#define IMM_OP   0x00200
 
#define MOVE_OP   0x00400
 
#define SRC2_IMM   0x00800
 
#define UNUSED_DEST   0x01000
 
#define REG_DEST   0x02000
 
#define REG1_SOURCE   0x04000
 
#define REG2_SOURCE   0x08000
 
#define SLOW_SRC1   0x10000
 
#define SLOW_SRC2   0x20000
 
#define SLOW_DEST   0x40000
 
#define SELECT_OP(d, w)   (!(op & SLJIT_32) ? (d) : (w))
 
#define ARCH_32_64(a, b)   b
 
#define TO_ARGW_HI(argw)   (((argw) & ~0xffff) + (((argw) & 0x8000) ? 0x10000 : 0))
 
#define EMIT_LOGICAL(op_imm, op_reg)
 
#define EMIT_SHIFT(dimm, dimm32, imm, dv, v)
 
#define CHECK_IMM(flags, srcw)
 
#define SELECT_OP3(op, src2w, D, D32, W)   ((W) | ((sljit_ins)(src2w) << 6))
 
#define FLOAT_DATA(op)   (DOUBLE_DATA | ((op & SLJIT_32) >> 7))
 
#define FMT(op)   (FMT_S | (~(sljit_ins)op & SLJIT_32) << (21 - (5 + 3)))
 
#define BRANCH_LENGTH   8
 
#define BR_Z(src)
 
#define BR_NZ(src)
 
#define BR_T()
 
#define BR_F()
 
#define RESOLVE_IMM1()
 
#define RESOLVE_IMM2()
 
#define IMM_LEFT(memw)   IMM(memw)
 
#define IMM_RIGHT(memw)   IMM((memw) + SSIZE_OF(sw) - 1)
 
#define IMM_32_LEFT(memw)   IMM(memw)
 
#define IMM_32_RIGHT(memw)   IMM((memw) + SSIZE_OF(s32) - 1)
 
#define IMM_F64_FIRST_LEFT(memw)   IMM((memw) + SSIZE_OF(s32))
 
#define IMM_F64_FIRST_RIGHT(memw)   IMM((memw) + SSIZE_OF(f64) - 1)
 
#define IMM_F64_SECOND_LEFT(memw)   IMM(memw)
 
#define IMM_F64_SECOND_RIGHT(memw)   IMM((memw) + SSIZE_OF(s32) - 1)
 
#define IMM_16_FIRST(memw)   IMM(memw)
 
#define IMM_16_SECOND(memw)   IMM((memw) + 1)
 
#define MEM_CHECK_UNALIGNED(type)   ((type) & (SLJIT_MEM_UNALIGNED | SLJIT_MEM_ALIGNED_16 | SLJIT_MEM_ALIGNED_32))
 

Typedefs

typedef sljit_u32 sljit_ins
 

Functions

SLJIT_API_FUNC_ATTRIBUTE const char * sljit_get_platform_name (void)
 
static void get_cpu_features (void)
 
static sljit_s32 push_inst (struct sljit_compiler *compiler, sljit_ins ins, sljit_s32 delay_slot)
 
static SLJIT_INLINE sljit_ins invert_branch (sljit_uw flags)
 
static SLJIT_INLINE sljit_insdetect_jump_type (struct sljit_jump *jump, sljit_ins *code, sljit_sw executable_offset)
 
static SLJIT_INLINE void load_addr_to_reg (struct sljit_jump *jump)
 
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_s32 emit_op_mem (struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw)
 
static sljit_s32 emit_stack_frame_release (struct sljit_compiler *compiler, sljit_s32 frame_size, sljit_ins *ins_ptr)
 
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)
 
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_s32 getput_arg_fast (struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw)
 
static sljit_s32 can_cache (sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg, sljit_sw next_argw)
 
static sljit_s32 getput_arg (struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg, sljit_sw next_argw)
 
static SLJIT_INLINE sljit_s32 emit_op_mem2 (struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg1, sljit_sw arg1w, sljit_s32 arg2, sljit_sw arg2w)
 
static sljit_s32 emit_clz_ctz (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw src)
 
static sljit_s32 emit_rev (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw src)
 
static sljit_s32 emit_rev16 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw src)
 
static SLJIT_INLINE sljit_s32 emit_single_op (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 flags, sljit_s32 dst, sljit_s32 src1, sljit_sw src2)
 
static sljit_s32 emit_op (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 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_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_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_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 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_cmp (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
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_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_s16 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_fmem (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 freg, sljit_s32 mem, sljit_sw memw)
 
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)
 

Variables

static const sljit_u8 reg_map [SLJIT_NUMBER_OF_REGISTERS+7]
 
static const sljit_u8 freg_map [SLJIT_NUMBER_OF_FLOAT_REGISTERS+4]
 
static sljit_u32 cpu_feature_list = 0
 
static const sljit_ins data_transfer_insts [16+4]
 

Macro Definition Documentation

◆ ABS_S

#define ABS_S   (HI(17) | FMT_S | LO(5))

Definition at line 153 of file sljitNativeMIPS_common.c.

◆ ADD_S

#define ADD_S   (HI(17) | FMT_S | LO(0))

Definition at line 154 of file sljitNativeMIPS_common.c.

◆ ADDIU

#define ADDIU   (HI(9))

Definition at line 155 of file sljitNativeMIPS_common.c.

◆ ADDIU_W

#define ADDIU_W   DADDIU

Definition at line 352 of file sljitNativeMIPS_common.c.

◆ ADDU

#define ADDU   (HI(0) | LO(33))

Definition at line 156 of file sljitNativeMIPS_common.c.

◆ ADDU_W

#define ADDU_W   DADDU

Definition at line 351 of file sljitNativeMIPS_common.c.

◆ ALT_KEEP_CACHE

#define ALT_KEEP_CACHE   0x00040

Definition at line 900 of file sljitNativeMIPS_common.c.

◆ AND

#define AND   (HI(0) | LO(36))

Definition at line 157 of file sljitNativeMIPS_common.c.

◆ ANDI

#define ANDI   (HI(12))

Definition at line 158 of file sljitNativeMIPS_common.c.

◆ ARCH_32_64

#define ARCH_32_64 (   a,
  b 
)    b

Definition at line 1299 of file sljitNativeMIPS_common.c.

◆ ARG_TEST

#define ARG_TEST   0x00020

Definition at line 899 of file sljitNativeMIPS_common.c.

◆ B

#define B   (HI(4))

Definition at line 159 of file sljitNativeMIPS_common.c.

◆ BAL

#define BAL   (HI(1) | (17 << 16))

Definition at line 160 of file sljitNativeMIPS_common.c.

◆ BC1F

#define BC1F   (HI(17) | (8 << 21))

Definition at line 165 of file sljitNativeMIPS_common.c.

◆ BC1T

#define BC1T   (HI(17) | (8 << 21) | (1 << 16))

Definition at line 166 of file sljitNativeMIPS_common.c.

◆ BEQ

#define BEQ   (HI(4))

Definition at line 168 of file sljitNativeMIPS_common.c.

◆ BGEZ

#define BGEZ   (HI(1) | (1 << 16))

Definition at line 169 of file sljitNativeMIPS_common.c.

◆ BGTZ

#define BGTZ   (HI(7))

Definition at line 170 of file sljitNativeMIPS_common.c.

◆ BLEZ

#define BLEZ   (HI(6))

Definition at line 171 of file sljitNativeMIPS_common.c.

◆ BLTZ

#define BLTZ   (HI(1) | (0 << 16))

Definition at line 172 of file sljitNativeMIPS_common.c.

◆ BNE

#define BNE   (HI(5))

Definition at line 173 of file sljitNativeMIPS_common.c.

◆ BR_F

#define BR_F ( )
Value:
inst = BC1F | BRANCH_LENGTH; \
flags = IS_BIT16_COND; \
delay_check = FCSR_FCC;
#define BRANCH_LENGTH
#define BC1F

Definition at line 3280 of file sljitNativeMIPS_common.c.

◆ BR_NZ

#define BR_NZ (   src)
Value:
inst = BNE | SA(src) | TA(0) | BRANCH_LENGTH; \
flags = IS_BIT26_COND; \
delay_check = src;
#define TA(t)
#define BNE
#define SA(s)

Definition at line 3258 of file sljitNativeMIPS_common.c.

◆ BR_T

#define BR_T ( )
Value:
inst = BC1T | BRANCH_LENGTH; \
flags = IS_BIT16_COND; \
delay_check = FCSR_FCC;
#define BC1T

Definition at line 3276 of file sljitNativeMIPS_common.c.

◆ BR_Z

#define BR_Z (   src)
Value:
inst = BEQ | SA(src) | TA(0) | BRANCH_LENGTH; \
flags = IS_BIT26_COND; \
delay_check = src;
#define BEQ

Definition at line 3253 of file sljitNativeMIPS_common.c.

◆ BRANCH_LENGTH

#define BRANCH_LENGTH   8

Definition at line 3250 of file sljitNativeMIPS_common.c.

◆ BREAK

#define BREAK   (HI(0) | LO(13))

Definition at line 174 of file sljitNativeMIPS_common.c.

◆ BYTE_DATA

#define BYTE_DATA   0x02

Definition at line 888 of file sljitNativeMIPS_common.c.

◆ C_EQ_S

#define C_EQ_S   (HI(17) | FMT_S | LO(50))

Definition at line 186 of file sljitNativeMIPS_common.c.

◆ C_FD

#define C_FD   (0)

Definition at line 193 of file sljitNativeMIPS_common.c.

◆ C_OLE_S

#define C_OLE_S   (HI(17) | FMT_S | LO(54))

Definition at line 187 of file sljitNativeMIPS_common.c.

◆ C_OLT_S

#define C_OLT_S   (HI(17) | FMT_S | LO(52))

Definition at line 188 of file sljitNativeMIPS_common.c.

◆ C_UEQ_S

#define C_UEQ_S   (HI(17) | FMT_S | LO(51))

Definition at line 189 of file sljitNativeMIPS_common.c.

◆ C_ULE_S

#define C_ULE_S   (HI(17) | FMT_S | LO(55))

Definition at line 190 of file sljitNativeMIPS_common.c.

◆ C_ULT_S

#define C_ULT_S   (HI(17) | FMT_S | LO(53))

Definition at line 191 of file sljitNativeMIPS_common.c.

◆ C_UN_S

#define C_UN_S   (HI(17) | FMT_S | LO(49))

Definition at line 192 of file sljitNativeMIPS_common.c.

◆ CFC1

#define CFC1   (HI(17) | (2 << 21))

Definition at line 175 of file sljitNativeMIPS_common.c.

◆ CHECK_IMM

#define CHECK_IMM (   flags,
  srcw 
)
Value:
((!((flags) & LOGICAL_OP) && ((srcw) <= SIMM_MAX && (srcw) >= SIMM_MIN)) \
|| (((flags) & LOGICAL_OP) && !((srcw) & ~UIMM_MAX)))
static uch flags
#define SIMM_MIN
#define SIMM_MAX
#define UIMM_MAX
#define LOGICAL_OP

Definition at line 2255 of file sljitNativeMIPS_common.c.

◆ CPU_FEATURE_DETECTED

#define CPU_FEATURE_DETECTED   (1 << 0)

Definition at line 366 of file sljitNativeMIPS_common.c.

◆ CPU_FEATURE_FP64

#define CPU_FEATURE_FP64   (1 << 2)

Definition at line 368 of file sljitNativeMIPS_common.c.

◆ CPU_FEATURE_FPU

#define CPU_FEATURE_FPU   (1 << 1)

Definition at line 367 of file sljitNativeMIPS_common.c.

◆ CPU_FEATURE_FR

#define CPU_FEATURE_FR   (1 << 3)

Definition at line 369 of file sljitNativeMIPS_common.c.

◆ CUMULATIVE_OP

#define CUMULATIVE_OP   0x00080

Definition at line 901 of file sljitNativeMIPS_common.c.

◆ CVT_S_S

#define CVT_S_S   (HI(17) | FMT_S | LO(32))

Definition at line 195 of file sljitNativeMIPS_common.c.

◆ D

#define D (   d)    ((sljit_ins)reg_map[d] << 11)

Definition at line 129 of file sljitNativeMIPS_common.c.

◆ DA

#define DA (   d)    ((sljit_ins)(d) << 11)

Definition at line 136 of file sljitNativeMIPS_common.c.

◆ DADDIU

#define DADDIU   (HI(25))

Definition at line 196 of file sljitNativeMIPS_common.c.

◆ DADDU

#define DADDU   (HI(0) | LO(45))

Definition at line 197 of file sljitNativeMIPS_common.c.

◆ DDIV

#define DDIV   (HI(0) | LO(30))

Definition at line 210 of file sljitNativeMIPS_common.c.

◆ DDIVU

#define DDIVU   (HI(0) | LO(31))

Definition at line 211 of file sljitNativeMIPS_common.c.

◆ DIV

#define DIV   (HI(0) | LO(26))

Definition at line 212 of file sljitNativeMIPS_common.c.

◆ DIV_S

#define DIV_S   (HI(17) | FMT_S | LO(3))

Definition at line 217 of file sljitNativeMIPS_common.c.

◆ DIVU

#define DIVU   (HI(0) | LO(27))

Definition at line 213 of file sljitNativeMIPS_common.c.

◆ DMFC1

#define DMFC1   (HI(17) | (1 << 21))

Definition at line 221 of file sljitNativeMIPS_common.c.

◆ DMTC1

#define DMTC1   (HI(17) | (5 << 21))

Definition at line 222 of file sljitNativeMIPS_common.c.

◆ DMULT

#define DMULT   (HI(0) | LO(28))

Definition at line 214 of file sljitNativeMIPS_common.c.

◆ DMULTU

#define DMULTU   (HI(0) | LO(29))

Definition at line 215 of file sljitNativeMIPS_common.c.

◆ DOUBLE_DATA

#define DOUBLE_DATA   0x10

Definition at line 894 of file sljitNativeMIPS_common.c.

◆ DR

#define DR (   dr)    (reg_map[dr])

Definition at line 140 of file sljitNativeMIPS_common.c.

◆ DSLL

#define DSLL   (HI(0) | LO(56))

Definition at line 230 of file sljitNativeMIPS_common.c.

◆ DSLL32

#define DSLL32   (HI(0) | LO(60))

Definition at line 231 of file sljitNativeMIPS_common.c.

◆ DSLLV

#define DSLLV   (HI(0) | LO(20))

Definition at line 232 of file sljitNativeMIPS_common.c.

◆ DSRA

#define DSRA   (HI(0) | LO(59))

Definition at line 233 of file sljitNativeMIPS_common.c.

◆ DSRA32

#define DSRA32   (HI(0) | LO(63))

Definition at line 234 of file sljitNativeMIPS_common.c.

◆ DSRAV

#define DSRAV   (HI(0) | LO(23))

Definition at line 235 of file sljitNativeMIPS_common.c.

◆ DSRL

#define DSRL   (HI(0) | LO(58))

Definition at line 236 of file sljitNativeMIPS_common.c.

◆ DSRL32

#define DSRL32   (HI(0) | LO(62))

Definition at line 237 of file sljitNativeMIPS_common.c.

◆ DSRLV

#define DSRLV   (HI(0) | LO(22))

Definition at line 238 of file sljitNativeMIPS_common.c.

◆ DSUBU

#define DSUBU   (HI(0) | LO(47))

Definition at line 239 of file sljitNativeMIPS_common.c.

◆ EMIT_LOGICAL

#define EMIT_LOGICAL (   op_imm,
  op_reg 
)
Value:
if (flags & SRC2_IMM) { \
if (op & SLJIT_SET_Z) \
FAIL_IF(push_inst(compiler, op_imm | S(src1) | TA(EQUAL_FLAG) | IMM(src2), EQUAL_FLAG)); \
if (!(flags & UNUSED_DEST)) \
FAIL_IF(push_inst(compiler, op_imm | S(src1) | T(dst) | IMM(src2), DR(dst))); \
} \
else { \
if (op & SLJIT_SET_Z) \
FAIL_IF(push_inst(compiler, op_reg | S(src1) | T(src2) | DA(EQUAL_FLAG), EQUAL_FLAG)); \
if (!(flags & UNUSED_DEST)) \
FAIL_IF(push_inst(compiler, op_reg | S(src1) | T(src2) | D(dst), DR(dst))); \
}
#define SLJIT_SET_Z
Definition: sljitLir.h:1043
static sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_ins ins, sljit_s32 delay_slot)
#define DA(d)
#define DR(dr)
#define UNUSED_DEST
#define D(d)
#define S(s)
#define SRC2_IMM
#define IMM(imm)
#define EQUAL_FLAG
#define T(t)

Definition at line 1514 of file sljitNativeMIPS_common.c.

◆ EMIT_SHIFT

#define EMIT_SHIFT (   dimm,
  dimm32,
  imm,
  dv,
 
)
Value:
op_dimm = (dimm); \
op_dimm32 = (dimm32); \
op_imm = (imm); \
op_dv = (dv); \
op_v = (v);

Definition at line 1537 of file sljitNativeMIPS_common.c.

◆ EQUAL_FLAG

#define EQUAL_FLAG   3

Definition at line 94 of file sljitNativeMIPS_common.c.

◆ FCSR_REG

#define FCSR_REG   31

Definition at line 89 of file sljitNativeMIPS_common.c.

◆ FD

#define FD (   d)    ((sljit_ins)freg_map[d] << 6)

Definition at line 132 of file sljitNativeMIPS_common.c.

◆ FLOAT_DATA

#define FLOAT_DATA (   op)    (DOUBLE_DATA | ((op & SLJIT_32) >> 7))

Definition at line 2841 of file sljitNativeMIPS_common.c.

◆ FMT

#define FMT (   op)    (FMT_S | (~(sljit_ins)op & SLJIT_32) << (21 - (5 + 3)))

Definition at line 2842 of file sljitNativeMIPS_common.c.

◆ FMT_D

#define FMT_D   (17 << 21)

Definition at line 151 of file sljitNativeMIPS_common.c.

◆ FMT_S

#define FMT_S   (16 << 21)

Definition at line 150 of file sljitNativeMIPS_common.c.

◆ FR

#define FR (   dr)    (freg_map[dr])

Definition at line 141 of file sljitNativeMIPS_common.c.

◆ FS

#define FS (   s)    ((sljit_ins)freg_map[s] << 11)

Definition at line 131 of file sljitNativeMIPS_common.c.

◆ FT

#define FT (   t)    ((sljit_ins)freg_map[t] << 16)

Definition at line 130 of file sljitNativeMIPS_common.c.

◆ GPR_REG

#define GPR_REG   0x0f

Definition at line 893 of file sljitNativeMIPS_common.c.

◆ HALF_DATA

#define HALF_DATA   0x04

Definition at line 889 of file sljitNativeMIPS_common.c.

◆ HI

#define HI (   opcode)    ((sljit_ins)(opcode) << 26)

Definition at line 142 of file sljitNativeMIPS_common.c.

◆ IMM

#define IMM (   imm)    ((sljit_ins)(imm) & 0xffff)

Definition at line 137 of file sljitNativeMIPS_common.c.

◆ IMM_16_FIRST

#define IMM_16_FIRST (   memw)    IMM(memw)

Definition at line 3939 of file sljitNativeMIPS_common.c.

◆ IMM_16_SECOND

#define IMM_16_SECOND (   memw)    IMM((memw) + 1)

Definition at line 3940 of file sljitNativeMIPS_common.c.

◆ IMM_32_LEFT

#define IMM_32_LEFT (   memw)    IMM(memw)

Definition at line 3933 of file sljitNativeMIPS_common.c.

◆ IMM_32_RIGHT

#define IMM_32_RIGHT (   memw)    IMM((memw) + SSIZE_OF(s32) - 1)

Definition at line 3934 of file sljitNativeMIPS_common.c.

◆ IMM_F64_FIRST_LEFT

#define IMM_F64_FIRST_LEFT (   memw)    IMM((memw) + SSIZE_OF(s32))

Definition at line 3935 of file sljitNativeMIPS_common.c.

◆ IMM_F64_FIRST_RIGHT

#define IMM_F64_FIRST_RIGHT (   memw)    IMM((memw) + SSIZE_OF(f64) - 1)

Definition at line 3936 of file sljitNativeMIPS_common.c.

◆ IMM_F64_SECOND_LEFT

#define IMM_F64_SECOND_LEFT (   memw)    IMM(memw)

Definition at line 3937 of file sljitNativeMIPS_common.c.

◆ IMM_F64_SECOND_RIGHT

#define IMM_F64_SECOND_RIGHT (   memw)    IMM((memw) + SSIZE_OF(s32) - 1)

Definition at line 3938 of file sljitNativeMIPS_common.c.

◆ IMM_LEFT

#define IMM_LEFT (   memw)    IMM(memw)

Definition at line 3931 of file sljitNativeMIPS_common.c.

◆ IMM_OP

#define IMM_OP   0x00200

Definition at line 903 of file sljitNativeMIPS_common.c.

◆ IMM_RIGHT

#define IMM_RIGHT (   memw)    IMM((memw) + SSIZE_OF(sw) - 1)

Definition at line 3932 of file sljitNativeMIPS_common.c.

◆ INT_DATA

#define INT_DATA   0x06

Definition at line 890 of file sljitNativeMIPS_common.c.

◆ J

#define J   (HI(2))

Definition at line 240 of file sljitNativeMIPS_common.c.

◆ JAL

#define JAL   (HI(3))

Definition at line 241 of file sljitNativeMIPS_common.c.

◆ JALR

#define JALR   (HI(0) | LO(9))

Definition at line 242 of file sljitNativeMIPS_common.c.

◆ JR

#define JR   (HI(0) | LO(8))

Definition at line 246 of file sljitNativeMIPS_common.c.

◆ LD

#define LD   (HI(55))

Definition at line 248 of file sljitNativeMIPS_common.c.

◆ LDC1

#define LDC1   (HI(53))

Definition at line 251 of file sljitNativeMIPS_common.c.

◆ LDL

#define LDL   (HI(26))

Definition at line 249 of file sljitNativeMIPS_common.c.

◆ LDR

#define LDR   (HI(27))

Definition at line 250 of file sljitNativeMIPS_common.c.

◆ LO

#define LO (   opcode)    ((sljit_ins)(opcode))

Definition at line 143 of file sljitNativeMIPS_common.c.

◆ LOAD_DATA

#define LOAD_DATA   0x01

Definition at line 886 of file sljitNativeMIPS_common.c.

◆ LOAD_W

#define LOAD_W   LD

Definition at line 357 of file sljitNativeMIPS_common.c.

◆ LOGICAL_OP

#define LOGICAL_OP   0x00100

Definition at line 902 of file sljitNativeMIPS_common.c.

◆ LUI

#define LUI   (HI(15))

Definition at line 252 of file sljitNativeMIPS_common.c.

◆ LW

#define LW   (HI(35))

Definition at line 253 of file sljitNativeMIPS_common.c.

◆ LWC1

#define LWC1   (HI(49))

Definition at line 256 of file sljitNativeMIPS_common.c.

◆ LWL

#define LWL   (HI(34))

Definition at line 254 of file sljitNativeMIPS_common.c.

◆ LWR

#define LWR   (HI(38))

Definition at line 255 of file sljitNativeMIPS_common.c.

◆ MEM_CHECK_UNALIGNED

#define MEM_CHECK_UNALIGNED (   type)    ((type) & (SLJIT_MEM_UNALIGNED | SLJIT_MEM_ALIGNED_16 | SLJIT_MEM_ALIGNED_32))

Definition at line 3946 of file sljitNativeMIPS_common.c.

◆ MEM_MASK

#define MEM_MASK   0x1f

Definition at line 897 of file sljitNativeMIPS_common.c.

◆ MFC1

#define MFC1   (HI(17))

Definition at line 257 of file sljitNativeMIPS_common.c.

◆ MFHI

#define MFHI   (HI(0) | LO(16))

Definition at line 265 of file sljitNativeMIPS_common.c.

◆ MFLO

#define MFLO   (HI(0) | LO(18))

Definition at line 266 of file sljitNativeMIPS_common.c.

◆ MOV_fmt

#define MOV_fmt (   f)    (HI(17) | f | LO(6))

Definition at line 360 of file sljitNativeMIPS_common.c.

◆ MOVE_OP

#define MOVE_OP   0x00400

Definition at line 904 of file sljitNativeMIPS_common.c.

◆ MTC1

#define MTC1   (HI(17) | (4 << 21))

Definition at line 268 of file sljitNativeMIPS_common.c.

◆ MUL_S

#define MUL_S   (HI(17) | FMT_S | LO(2))

Definition at line 281 of file sljitNativeMIPS_common.c.

◆ MULT

#define MULT   (HI(0) | LO(24))

Definition at line 278 of file sljitNativeMIPS_common.c.

◆ MULTU

#define MULTU   (HI(0) | LO(25))

Definition at line 279 of file sljitNativeMIPS_common.c.

◆ NEG_S

#define NEG_S   (HI(17) | FMT_S | LO(7))

Definition at line 282 of file sljitNativeMIPS_common.c.

◆ NOP

#define NOP   (HI(0) | LO(0))

Definition at line 283 of file sljitNativeMIPS_common.c.

◆ NOR

#define NOR   (HI(0) | LO(39))

Definition at line 284 of file sljitNativeMIPS_common.c.

◆ OR

#define OR   (HI(0) | LO(37))

Definition at line 285 of file sljitNativeMIPS_common.c.

◆ ORI

#define ORI   (HI(13))

Definition at line 286 of file sljitNativeMIPS_common.c.

◆ OTHER_FLAG

#define OTHER_FLAG   1

Definition at line 95 of file sljitNativeMIPS_common.c.

◆ PIC_ADDR_REG

#define PIC_ADDR_REG   TMP_REG1

Definition at line 86 of file sljitNativeMIPS_common.c.

◆ REG1_SOURCE

#define REG1_SOURCE   0x04000

Definition at line 909 of file sljitNativeMIPS_common.c.

◆ REG2_SOURCE

#define REG2_SOURCE   0x08000

Definition at line 910 of file sljitNativeMIPS_common.c.

◆ REG_DEST

#define REG_DEST   0x02000

Definition at line 908 of file sljitNativeMIPS_common.c.

◆ RESOLVE_IMM1

#define RESOLVE_IMM1 ( )
Value:
if (src1 == SLJIT_IMM) { \
if (src1w) { \
PTR_FAIL_IF(load_immediate(compiler, DR(TMP_REG1), src1w)); \
src1 = TMP_REG1; \
} \
else \
src1 = 0; \
}
#define SLJIT_IMM
Definition: sljitLir.h:931
static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 reg, sljit_uw imm)
#define TMP_REG1

Definition at line 3381 of file sljitNativeMIPS_common.c.

◆ RESOLVE_IMM2

#define RESOLVE_IMM2 ( )
Value:
if (src2 == SLJIT_IMM) { \
if (src2w) { \
PTR_FAIL_IF(load_immediate(compiler, DR(src2_tmp_reg), src2w)); \
src2 = src2_tmp_reg; \
} \
else \
src2 = 0; \
}

Definition at line 3391 of file sljitNativeMIPS_common.c.

◆ RETURN_ADDR_REG

#define RETURN_ADDR_REG   31

Definition at line 91 of file sljitNativeMIPS_common.c.

◆ S

#define S (   s)    ((sljit_ins)reg_map[s] << 21)

Definition at line 127 of file sljitNativeMIPS_common.c.

◆ SA

#define SA (   s)    ((sljit_ins)(s) << 21)

Definition at line 134 of file sljitNativeMIPS_common.c.

◆ SD

#define SD   (HI(63))

Definition at line 291 of file sljitNativeMIPS_common.c.

◆ SDC1

#define SDC1   (HI(61))

Definition at line 294 of file sljitNativeMIPS_common.c.

◆ SDL

#define SDL   (HI(44))

Definition at line 292 of file sljitNativeMIPS_common.c.

◆ SDR

#define SDR   (HI(45))

Definition at line 293 of file sljitNativeMIPS_common.c.

◆ SELECT_OP

#define SELECT_OP (   d,
 
)    (!(op & SLJIT_32) ? (d) : (w))

Definition at line 921 of file sljitNativeMIPS_common.c.

◆ SELECT_OP3

#define SELECT_OP3 (   op,
  src2w,
  D,
  D32,
  W 
)    ((W) | ((sljit_ins)(src2w) << 6))

Definition at line 2648 of file sljitNativeMIPS_common.c.

◆ SH_IMM

#define SH_IMM (   imm)    ((sljit_ins)(imm) << 6)

Definition at line 138 of file sljitNativeMIPS_common.c.

◆ SIGNED_DATA

#define SIGNED_DATA   0x08

Definition at line 891 of file sljitNativeMIPS_common.c.

◆ SIMM_MAX

#define SIMM_MAX   (0x7fff)

Definition at line 362 of file sljitNativeMIPS_common.c.

◆ SIMM_MIN

#define SIMM_MIN   (-0x8000)

Definition at line 363 of file sljitNativeMIPS_common.c.

◆ SINGLE_DATA

#define SINGLE_DATA   0x12

Definition at line 895 of file sljitNativeMIPS_common.c.

◆ SLJIT_IS_FPU_AVAILABLE

#define SLJIT_IS_FPU_AVAILABLE   0

Definition at line 35 of file sljitNativeMIPS_common.c.

◆ SLL

#define SLL   (HI(0) | LO(0))

Definition at line 299 of file sljitNativeMIPS_common.c.

◆ SLL_W

#define SLL_W   DSLL

Definition at line 353 of file sljitNativeMIPS_common.c.

◆ SLLV

#define SLLV   (HI(0) | LO(4))

Definition at line 300 of file sljitNativeMIPS_common.c.

◆ SLOW_DEST

#define SLOW_DEST   0x40000

Definition at line 913 of file sljitNativeMIPS_common.c.

◆ SLOW_SRC1

#define SLOW_SRC1   0x10000

Definition at line 911 of file sljitNativeMIPS_common.c.

◆ SLOW_SRC2

#define SLOW_SRC2   0x20000

Definition at line 912 of file sljitNativeMIPS_common.c.

◆ SLT

#define SLT   (HI(0) | LO(42))

Definition at line 295 of file sljitNativeMIPS_common.c.

◆ SLTI

#define SLTI   (HI(10))

Definition at line 296 of file sljitNativeMIPS_common.c.

◆ SLTIU

#define SLTIU   (HI(11))

Definition at line 297 of file sljitNativeMIPS_common.c.

◆ SLTU

#define SLTU   (HI(0) | LO(43))

Definition at line 298 of file sljitNativeMIPS_common.c.

◆ SRA

#define SRA   (HI(0) | LO(3))

Definition at line 303 of file sljitNativeMIPS_common.c.

◆ SRA_W

#define SRA_W   DSRA

Definition at line 354 of file sljitNativeMIPS_common.c.

◆ SRAV

#define SRAV   (HI(0) | LO(7))

Definition at line 304 of file sljitNativeMIPS_common.c.

◆ SRC2_IMM

#define SRC2_IMM   0x00800

Definition at line 905 of file sljitNativeMIPS_common.c.

◆ SRL

#define SRL   (HI(0) | LO(2))

Definition at line 301 of file sljitNativeMIPS_common.c.

◆ SRLV

#define SRLV   (HI(0) | LO(6))

Definition at line 302 of file sljitNativeMIPS_common.c.

◆ STORE_W

#define STORE_W   SD

Definition at line 356 of file sljitNativeMIPS_common.c.

◆ SUB_S

#define SUB_S   (HI(17) | FMT_S | LO(1))

Definition at line 305 of file sljitNativeMIPS_common.c.

◆ SUBU

#define SUBU   (HI(0) | LO(35))

Definition at line 306 of file sljitNativeMIPS_common.c.

◆ SUBU_W

#define SUBU_W   DSUBU

Definition at line 355 of file sljitNativeMIPS_common.c.

◆ SW

#define SW   (HI(43))

Definition at line 307 of file sljitNativeMIPS_common.c.

◆ SWC1

#define SWC1   (HI(57))

Definition at line 310 of file sljitNativeMIPS_common.c.

◆ SWL

#define SWL   (HI(42))

Definition at line 308 of file sljitNativeMIPS_common.c.

◆ SWR

#define SWR   (HI(46))

Definition at line 309 of file sljitNativeMIPS_common.c.

◆ T

#define T (   t)    ((sljit_ins)reg_map[t] << 16)

Definition at line 128 of file sljitNativeMIPS_common.c.

◆ TA

#define TA (   t)    ((sljit_ins)(t) << 16)

Definition at line 135 of file sljitNativeMIPS_common.c.

◆ TMP_FREG1

#define TMP_FREG1   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)

Definition at line 101 of file sljitNativeMIPS_common.c.

◆ TMP_FREG2

#define TMP_FREG2   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)

Definition at line 102 of file sljitNativeMIPS_common.c.

◆ TMP_FREG3

#define TMP_FREG3   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3)

Definition at line 103 of file sljitNativeMIPS_common.c.

◆ TMP_REG1

#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)

Definition at line 81 of file sljitNativeMIPS_common.c.

◆ TMP_REG2

#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)

Definition at line 82 of file sljitNativeMIPS_common.c.

◆ TMP_REG3

#define TMP_REG3   (SLJIT_NUMBER_OF_REGISTERS + 4)

Definition at line 83 of file sljitNativeMIPS_common.c.

◆ TO_ARGW_HI

#define TO_ARGW_HI (   argw)    (((argw) & ~0xffff) + (((argw) & 0x8000) ? 0x10000 : 0))

Definition at line 1347 of file sljitNativeMIPS_common.c.

◆ TRUNC_W_S

#define TRUNC_W_S   (HI(17) | FMT_S | LO(13))

Definition at line 311 of file sljitNativeMIPS_common.c.

◆ UIMM_MAX

#define UIMM_MAX   (0xffff)

Definition at line 364 of file sljitNativeMIPS_common.c.

◆ UNUSED_DEST

#define UNUSED_DEST   0x01000

Definition at line 907 of file sljitNativeMIPS_common.c.

◆ WORD_DATA

#define WORD_DATA   0x00

Definition at line 887 of file sljitNativeMIPS_common.c.

◆ XOR

#define XOR   (HI(0) | LO(38))

Definition at line 315 of file sljitNativeMIPS_common.c.

◆ XORI

#define XORI   (HI(14))

Definition at line 316 of file sljitNativeMIPS_common.c.

Typedef Documentation

◆ sljit_ins

Definition at line 79 of file sljitNativeMIPS_common.c.

Function Documentation

◆ can_cache()

static sljit_s32 can_cache ( sljit_s32  arg,
sljit_sw  argw,
sljit_s32  next_arg,
sljit_sw  next_argw 
)
static

Definition at line 1351 of file sljitNativeMIPS_common.c.

References SIMM_MAX, SIMM_MIN, SLJIT_ASSERT, SLJIT_MEM, and TO_ARGW_HI.

Referenced by emit_op(), and sljit_emit_fop2().

◆ detect_jump_type()

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

◆ emit_clz_ctz()

static sljit_s32 emit_clz_ctz ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  src 
)
static

◆ emit_op()

static sljit_s32 emit_op ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  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_ar,
sljit_s32  arg,
sljit_sw  argw 
)
static

◆ emit_op_mem2()

static SLJIT_INLINE sljit_s32 emit_op_mem2 ( struct sljit_compiler compiler,
sljit_s32  flags,
sljit_s32  reg,
sljit_s32  arg1,
sljit_sw  arg1w,
sljit_s32  arg2,
sljit_sw  arg2w 
)
static

◆ emit_rev()

static sljit_s32 emit_rev ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  src 
)
static

◆ emit_rev16()

static sljit_s32 emit_rev16 ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  src 
)
static

Definition at line 1674 of file sljitNativeMIPS_common.c.

References ANDI, D, DR, DSLL32, DSRA32, DSRL, DSRL32, FAIL_IF, OR, push_inst(), S, SELECT_OP, SH_IMM, SLJIT_REV_U16, SLL, SRA, SRL, T, and TMP_REG1.

Referenced by emit_single_op().

◆ emit_single_op()

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

◆ emit_stack_frame_release()

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

◆ get_cpu_features()

static void get_cpu_features ( void  )
static

◆ getput_arg()

static sljit_s32 getput_arg ( struct sljit_compiler compiler,
sljit_s32  flags,
sljit_s32  reg_ar,
sljit_s32  arg,
sljit_sw  argw,
sljit_s32  next_arg,
sljit_sw  next_argw 
)
static

◆ getput_arg_fast()

static sljit_s32 getput_arg_fast ( struct sljit_compiler compiler,
sljit_s32  flags,
sljit_s32  reg_ar,
sljit_s32  arg,
sljit_sw  argw 
)
static

◆ invert_branch()

static SLJIT_INLINE sljit_ins invert_branch ( sljit_uw  flags)
static

Definition at line 476 of file sljitNativeMIPS_common.c.

References flags.

Referenced by detect_jump_type().

◆ load_addr_to_reg()

static SLJIT_INLINE void load_addr_to_reg ( struct sljit_jump jump)
static

◆ push_inst()

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

◆ sljit_cmp_info()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_cmp_info ( sljit_s32  type)

Definition at line 875 of file sljitNativeMIPS_common.c.

References SLJIT_UNUSED_ARG.

◆ sljit_emit_cmp()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2,
sljit_sw  src2w 
)

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

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

◆ 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 2634 of file sljitNativeMIPS_common.c.

References CHECK, CHECK_ERROR, and sljit_emit_op2().

◆ 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_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 38 of file sljitNativeMIPS_common.c.

◆ sljit_get_register_index()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index ( sljit_s32  type,
sljit_s32  reg 
)

Definition at line 2813 of file sljitNativeMIPS_common.c.

References FR, reg_map, SLJIT_FLOAT_REGISTER, and SLJIT_GP_REGISTER.

◆ sljit_has_cpu_feature()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature ( sljit_s32  feature_type)

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

◆ update_mem_addr()

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

Variable Documentation

◆ cpu_feature_list

sljit_u32 cpu_feature_list = 0
static

◆ data_transfer_insts

const sljit_ins data_transfer_insts[16+4]
static
Initial value:
= {
((sljit_ins)( 63 ) << 26) ,
((sljit_ins)( 55 ) << 26) ,
((sljit_ins)( 40 ) << 26) ,
((sljit_ins)( 36 ) << 26) ,
((sljit_ins)( 41 ) << 26) ,
((sljit_ins)( 37 ) << 26) ,
((sljit_ins)( 43 ) << 26) ,
((sljit_ins)( 39 ) << 26) ,
((sljit_ins)( 63 ) << 26) ,
((sljit_ins)( 55 ) << 26) ,
((sljit_ins)( 40 ) << 26) ,
((sljit_ins)( 32 ) << 26) ,
((sljit_ins)( 41 ) << 26) ,
((sljit_ins)( 33 ) << 26) ,
((sljit_ins)( 43 ) << 26) ,
((sljit_ins)( 35 ) << 26) ,
((sljit_ins)( 61 ) << 26) ,
((sljit_ins)( 53 ) << 26) ,
((sljit_ins)( 57 ) << 26) ,
((sljit_ins)( 49 ) << 26) ,
}
sljit_u32 sljit_ins
sljit_u32 sljit_ins

Definition at line 1302 of file sljitNativeMIPS_common.c.

Referenced by emit_op_mem(), getput_arg(), getput_arg_fast(), and sljit_emit_mem().

◆ freg_map

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

Definition at line 117 of file sljitNativeMIPS_common.c.

◆ reg_map

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

Definition at line 97 of file sljitNativeMIPS_common.c.

Referenced by sljit_get_register_index().

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