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

Go to the source code of this file.

Go to the SVN repository for this file.

Macros

#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)
 
#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)
 
#define TMP_ZERO   (SLJIT_NUMBER_OF_REGISTERS + 4)
 
#define TMP_CALL_REG   TMP_REG1
 
#define TMP_FREG1   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
 
#define TMP_FREG2   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
 
#define D(d)   ((sljit_ins)reg_map[d] << 21)
 
#define S(s)   ((sljit_ins)reg_map[s] << 21)
 
#define A(a)   ((sljit_ins)reg_map[a] << 16)
 
#define B(b)   ((sljit_ins)reg_map[b] << 11)
 
#define C(c)   ((sljit_ins)reg_map[c] << 6)
 
#define FD(fd)   ((sljit_ins)freg_map[fd] << 21)
 
#define FS(fs)   ((sljit_ins)freg_map[fs] << 21)
 
#define FA(fa)   ((sljit_ins)freg_map[fa] << 16)
 
#define FB(fb)   ((sljit_ins)freg_map[fb] << 11)
 
#define FC(fc)   ((sljit_ins)freg_map[fc] << 6)
 
#define IMM(imm)   ((sljit_ins)(imm) & 0xffff)
 
#define CRD(d)   ((sljit_ins)(d) << 21)
 
#define OE(flags)   ((flags) & ALT_SET_FLAGS)
 
#define RC(flags)   ((sljit_ins)((flags) & ALT_SET_FLAGS) >> 10)
 
#define HI(opcode)   ((sljit_ins)(opcode) << 26)
 
#define LO(opcode)   ((sljit_ins)(opcode) << 1)
 
#define ADD   (HI(31) | LO(266))
 
#define ADDC   (HI(31) | LO(10))
 
#define ADDE   (HI(31) | LO(138))
 
#define ADDI   (HI(14))
 
#define ADDIC   (HI(13))
 
#define ADDIS   (HI(15))
 
#define ADDME   (HI(31) | LO(234))
 
#define AND   (HI(31) | LO(28))
 
#define ANDI   (HI(28))
 
#define ANDIS   (HI(29))
 
#define Bx   (HI(18))
 
#define BCx   (HI(16))
 
#define BCCTR   (HI(19) | LO(528) | (3 << 11))
 
#define BLR   (HI(19) | LO(16) | (0x14 << 21))
 
#define CNTLZD   (HI(31) | LO(58))
 
#define CNTLZW   (HI(31) | LO(26))
 
#define CMP   (HI(31) | LO(0))
 
#define CMPI   (HI(11))
 
#define CMPL   (HI(31) | LO(32))
 
#define CMPLI   (HI(10))
 
#define CROR   (HI(19) | LO(449))
 
#define DCBT   (HI(31) | LO(278))
 
#define DIVD   (HI(31) | LO(489))
 
#define DIVDU   (HI(31) | LO(457))
 
#define DIVW   (HI(31) | LO(491))
 
#define DIVWU   (HI(31) | LO(459))
 
#define EXTSB   (HI(31) | LO(954))
 
#define EXTSH   (HI(31) | LO(922))
 
#define EXTSW   (HI(31) | LO(986))
 
#define FABS   (HI(63) | LO(264))
 
#define FADD   (HI(63) | LO(21))
 
#define FADDS   (HI(59) | LO(21))
 
#define FCFID   (HI(63) | LO(846))
 
#define FCMPU   (HI(63) | LO(0))
 
#define FCTIDZ   (HI(63) | LO(815))
 
#define FCTIWZ   (HI(63) | LO(15))
 
#define FDIV   (HI(63) | LO(18))
 
#define FDIVS   (HI(59) | LO(18))
 
#define FMR   (HI(63) | LO(72))
 
#define FMUL   (HI(63) | LO(25))
 
#define FMULS   (HI(59) | LO(25))
 
#define FNEG   (HI(63) | LO(40))
 
#define FRSP   (HI(63) | LO(12))
 
#define FSUB   (HI(63) | LO(20))
 
#define FSUBS   (HI(59) | LO(20))
 
#define LD   (HI(58) | 0)
 
#define LFD   (HI(50))
 
#define LFS   (HI(48))
 
#define LHBRX   (HI(31) | LO(790))
 
#define LWBRX   (HI(31) | LO(534))
 
#define LWZ   (HI(32))
 
#define MFCR   (HI(31) | LO(19))
 
#define MFLR   (HI(31) | LO(339) | 0x80000)
 
#define MFXER   (HI(31) | LO(339) | 0x10000)
 
#define MTCTR   (HI(31) | LO(467) | 0x90000)
 
#define MTLR   (HI(31) | LO(467) | 0x80000)
 
#define MTXER   (HI(31) | LO(467) | 0x10000)
 
#define MULHD   (HI(31) | LO(73))
 
#define MULHDU   (HI(31) | LO(9))
 
#define MULHW   (HI(31) | LO(75))
 
#define MULHWU   (HI(31) | LO(11))
 
#define MULLD   (HI(31) | LO(233))
 
#define MULLI   (HI(7))
 
#define MULLW   (HI(31) | LO(235))
 
#define NEG   (HI(31) | LO(104))
 
#define NOP   (HI(24))
 
#define NOR   (HI(31) | LO(124))
 
