QtBase  v6.3.1
Macros | Typedefs | Functions
sljitNativePPC_common.c File Reference
#include "sljitNativePPC_64.c"
Include dependency graph for sljitNativePPC_common.c:

Go to the source code of 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_REG2
 
#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)   (((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 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 RLDICL   (HI(30))
 
#define RLWINM   (HI(21))
 
#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 STW   (HI(36))
 
#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 RLDI(dst, src, sh, mb, type)
 
#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 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_SH_IMM(src, srcw)    (((src) & SLJIT_IMM) && !((srcw) & 0xffff))
 
#define TEST_UH_IMM(src, srcw)    (((src) & SLJIT_IMM) && !((srcw) & ~(sljit_sw)0xffff0000))
 
#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 FLOAT_DATA(op)   (DOUBLE_DATA | ((op & SLJIT_32) >> 6))
 
#define SELECT_FOP(op, single, double)   ((sljit_ins)((op & SLJIT_32) ? single : double))
 
#define FLOAT_TMP_MEM_OFFSET   (2 * sizeof(sljit_sw))
 
#define FLOAT_TMP_MEM_OFFSET_LOW   (3 * sizeof(sljit_sw))
 
#define FLOAT_TMP_MEM_OFFSET_HI   (2 * sizeof(sljit_sw))
 

Typedefs

typedef sljit_u32 sljit_ins
 

Functions

SLJIT_API_FUNC_ATTRIBUTE const char * sljit_get_platform_name (void)
 