#define OR   (HI(31) | LO(444))
 
#define ORI   (HI(24))
 
#define ORIS   (HI(25))
 
#define RLDCL   (HI(30) | LO(8))
 
#define RLDICL   (HI(30) | LO(0 << 1))
 
#define RLDICR   (HI(30) | LO(1 << 1))
 
#define RLDIMI   (HI(30) | LO(3 << 1))
 
#define RLWIMI   (HI(20))
 
#define RLWINM   (HI(21))
 
#define RLWNM   (HI(23))
 
#define SLD   (HI(31) | LO(27))
 
#define SLW   (HI(31) | LO(24))
 
#define SRAD   (HI(31) | LO(794))
 
#define SRADI   (HI(31) | LO(413 << 1))
 
#define SRAW   (HI(31) | LO(792))
 
#define SRAWI   (HI(31) | LO(824))
 
#define SRD   (HI(31) | LO(539))
 
#define SRW   (HI(31) | LO(536))
 
#define STD   (HI(62) | 0)
 
#define STDU   (HI(62) | 1)
 
#define STDUX   (HI(31) | LO(181))
 
#define STFD   (HI(54))
 
#define STFIWX   (HI(31) | LO(983))
 
#define STFS   (HI(52))
 
#define STHBRX   (HI(31) | LO(918))
 
#define STW   (HI(36))
 
#define STWBRX   (HI(31) | LO(662))
 
#define STWU   (HI(37))
 
#define STWUX   (HI(31) | LO(183))
 
#define SUBF   (HI(31) | LO(40))
 
#define SUBFC   (HI(31) | LO(8))
 
#define SUBFE   (HI(31) | LO(136))
 
#define SUBFIC   (HI(8))
 
#define XOR   (HI(31) | LO(316))
 
#define XORI   (HI(26))
 
#define XORIS   (HI(27))
 
#define SIMM_MAX   (0x7fff)
 
#define SIMM_MIN   (-0x8000)
 
#define UIMM_MAX   (0xffff)
 
#define RLWI_SH(sh)   ((sljit_ins)(sh) << 11)
 
#define RLWI_MBE(mb, me)   (((sljit_ins)(mb) << 6) | ((sljit_ins)(me) << 1))
 
#define RLDI_SH(sh)   ((((sljit_ins)(sh) & 0x1f) << 11) | (((sljit_ins)(sh) & 0x20) >> 4))
 
#define RLDI_MB(mb)   ((((sljit_ins)(mb) & 0x1f) << 6) | ((sljit_ins)(mb) & 0x20))
 
#define RLDI_ME(me)   RLDI_MB(me)
 
#define SLWI(shift)   (RLWINM | RLWI_SH(shift) | RLWI_MBE(0, 31 - (shift)))
 
#define SLDI(shift)   (RLDICR | RLDI_SH(shift) | RLDI_ME(63 - (shift)))
 
#define SRWI(shift)   (RLWINM | RLWI_SH(32 - (shift)) | RLWI_MBE((shift), 31))
 
#define SRDI(shift)   (RLDICL | RLDI_SH(64 - (shift)) | RLDI_MB(shift))
 
#define SLWI_W(shift)   SLDI(shift)
 
#define TMP_MEM_OFFSET   (6 * sizeof(sljit_sw))
 
#define TMP_MEM_OFFSET_LO   (TMP_MEM_OFFSET + sizeof(sljit_s32))
 
#define TMP_MEM_OFFSET_HI   (TMP_MEM_OFFSET)
 
#define LWBRX_FIRST_REG   S(dst)
 
#define LWBRX_SECOND_REG   S(TMP_REG1)
 
#define LOAD_DATA   0x01
 
#define INDEXED   0x02
 
#define SIGNED_DATA   0x04
 
#define WORD_DATA   0x00
 
#define BYTE_DATA   0x08
 
#define HALF_DATA   0x10
 
#define INT_DATA   0x18
 
#define GPR_REG   0x1f
 
#define DOUBLE_DATA   0x20
 
#define MEM_MASK   0x7f
 
#define FLOAT_DATA(op)   (DOUBLE_DATA | ((op & SLJIT_32) >> 6))
 
#define ALT_SIGN_EXT   0x000100
 
#define ALT_SET_FLAGS   0x000400
 
#define ALT_FORM1   0x001000
 
#define ALT_FORM2   0x002000
 
#define ALT_FORM3   0x004000
 
#define ALT_FORM4   0x008000
 
#define ALT_FORM5   0x010000
 
#define REG_DEST   0x000001
 
#define REG1_SOURCE   0x000002
 
#define REG2_SOURCE   0x000004
 
#define STACK_STORE   STD
 
#define STACK_LOAD   LD
 
#define LR_SAVE_OFFSET   SSIZE_OF(sw)
 
#define STACK_MAX_DISTANCE   (0x8000 - SSIZE_OF(sw) - LR_SAVE_OFFSET)
 
#define ARCH_32_64(a, b)   b
 
#define INST_CODE_AND_DST(inst, flags, reg)    (((sljit_ins)(inst) & ~(sljit_ins)INT_ALIGNED) | (sljit_ins)(((flags) & MEM_MASK) <= GPR_REG ? D(reg) : FD(reg)))
 
#define EMIT_MOV(type, type_flags, type_cast)    emit_op(compiler, (src == SLJIT_IMM) ? SLJIT_MOV : type, flags | (type_flags), dst, dstw, TMP_REG1, 0, src, (src == SLJIT_IMM) ? type_cast srcw : srcw)
 
#define TEST_SL_IMM(src, srcw)    ((src) == SLJIT_IMM && (srcw) <= SIMM_MAX && (srcw) >= SIMM_MIN)
 
#define TEST_UL_IMM(src, srcw)    ((src) == SLJIT_IMM && !((srcw) & ~0xffff))
 
#define TEST_UH_IMM(src, srcw)    ((src) == SLJIT_IMM && !((srcw) & ~(sljit_sw)0xffff0000))
 
#define TEST_SH_IMM(src, srcw)    ((src) == SLJIT_IMM && !((srcw) & 0xffff))
 
#define TEST_ADD_IMM(src, srcw)    ((src) == SLJIT_IMM)
 
#define TEST_UI_IMM(src, srcw)    ((src) == SLJIT_IMM)
 
#define TEST_ADD_FORM1(op)    (GET_FLAG_TYPE(op) == SLJIT_OVERFLOW)
 
#define TEST_SUB_FORM2(op)    (GET_FLAG_TYPE(op) >= SLJIT_SIG_LESS && GET_FLAG_TYPE(op) <= SLJIT_SIG_LESS_EQUAL)
 
#define TEST_SUB_FORM3(op)    (GET_FLAG_TYPE(op) == SLJIT_OVERFLOW)
 
#define SELECT_FOP(op, single, double)   ((sljit_ins)((op & SLJIT_32) ? single : double))
 
#define EMIT_MEM_LOAD_IMM(inst, mem, memw)
 

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_insdetect_jump_type (struct sljit_jump *jump, sljit_ins *code_ptr, sljit_ins *code, sljit_sw executable_offset)
 
static 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_s32 emit_op_mem (struct sljit_compiler *compiler, sljit_s32 inp_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)
 
static sljit_s32 emit_op (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 input_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)
 
static sljit_s32 emit_rev (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_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)
 
static sljit_s32 emit_prefetch (struct sljit_compiler *compiler, sljit_s32 src, sljit_sw srcw)
 
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_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)
 
static sljit_ins get_bo_bi_flags (struct sljit_compiler *compiler, sljit_s32 type)
 
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)
 
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)
 
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_const (sljit_uw addr, sljit_sw new_constant, sljit_sw executable_offset)
 

Variables

static const sljit_u8 reg_map [SLJIT_NUMBER_OF_REGISTERS+7]
 
static const sljit_u8 freg_map [SLJIT_NUMBER_OF_FLOAT_REGISTERS+3]
 
static const sljit_ins data_transfer_insts [64+16]
 
static const sljit_ins updated_data_transfer_insts [64]
 

Macro Definition Documentation

◆ A

#define A (   a)    ((sljit_ins)reg_map[a] << 16)

Definition at line 120 of file sljitNativePPC_common.c.

◆ ADD

#define ADD   (HI(31) | LO(266))

Definition at line 139 of file sljitNativePPC_common.c.

◆ ADDC

#define ADDC   (HI(31) | LO(10))

Definition at line 140 of file sljitNativePPC_common.c.

◆ ADDE

#define ADDE   (HI(31) | LO(138))

Definition at line 141 of file sljitNativePPC_common.c.

◆ ADDI

#define ADDI   (HI(14))

Definition at line 142 of file sljitNativePPC_common.c.

◆ ADDIC

#define ADDIC   (HI(13))

Definition at line 143 of file sljitNativePPC_common.c.

◆ ADDIS

#define ADDIS   (HI(15))

Definition at line 144 of file sljitNativePPC_common.c.

◆ ADDME

#define ADDME   (HI(31) | LO(234))

Definition at line 145 of file sljitNativePPC_common.c.

◆ ALT_FORM1

#define ALT_FORM1   0x001000

Definition at line 805 of file sljitNativePPC_common.c.

◆ ALT_FORM2

#define ALT_FORM2   0x002000

Definition at line 806 of file sljitNativePPC_common.c.

◆ ALT_FORM3

#define ALT_FORM3   0x004000

Definition at line 807 of file sljitNativePPC_common.c.

◆ ALT_FORM4

#define ALT_FORM4   0x008000

Definition at line 808 of file sljitNativePPC_common.c.

◆ ALT_FORM5

#define ALT_FORM5   0x010000

Definition at line 809 of file sljitNativePPC_common.c.

◆ ALT_SET_FLAGS

#define ALT_SET_FLAGS   0x000400

Definition at line 804 of file sljitNativePPC_common.c.

◆ ALT_SIGN_EXT

#define ALT_SIGN_EXT   0x000100

Definition at line 802 of file sljitNativePPC_common.c.

◆ AND

#define AND   (HI(31) | LO(28))

Definition at line 146 of file sljitNativePPC_common.c.

◆ ANDI

#define ANDI   (HI(28))

Definition at line 147 of file sljitNativePPC_common.c.

◆ ANDIS

#define ANDIS   (HI(29))

Definition at line 148 of file sljitNativePPC_common.c.

◆ ARCH_32_64

#define ARCH_32_64 (   a,
  b 
)    b

Definition at line 1098 of file sljitNativePPC_common.c.