SLJIT_API_FUNC_ATTRIBUTE voidsljit_generate_code (struct sljit_compiler *compiler)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature (sljit_s32 feature_type)
 
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_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_op_src (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index (sljit_s32 reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index (sljit_s32 reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom (struct sljit_compiler *compiler, void *instruction, sljit_u32 size)
 
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_fast_enter (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_labelsljit_emit_label (struct sljit_compiler *compiler)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_jump (struct sljit_compiler *compiler, sljit_s32 type)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_call (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 arg_types)
 
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_cmov (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 dst_reg, sljit_s32 src, sljit_sw srcw)
 
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_put_labelsljit_emit_put_label (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw)
 

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 679 of file sljitNativePPC_common.c.

◆ ALT_FORM2

#define ALT_FORM2   0x002000

Definition at line 680 of file sljitNativePPC_common.c.

◆ ALT_FORM3

#define ALT_FORM3   0x004000

Definition at line 681 of file sljitNativePPC_common.c.

◆ ALT_FORM4

#define ALT_FORM4   0x008000

Definition at line 682 of file sljitNativePPC_common.c.

◆ ALT_FORM5

#define ALT_FORM5   0x010000

Definition at line 683 of file sljitNativePPC_common.c.

◆ ALT_SET_FLAGS

#define ALT_SET_FLAGS   0x000400

Definition at line 678 of file sljitNativePPC_common.c.

◆ ALT_SIGN_EXT

#define ALT_SIGN_EXT   0x000100

Definition at line 676 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 926 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 664 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 155 of file sljitNativePPC_common.c.

◆ CMPI

#define CMPI   (HI(11))

Definition at line 156 of file sljitNativePPC_common.c.

◆ CMPL

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

Definition at line 157 of file sljitNativePPC_common.c.

◆ CMPLI

#define CMPLI   (HI(10))

Definition at line 158 of file sljitNativePPC_common.c.

◆ CNTLZD

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

Definition at line 153 of file sljitNativePPC_common.c.

◆ CNTLZW

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

Definition at line 154 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 159 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 160 of file sljitNativePPC_common.c.

◆ DIVD

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

Definition at line 161 of file sljitNativePPC_common.c.

◆ DIVDU

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

Definition at line 162 of file sljitNativePPC_common.c.

◆ DIVW

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

Definition at line 163 of file sljitNativePPC_common.c.

◆ DIVWU

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

Definition at line 164 of file sljitNativePPC_common.c.

◆ DOUBLE_DATA

#define DOUBLE_DATA   0x20

Definition at line 669 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 1284 of file sljitNativePPC_common.c.

◆ EXTSB

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

Definition at line 165 of file sljitNativePPC_common.c.

◆ EXTSH

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

Definition at line 166 of file sljitNativePPC_common.c.

◆ EXTSW

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

Definition at line 167 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 168 of file sljitNativePPC_common.c.

◆ FADD

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

Definition at line 169 of file sljitNativePPC_common.c.

◆ FADDS

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

Definition at line 170 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 171 of file sljitNativePPC_common.c.

◆ FCMPU

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

Definition at line 172 of file sljitNativePPC_common.c.

◆ FCTIDZ

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

Definition at line 173 of file sljitNativePPC_common.c.

◆ FCTIWZ

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

Definition at line 174 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 175 of file sljitNativePPC_common.c.

◆ FDIVS

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

Definition at line 176 of file sljitNativePPC_common.c.

◆ FLOAT_DATA

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

Definition at line 1731 of file sljitNativePPC_common.c.

◆ FLOAT_TMP_MEM_OFFSET

#define FLOAT_TMP_MEM_OFFSET   (2 * sizeof(sljit_sw))

Definition at line 1737 of file sljitNativePPC_common.c.

◆ FLOAT_TMP_MEM_OFFSET_HI

#define FLOAT_TMP_MEM_OFFSET_HI   (2 * sizeof(sljit_sw))

Definition at line 1744 of file sljitNativePPC_common.c.

◆ FLOAT_TMP_MEM_OFFSET_LOW

#define FLOAT_TMP_MEM_OFFSET_LOW   (3 * sizeof(sljit_sw))

Definition at line 1743 of file sljitNativePPC_common.c.

◆ FMR

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

Definition at line 177 of file sljitNativePPC_common.c.

◆ FMUL

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

Definition at line 178 of file sljitNativePPC_common.c.

◆ FMULS

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

Definition at line 179 of file sljitNativePPC_common.c.

◆ FNEG

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

Definition at line 180 of file sljitNativePPC_common.c.

◆ FRSP

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

Definition at line 181 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 182 of file sljitNativePPC_common.c.

◆ FSUBS

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

Definition at line 183 of file sljitNativePPC_common.c.

◆ GPR_REG

#define GPR_REG   0x1f

Definition at line 668 of file sljitNativePPC_common.c.

◆ HALF_DATA

#define HALF_DATA   0x10

Definition at line 665 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 660 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 927 of file sljitNativePPC_common.c.

◆ INT_DATA

#define INT_DATA   0x18

Definition at line 666 of file sljitNativePPC_common.c.

◆ LD

#define LD   (HI(58) | 0)

Definition at line 184 of file sljitNativePPC_common.c.

◆ LFD

#define LFD   (HI(50))

Definition at line 185 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 659 of file sljitNativePPC_common.c.

◆ LR_SAVE_OFFSET

#define LR_SAVE_OFFSET   SSIZE_OF(sw)

Definition at line 713 of file sljitNativePPC_common.c.

◆ LWZ

#define LWZ   (HI(32))

Definition at line 186 of file sljitNativePPC_common.c.

◆ MEM_MASK

#define MEM_MASK   0x7f

Definition at line 671 of file sljitNativePPC_common.c.

◆ MFCR

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

Definition at line 187 of file sljitNativePPC_common.c.

◆ MFLR

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

Definition at line 188 of file sljitNativePPC_common.c.

◆ MFXER

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

Definition at line 189 of file sljitNativePPC_common.c.

◆ MTCTR

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

Definition at line 190 of file sljitNativePPC_common.c.

◆ MTLR

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

Definition at line 191 of file sljitNativePPC_common.c.

◆ MTXER

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

Definition at line 192 of file sljitNativePPC_common.c.

◆ MULHD

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

Definition at line 193 of file sljitNativePPC_common.c.

◆ MULHDU

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

Definition at line 194 of file sljitNativePPC_common.c.

◆ MULHW

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

Definition at line 195 of file sljitNativePPC_common.c.

◆ MULHWU

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

Definition at line 196 of file sljitNativePPC_common.c.

◆ MULLD

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

Definition at line 197 of file sljitNativePPC_common.c.

◆ MULLI

#define MULLI   (HI(7))

Definition at line 198 of file sljitNativePPC_common.c.

◆ MULLW

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

Definition at line 199 of file sljitNativePPC_common.c.

◆ NEG

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

Definition at line 200 of file sljitNativePPC_common.c.

◆ NOP

#define NOP   (HI(24))

Definition at line 201 of file sljitNativePPC_common.c.

◆ NOR

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

Definition at line 202 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 203 of file sljitNativePPC_common.c.

◆ ORI

#define ORI   (HI(24))

Definition at line 204 of file sljitNativePPC_common.c.

◆ ORIS

#define ORIS   (HI(25))

Definition at line 205 of file sljitNativePPC_common.c.

◆ RC

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

Definition at line 135 of file sljitNativePPC_common.c.

◆ REG1_SOURCE

#define REG1_SOURCE   0x000002

Definition at line 687 of file sljitNativePPC_common.c.

◆ REG2_SOURCE

#define REG2_SOURCE   0x000004

Definition at line 688 of file sljitNativePPC_common.c.

◆ REG_DEST

#define REG_DEST   0x000001

Definition at line 686 of file sljitNativePPC_common.c.

◆ RLDI

#define RLDI (   dst,
  src,
  sh,
  mb,
  type 
)
Value:
(HI(30) | S(src) | A(dst) | ((sljit_ins)(type) << 2) | (((sljit_ins)(sh) & 0x1f) << 11) \
| (((sljit_ins)(sh) & 0x20) >> 4) | (((sljit_ins)(mb) & 0x1f) << 6) | ((sljit_ins)(mb) & 0x20))
GLenum type
Definition: qopengl.h:270
GLenum src
GLenum GLenum dst
sljit_u32 sljit_ins
#define A(a)
#define S(s)
#define HI(opcode)
sljit_u32 sljit_ins

Definition at line 236 of file sljitNativePPC_common.c.

◆ RLDICL

#define RLDICL   (HI(30))

Definition at line 206 of file sljitNativePPC_common.c.

◆ RLWINM

#define RLWINM   (HI(21))

Definition at line 207 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 1732 of file sljitNativePPC_common.c.

◆ SIGNED_DATA

#define SIGNED_DATA   0x04

Definition at line 661 of file sljitNativePPC_common.c.

◆ SIMM_MAX

#define SIMM_MAX   (0x7fff)

Definition at line 232 of file sljitNativePPC_common.c.

◆ SIMM_MIN

#define SIMM_MIN   (-0x8000)

Definition at line 233 of file sljitNativePPC_common.c.

◆ SLD

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

Definition at line 208 of file sljitNativePPC_common.c.

◆ SLW

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

Definition at line 209 of file sljitNativePPC_common.c.

◆ SRAD

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

Definition at line 210 of file sljitNativePPC_common.c.

◆ SRADI

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

Definition at line 211 of file sljitNativePPC_common.c.

◆ SRAW

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

Definition at line 212 of file sljitNativePPC_common.c.

◆ SRAWI

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

Definition at line 213 of file sljitNativePPC_common.c.

◆ SRD

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

Definition at line 214 of file sljitNativePPC_common.c.

◆ SRW

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

Definition at line 215 of file sljitNativePPC_common.c.

◆ STACK_LOAD

#define STACK_LOAD   LD

Definition at line 707 of file sljitNativePPC_common.c.

◆ STACK_MAX_DISTANCE

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

Definition at line 716 of file sljitNativePPC_common.c.

◆ STACK_STORE

#define STACK_STORE   STD

Definition at line 706 of file sljitNativePPC_common.c.

◆ STD

#define STD   (HI(62) | 0)

Definition at line 216 of file sljitNativePPC_common.c.

◆ STDU

#define STDU   (HI(62) | 1)

Definition at line 217 of file sljitNativePPC_common.c.

◆ STDUX

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

Definition at line 218 of file sljitNativePPC_common.c.

◆ STFD

#define STFD   (HI(54))

Definition at line 219 of file sljitNativePPC_common.c.

◆ STFIWX

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

Definition at line 220 of file sljitNativePPC_common.c.

◆ STW

#define STW   (HI(36))

Definition at line 221 of file sljitNativePPC_common.c.

◆ STWU

#define STWU   (HI(37))

Definition at line 222 of file sljitNativePPC_common.c.

◆ STWUX

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

Definition at line 223 of file sljitNativePPC_common.c.

◆ SUBF

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

Definition at line 224 of file sljitNativePPC_common.c.

◆ SUBFC

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

Definition at line 225 of file sljitNativePPC_common.c.

◆ SUBFE

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

Definition at line 226 of file sljitNativePPC_common.c.

◆ SUBFIC

#define SUBFIC   (HI(8))

Definition at line 227 of file sljitNativePPC_common.c.

◆ TEST_ADD_FORM1

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

Definition at line 1421 of file sljitNativePPC_common.c.

◆ TEST_ADD_IMM

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

Definition at line 1398 of file sljitNativePPC_common.c.

◆ TEST_SH_IMM

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

Definition at line 1387 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 1377 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 1423 of file sljitNativePPC_common.c.

◆ TEST_SUB_FORM3

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

Definition at line 1425 of file sljitNativePPC_common.c.

◆ TEST_UH_IMM

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

Definition at line 1391 of file sljitNativePPC_common.c.

◆ TEST_UI_IMM

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

Definition at line 1406 of file sljitNativePPC_common.c.

◆ TEST_UL_IMM

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

Definition at line 1380 of file sljitNativePPC_common.c.

◆ TMP_CALL_REG

#define TMP_CALL_REG   TMP_REG2

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_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 234 of file sljitNativePPC_common.c.

◆ WORD_DATA

#define WORD_DATA   0x00

Definition at line 663 of file sljitNativePPC_common.c.

◆ XOR

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

Definition at line 228 of file sljitNativePPC_common.c.

◆ XORI

#define XORI   (HI(26))

Definition at line 229 of file sljitNativePPC_common.c.

◆ XORIS

#define XORIS   (HI(27))

Definition at line 230 of file sljitNativePPC_common.c.

Typedef Documentation

◆ sljit_ins

Definition at line 34 of file sljitNativePPC_common.c.

Function Documentation

◆ sljit_emit_call()

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

Definition at line 2150 of file sljitNativePPC_common.c.

◆ sljit_emit_cmov()

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

Definition at line 2397 of file sljitNativePPC_common.c.

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

Definition at line 2542 of file sljitNativePPC_common.c.

Here is the call graph for this function:

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

Definition at line 718 of file sljitNativePPC_common.c.

◆ sljit_emit_fast_enter()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter ( struct sljit_compiler compiler,
sljit_s32  dst,
sljit_sw  dstw 
)

Definition at line 2010 of file sljitNativePPC_common.c.

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

Definition at line 2503 of file sljitNativePPC_common.c.

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

Definition at line 1905 of file sljitNativePPC_common.c.

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

Definition at line 1955 of file sljitNativePPC_common.c.

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

Definition at line 2219 of file sljitNativePPC_common.c.

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

Definition at line 2173 of file sljitNativePPC_common.c.

◆ sljit_emit_jump()

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

Definition at line 2115 of file sljitNativePPC_common.c.

◆ sljit_emit_label()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label ( struct sljit_compiler compiler)

Definition at line 2028 of file sljitNativePPC_common.c.

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

Definition at line 2407 of file sljitNativePPC_common.c.

◆ sljit_emit_op0()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0 ( struct sljit_compiler compiler,
sljit_s32  op 
)

Definition at line 1209 of file sljitNativePPC_common.c.

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

Definition at line 1287 of file sljitNativePPC_common.c.

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

Definition at line 1429 of file sljitNativePPC_common.c.

Here is the caller graph for this function:

◆ 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 1659 of file sljitNativePPC_common.c.

Here is the call graph for this function:

◆ sljit_emit_op_custom()

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

Definition at line 1718 of file sljitNativePPC_common.c.

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

Definition at line 2254 of file sljitNativePPC_common.c.

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

Definition at line 1677 of file sljitNativePPC_common.c.

◆ sljit_emit_put_label()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_put_label* sljit_emit_put_label ( struct sljit_compiler compiler,
sljit_s32  dst,
sljit_sw  dstw 
)

Definition at line 2564 of file sljitNativePPC_common.c.

◆ sljit_emit_return_void()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_void ( struct sljit_compiler compiler)

Definition at line 893 of file sljitNativePPC_common.c.

◆ sljit_generate_code()

SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code ( struct sljit_compiler compiler)

Definition at line 384 of file sljitNativePPC_common.c.

◆ sljit_get_float_register_index()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index ( sljit_s32  reg)

Definition at line 1712 of file sljitNativePPC_common.c.

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

Definition at line 1706 of file sljitNativePPC_common.c.

◆ sljit_has_cpu_feature()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature ( sljit_s32  feature_type)

Definition at line 630 of file sljitNativePPC_common.c.

◆ sljit_set_context()

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

Definition at line 824 of file sljitNativePPC_common.c.