◆ B

#define B (   b)    ((sljit_ins)reg_map[b] << 11)

Definition at line 121 of file sljitNativePPC_common.c.

◆ BCCTR

#define BCCTR   (HI(19) | LO(528) | (3 << 11))

Definition at line 151 of file sljitNativePPC_common.c.

◆ BCx

#define BCx   (HI(16))

Definition at line 150 of file sljitNativePPC_common.c.

◆ BLR

#define BLR   (HI(19) | LO(16) | (0x14 << 21))

Definition at line 152 of file sljitNativePPC_common.c.

◆ Bx

#define Bx   (HI(18))

Definition at line 149 of file sljitNativePPC_common.c.

◆ BYTE_DATA

#define BYTE_DATA   0x08

Definition at line 788 of file sljitNativePPC_common.c.

◆ C

#define C (   c)    ((sljit_ins)reg_map[c] << 6)

Definition at line 122 of file sljitNativePPC_common.c.

◆ CMP

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

Definition at line 158 of file sljitNativePPC_common.c.

◆ CMPI

#define CMPI   (HI(11))

Definition at line 159 of file sljitNativePPC_common.c.

◆ CMPL

#define CMPL   (HI(31) | LO(32))

Definition at line 160 of file sljitNativePPC_common.c.

◆ CMPLI

#define CMPLI   (HI(10))

Definition at line 161 of file sljitNativePPC_common.c.

◆ CNTLZD

#define CNTLZD   (HI(31) | LO(58))

Definition at line 156 of file sljitNativePPC_common.c.

◆ CNTLZW

#define CNTLZW   (HI(31) | LO(26))

Definition at line 157 of file sljitNativePPC_common.c.

◆ CRD

#define CRD (   d)    ((sljit_ins)(d) << 21)

Definition at line 129 of file sljitNativePPC_common.c.

◆ CROR

#define CROR   (HI(19) | LO(449))

Definition at line 162 of file sljitNativePPC_common.c.

◆ D

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

Definition at line 118 of file sljitNativePPC_common.c.

◆ DCBT

#define DCBT   (HI(31) | LO(278))

Definition at line 163 of file sljitNativePPC_common.c.

◆ DIVD

#define DIVD   (HI(31) | LO(489))

Definition at line 164 of file sljitNativePPC_common.c.

◆ DIVDU

#define DIVDU   (HI(31) | LO(457))

Definition at line 165 of file sljitNativePPC_common.c.

◆ DIVW

#define DIVW   (HI(31) | LO(491))

Definition at line 166 of file sljitNativePPC_common.c.

◆ DIVWU

#define DIVWU   (HI(31) | LO(459))

Definition at line 167 of file sljitNativePPC_common.c.

◆ DOUBLE_DATA

#define DOUBLE_DATA   0x20

Definition at line 793 of file sljitNativePPC_common.c.

◆ EMIT_MEM_LOAD_IMM

#define EMIT_MEM_LOAD_IMM (   inst,
  mem,
  memw 
)
Value:
((((inst) & INT_ALIGNED) && ((memw) & 0x3) != 0) \
|| ((sljit_s16)(memw) > SIMM_MAX - SSIZE_OF(sw)) \
|| ((memw) > 0x7fff7fffl || (memw) < -0x80000000l)) \
static CStopWatch sw
signed short int sljit_s16
#define SIMM_MAX
static SLJIT_INLINE sljit_ins l(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)

Definition at line 2902 of file sljitNativePPC_common.c.

◆ EMIT_MOV

#define EMIT_MOV (   type,
  type_flags,
  type_cast 
)     emit_op(compiler, (src == SLJIT_IMM) ? SLJIT_MOV : type, flags | (type_flags), dst, dstw, TMP_REG1, 0, src, (src == SLJIT_IMM) ? type_cast srcw : srcw)

Definition at line 1563 of file sljitNativePPC_common.c.

◆ EXTSB

#define EXTSB   (HI(31) | LO(954))

Definition at line 168 of file sljitNativePPC_common.c.

◆ EXTSH

#define EXTSH   (HI(31) | LO(922))

Definition at line 169 of file sljitNativePPC_common.c.

◆ EXTSW

#define EXTSW   (HI(31) | LO(986))

Definition at line 170 of file sljitNativePPC_common.c.

◆ FA

#define FA (   fa)    ((sljit_ins)freg_map[fa] << 16)

Definition at line 125 of file sljitNativePPC_common.c.

◆ FABS

#define FABS   (HI(63) | LO(264))

Definition at line 171 of file sljitNativePPC_common.c.

◆ FADD

#define FADD   (HI(63) | LO(21))

Definition at line 172 of file sljitNativePPC_common.c.

◆ FADDS

#define FADDS   (HI(59) | LO(21))

Definition at line 173 of file sljitNativePPC_common.c.

◆ FB

#define FB (   fb)    ((sljit_ins)freg_map[fb] << 11)

Definition at line 126 of file sljitNativePPC_common.c.

◆ FC

#define FC (   fc)    ((sljit_ins)freg_map[fc] << 6)

Definition at line 127 of file sljitNativePPC_common.c.

◆ FCFID

#define FCFID   (HI(63) | LO(846))

Definition at line 174 of file sljitNativePPC_common.c.

◆ FCMPU

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

Definition at line 175 of file sljitNativePPC_common.c.

◆ FCTIDZ

#define FCTIDZ   (HI(63) | LO(815))

Definition at line 176 of file sljitNativePPC_common.c.

◆ FCTIWZ

#define FCTIWZ   (HI(63) | LO(15))

Definition at line 177 of file sljitNativePPC_common.c.

◆ FD

#define FD (   fd)    ((sljit_ins)freg_map[fd] << 21)

Definition at line 123 of file sljitNativePPC_common.c.

◆ FDIV

#define FDIV   (HI(63) | LO(18))

Definition at line 178 of file sljitNativePPC_common.c.

◆ FDIVS

#define FDIVS   (HI(59) | LO(18))

Definition at line 179 of file sljitNativePPC_common.c.

◆ FLOAT_DATA

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

Definition at line 797 of file sljitNativePPC_common.c.

◆ FMR

#define FMR   (HI(63) | LO(72))

Definition at line 180 of file sljitNativePPC_common.c.

◆ FMUL

#define FMUL   (HI(63) | LO(25))

Definition at line 181 of file sljitNativePPC_common.c.

◆ FMULS

#define FMULS   (HI(59) | LO(25))

Definition at line 182 of file sljitNativePPC_common.c.

◆ FNEG

#define FNEG   (HI(63) | LO(40))

Definition at line 183 of file sljitNativePPC_common.c.

◆ FRSP

#define FRSP   (HI(63) | LO(12))

Definition at line 184 of file sljitNativePPC_common.c.

◆ FS

#define FS (   fs)    ((sljit_ins)freg_map[fs] << 21)

Definition at line 124 of file sljitNativePPC_common.c.

◆ FSUB

#define FSUB   (HI(63) | LO(20))

Definition at line 185 of file sljitNativePPC_common.c.

◆ FSUBS

#define FSUBS   (HI(59) | LO(20))

Definition at line 186 of file sljitNativePPC_common.c.

◆ GPR_REG

#define GPR_REG   0x1f

Definition at line 792 of file sljitNativePPC_common.c.

◆ HALF_DATA

#define HALF_DATA   0x10

Definition at line 789 of file sljitNativePPC_common.c.

◆ HI

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

Definition at line 136 of file sljitNativePPC_common.c.

◆ IMM

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

Definition at line 128 of file sljitNativePPC_common.c.

◆ INDEXED

#define INDEXED   0x02

Definition at line 784 of file sljitNativePPC_common.c.

◆ INST_CODE_AND_DST

#define INST_CODE_AND_DST (   inst,
  flags,
  reg 
)     (((sljit_ins)(inst) & ~(sljit_ins)INT_ALIGNED) | (sljit_ins)(((flags) & MEM_MASK) <= GPR_REG ? D(reg) : FD(reg)))

Definition at line 1099 of file sljitNativePPC_common.c.

◆ INT_DATA

#define INT_DATA   0x18

Definition at line 790 of file sljitNativePPC_common.c.

◆ LD

#define LD   (HI(58) | 0)

Definition at line 187 of file sljitNativePPC_common.c.

◆ LFD

#define LFD   (HI(50))

Definition at line 188 of file sljitNativePPC_common.c.

◆ LFS

#define LFS   (HI(48))

Definition at line 189 of file sljitNativePPC_common.c.

◆ LHBRX

#define LHBRX   (HI(31) | LO(790))

Definition at line 193 of file sljitNativePPC_common.c.

◆ LO

#define LO (   opcode)    ((sljit_ins)(opcode) << 1)

Definition at line 137 of file sljitNativePPC_common.c.

◆ LOAD_DATA

#define LOAD_DATA   0x01

Definition at line 783 of file sljitNativePPC_common.c.

◆ LR_SAVE_OFFSET

#define LR_SAVE_OFFSET   SSIZE_OF(sw)

Definition at line 842 of file sljitNativePPC_common.c.

◆ LWBRX

#define LWBRX   (HI(31) | LO(534))

Definition at line 194 of file sljitNativePPC_common.c.

◆ LWBRX_FIRST_REG

#define LWBRX_FIRST_REG   S(dst)

Definition at line 285 of file sljitNativePPC_common.c.

◆ LWBRX_SECOND_REG

#define LWBRX_SECOND_REG   S(TMP_REG1)

Definition at line 286 of file sljitNativePPC_common.c.

◆ LWZ

#define LWZ   (HI(32))

Definition at line 195 of file sljitNativePPC_common.c.

◆ MEM_MASK

#define MEM_MASK   0x7f

Definition at line 795 of file sljitNativePPC_common.c.

◆ MFCR

#define MFCR   (HI(31) | LO(19))

Definition at line 196 of file sljitNativePPC_common.c.

◆ MFLR

#define MFLR   (HI(31) | LO(339) | 0x80000)

Definition at line 197 of file sljitNativePPC_common.c.

◆ MFXER

#define MFXER   (HI(31) | LO(339) | 0x10000)

Definition at line 198 of file sljitNativePPC_common.c.

◆ MTCTR

#define MTCTR   (HI(31) | LO(467) | 0x90000)

Definition at line 199 of file sljitNativePPC_common.c.

◆ MTLR

#define MTLR   (HI(31) | LO(467) | 0x80000)

Definition at line 200 of file sljitNativePPC_common.c.

◆ MTXER

#define MTXER   (HI(31) | LO(467) | 0x10000)

Definition at line 201 of file sljitNativePPC_common.c.

◆ MULHD

#define MULHD   (HI(31) | LO(73))

Definition at line 202 of file sljitNativePPC_common.c.

◆ MULHDU

#define MULHDU   (HI(31) | LO(9))

Definition at line 203 of file sljitNativePPC_common.c.

◆ MULHW

#define MULHW   (HI(31) | LO(75))

Definition at line 204 of file sljitNativePPC_common.c.

◆ MULHWU

#define MULHWU   (HI(31) | LO(11))

Definition at line 205 of file sljitNativePPC_common.c.

◆ MULLD

#define MULLD   (HI(31) | LO(233))

Definition at line 206 of file sljitNativePPC_common.c.

◆ MULLI

#define MULLI   (HI(7))

Definition at line 207 of file sljitNativePPC_common.c.

◆ MULLW

#define MULLW   (HI(31) | LO(235))

Definition at line 208 of file sljitNativePPC_common.c.

◆ NEG

#define NEG   (HI(31) | LO(104))

Definition at line 209 of file sljitNativePPC_common.c.

◆ NOP

#define NOP   (HI(24))

Definition at line 210 of file sljitNativePPC_common.c.

◆ NOR

#define NOR   (HI(31) | LO(124))

Definition at line 211 of file sljitNativePPC_common.c.

◆ OE

#define OE (   flags)    ((flags) & ALT_SET_FLAGS)

Definition at line 133 of file sljitNativePPC_common.c.

◆ OR

#define OR   (HI(31) | LO(444))

Definition at line 212 of file sljitNativePPC_common.c.

◆ ORI

#define ORI   (HI(24))

Definition at line 213 of file sljitNativePPC_common.c.

◆ ORIS

#define ORIS   (HI(25))

Definition at line 214 of file sljitNativePPC_common.c.

◆ RC

#define RC (   flags)    ((sljit_ins)((flags) & ALT_SET_FLAGS) >> 10)

Definition at line 135 of file sljitNativePPC_common.c.

◆ REG1_SOURCE

#define REG1_SOURCE   0x000002

Definition at line 813 of file sljitNativePPC_common.c.

◆ REG2_SOURCE

#define REG2_SOURCE   0x000004

Definition at line 814 of file sljitNativePPC_common.c.

◆ REG_DEST

#define REG_DEST   0x000001

Definition at line 812 of file sljitNativePPC_common.c.

◆ RLDCL

#define RLDCL   (HI(30) | LO(8))

Definition at line 215 of file sljitNativePPC_common.c.

◆ RLDI_MB

#define RLDI_MB (   mb)    ((((sljit_ins)(mb) & 0x1f) << 6) | ((sljit_ins)(mb) & 0x20))

Definition at line 260 of file sljitNativePPC_common.c.

◆ RLDI_ME

#define RLDI_ME (   me)    RLDI_MB(me)

Definition at line 261 of file sljitNativePPC_common.c.

◆ RLDI_SH

#define RLDI_SH (   sh)    ((((sljit_ins)(sh) & 0x1f) << 11) | (((sljit_ins)(sh) & 0x20) >> 4))

Definition at line 259 of file sljitNativePPC_common.c.

◆ RLDICL

#define RLDICL   (HI(30) | LO(0 << 1))

Definition at line 216 of file sljitNativePPC_common.c.

◆ RLDICR

#define RLDICR   (HI(30) | LO(1 << 1))

Definition at line 217 of file sljitNativePPC_common.c.

◆ RLDIMI

#define RLDIMI   (HI(30) | LO(3 << 1))

Definition at line 218 of file sljitNativePPC_common.c.

◆ RLWI_MBE

#define RLWI_MBE (   mb,
  me 
)    (((sljit_ins)(mb) << 6) | ((sljit_ins)(me) << 1))

Definition at line 258 of file sljitNativePPC_common.c.

◆ RLWI_SH

#define RLWI_SH (   sh)    ((sljit_ins)(sh) << 11)

Definition at line 257 of file sljitNativePPC_common.c.

◆ RLWIMI

#define RLWIMI   (HI(20))

Definition at line 219 of file sljitNativePPC_common.c.

◆ RLWINM

#define RLWINM   (HI(21))

Definition at line 220 of file sljitNativePPC_common.c.

◆ RLWNM

#define RLWNM   (HI(23))

Definition at line 221 of file sljitNativePPC_common.c.

◆ S

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

Definition at line 119 of file sljitNativePPC_common.c.

◆ SELECT_FOP

#define SELECT_FOP (   op,
  single,
  double 
)    ((sljit_ins)((op & SLJIT_32) ? single : double))

Definition at line 2178 of file sljitNativePPC_common.c.

◆ SIGNED_DATA

#define SIGNED_DATA   0x04

Definition at line 785 of file sljitNativePPC_common.c.

◆ SIMM_MAX

#define SIMM_MAX   (0x7fff)

Definition at line 252 of file sljitNativePPC_common.c.

◆ SIMM_MIN

#define SIMM_MIN   (-0x8000)

Definition at line 253 of file sljitNativePPC_common.c.

◆ SLD

#define SLD   (HI(31) | LO(27))

Definition at line 222 of file sljitNativePPC_common.c.

◆ SLDI

#define SLDI (   shift)    (RLDICR | RLDI_SH(shift) | RLDI_ME(63 - (shift)))

Definition at line 264 of file sljitNativePPC_common.c.

◆ SLW

#define SLW   (HI(31) | LO(24))

Definition at line 223 of file sljitNativePPC_common.c.

◆ SLWI

#define SLWI (   shift)    (RLWINM | RLWI_SH(shift) | RLWI_MBE(0, 31 - (shift)))

Definition at line 263 of file sljitNativePPC_common.c.

◆ SLWI_W

#define SLWI_W (   shift)    SLDI(shift)

Definition at line 273 of file sljitNativePPC_common.c.

◆ SRAD

#define SRAD   (HI(31) | LO(794))

Definition at line 224 of file sljitNativePPC_common.c.

◆ SRADI

#define SRADI   (HI(31) | LO(413 << 1))

Definition at line 225 of file sljitNativePPC_common.c.

◆ SRAW

#define SRAW   (HI(31) | LO(792))

Definition at line 226 of file sljitNativePPC_common.c.

◆ SRAWI

#define SRAWI   (HI(31) | LO(824))

Definition at line 227 of file sljitNativePPC_common.c.

◆ SRD

#define SRD   (HI(31) | LO(539))

Definition at line 228 of file sljitNativePPC_common.c.

◆ SRDI

#define SRDI (   shift)    (RLDICL | RLDI_SH(64 - (shift)) | RLDI_MB(shift))

Definition at line 267 of file sljitNativePPC_common.c.

◆ SRW

#define SRW   (HI(31) | LO(536))

Definition at line 229 of file sljitNativePPC_common.c.

◆ SRWI

#define SRWI (   shift)    (RLWINM | RLWI_SH(32 - (shift)) | RLWI_MBE((shift), 31))

Definition at line 266 of file sljitNativePPC_common.c.

◆ STACK_LOAD

#define STACK_LOAD   LD

Definition at line 836 of file sljitNativePPC_common.c.

◆ STACK_MAX_DISTANCE

#define STACK_MAX_DISTANCE   (0x8000 - SSIZE_OF(sw) - LR_SAVE_OFFSET)

Definition at line 845 of file sljitNativePPC_common.c.

◆ STACK_STORE

#define STACK_STORE   STD

Definition at line 835 of file sljitNativePPC_common.c.

◆ STD

#define STD   (HI(62) | 0)

Definition at line 230 of file sljitNativePPC_common.c.

◆ STDU

#define STDU   (HI(62) | 1)

Definition at line 234 of file sljitNativePPC_common.c.

◆ STDUX

#define STDUX   (HI(31) | LO(181))

Definition at line 235 of file sljitNativePPC_common.c.

◆ STFD

#define STFD   (HI(54))

Definition at line 236 of file sljitNativePPC_common.c.

◆ STFIWX

#define STFIWX   (HI(31) | LO(983))

Definition at line 237 of file sljitNativePPC_common.c.

◆ STFS

#define STFS   (HI(52))

Definition at line 238 of file sljitNativePPC_common.c.

◆ STHBRX

#define STHBRX   (HI(31) | LO(918))

Definition at line 239 of file sljitNativePPC_common.c.

◆ STW

#define STW   (HI(36))

Definition at line 240 of file sljitNativePPC_common.c.

◆ STWBRX

#define STWBRX   (HI(31) | LO(662))

Definition at line 241 of file sljitNativePPC_common.c.

◆ STWU

#define STWU   (HI(37))

Definition at line 242 of file sljitNativePPC_common.c.

◆ STWUX

#define STWUX   (HI(31) | LO(183))

Definition at line 243 of file sljitNativePPC_common.c.

◆ SUBF

#define SUBF   (HI(31) | LO(40))

Definition at line 244 of file sljitNativePPC_common.c.

◆ SUBFC

#define SUBFC   (HI(31) | LO(8))

Definition at line 245 of file sljitNativePPC_common.c.

◆ SUBFE

#define SUBFE   (HI(31) | LO(136))

Definition at line 246 of file sljitNativePPC_common.c.

◆ SUBFIC

#define SUBFIC   (HI(8))

Definition at line 247 of file sljitNativePPC_common.c.

◆ TEST_ADD_FORM1

#define TEST_ADD_FORM1 (   op)     (GET_FLAG_TYPE(op) == SLJIT_OVERFLOW)

Definition at line 1701 of file sljitNativePPC_common.c.

◆ TEST_ADD_IMM

#define TEST_ADD_IMM (   src,
  srcw 
)     ((src) == SLJIT_IMM)

Definition at line 1696 of file sljitNativePPC_common.c.

◆ TEST_SH_IMM

#define TEST_SH_IMM (   src,
  srcw 
)     ((src) == SLJIT_IMM && !((srcw) & 0xffff))

Definition at line 1694 of file sljitNativePPC_common.c.

◆ TEST_SL_IMM

#define TEST_SL_IMM (   src,
  srcw 
)     ((src) == SLJIT_IMM && (srcw) <= SIMM_MAX && (srcw) >= SIMM_MIN)

Definition at line 1668 of file sljitNativePPC_common.c.

◆ TEST_SUB_FORM2

#define TEST_SUB_FORM2 (   op)     (GET_FLAG_TYPE(op) >= SLJIT_SIG_LESS && GET_FLAG_TYPE(op) <= SLJIT_SIG_LESS_EQUAL)

Definition at line 1703 of file sljitNativePPC_common.c.

◆ TEST_SUB_FORM3

#define TEST_SUB_FORM3 (   op)     (GET_FLAG_TYPE(op) == SLJIT_OVERFLOW)

Definition at line 1705 of file sljitNativePPC_common.c.

◆ TEST_UH_IMM

#define TEST_UH_IMM (   src,
  srcw 
)     ((src) == SLJIT_IMM && !((srcw) & ~(sljit_sw)0xffff0000))

Definition at line 1672 of file sljitNativePPC_common.c.

◆ TEST_UI_IMM

#define TEST_UI_IMM (   src,
  srcw 
)     ((src) == SLJIT_IMM)

Definition at line 1698 of file sljitNativePPC_common.c.

◆ TEST_UL_IMM

#define TEST_UL_IMM (   src,
  srcw 
)     ((src) == SLJIT_IMM && !((srcw) & ~0xffff))

Definition at line 1670 of file sljitNativePPC_common.c.

◆ TMP_CALL_REG

#define TMP_CALL_REG   TMP_REG1

Definition at line 101 of file sljitNativePPC_common.c.

◆ TMP_FREG1

#define TMP_FREG1   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)

Definition at line 104 of file sljitNativePPC_common.c.

◆ TMP_FREG2

#define TMP_FREG2   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)

Definition at line 105 of file sljitNativePPC_common.c.

◆ TMP_MEM_OFFSET

#define TMP_MEM_OFFSET   (6 * sizeof(sljit_sw))

Definition at line 274 of file sljitNativePPC_common.c.

◆ TMP_MEM_OFFSET_HI

#define TMP_MEM_OFFSET_HI   (TMP_MEM_OFFSET)

Definition at line 284 of file sljitNativePPC_common.c.

◆ TMP_MEM_OFFSET_LO

#define TMP_MEM_OFFSET_LO   (TMP_MEM_OFFSET + sizeof(sljit_s32))

Definition at line 283 of file sljitNativePPC_common.c.

◆ TMP_REG1

#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)

Definition at line 94 of file sljitNativePPC_common.c.

◆ TMP_REG2

#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)

Definition at line 95 of file sljitNativePPC_common.c.

◆ TMP_ZERO

#define TMP_ZERO   (SLJIT_NUMBER_OF_REGISTERS + 4)

Definition at line 96 of file sljitNativePPC_common.c.

◆ UIMM_MAX

#define UIMM_MAX   (0xffff)

Definition at line 254 of file sljitNativePPC_common.c.

◆ WORD_DATA

#define WORD_DATA   0x00

Definition at line 787 of file sljitNativePPC_common.c.

◆ XOR

#define XOR   (HI(31) | LO(316))

Definition at line 248 of file sljitNativePPC_common.c.

◆ XORI

#define XORI   (HI(26))

Definition at line 249 of file sljitNativePPC_common.c.

◆ XORIS

#define XORIS   (HI(27))

Definition at line 250 of file sljitNativePPC_common.c.

Typedef Documentation

◆ sljit_ins

Definition at line 34 of file sljitNativePPC_common.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_op()

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

◆ emit_prefetch()

static sljit_s32 emit_prefetch ( struct sljit_compiler compiler,
sljit_s32  src,
sljit_sw  srcw 
)
static

Definition at line 2072 of file sljitNativePPC_common.c.

References A, B, DCBT, FAIL_IF, load_immediate(), push_inst(), S, SLWI_W, and TMP_REG1.

Referenced by sljit_emit_op_src().

◆ emit_rev()

static sljit_s32 emit_rev ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src,
sljit_sw  srcw 
)
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 void generate_jump_or_mov_addr ( struct sljit_jump jump,
sljit_sw  executable_offset 
)
static

◆ get_bo_bi_flags()

static sljit_ins get_bo_bi_flags ( struct sljit_compiler compiler,
sljit_s32  type 
)
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

◆ sljit_cmp_info()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_cmp_info ( sljit_s32  type)

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

◆ 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 1951 of file sljitNativePPC_common.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)

◆ 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 27 of file sljitNativePPC_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 2150 of file sljitNativePPC_common.c.

References freg_map, 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_const()

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

Definition at line 3158 of file sljitNativePPC_common.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 
)

Variable Documentation

◆ data_transfer_insts

const sljit_ins data_transfer_insts[64+16]
static

Definition at line 1103 of file sljitNativePPC_common.c.

Referenced by emit_op_mem(), and sljit_emit_mem().

◆ freg_map

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

Definition at line 111 of file sljitNativePPC_common.c.

Referenced by sljit_get_register_index().

◆ reg_map

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

Definition at line 107 of file sljitNativePPC_common.c.

Referenced by sljit_get_register_index().

◆ updated_data_transfer_insts

const sljit_ins updated_data_transfer_insts[64]
static

Definition at line 1168 of file sljitNativePPC_common.c.

Referenced by sljit_emit_fmem_update(), and sljit_emit_mem_update().

Modified on Fri Sep 20 14:58:01 2024 by modify_doxy.py rev. 669887