(!is_32 && src1 != dst)
56 #if !defined(SLJIT_MIPS_REV) || SLJIT_MIPS_REV <= 1 65 #if !defined(SLJIT_MIPS_REV) || SLJIT_MIPS_REV <= 1 95 #if defined(SLJIT_LITTLE_ENDIAN) && SLJIT_LITTLE_ENDIAN 107 CHECK(check_sljit_emit_fset64(compiler, freg,
value));
118 #if defined(SLJIT_MIPS_REV) && SLJIT_MIPS_REV >= 2 126 #if !defined(SLJIT_MIPS_REV) || SLJIT_MIPS_REV <= 1 141 CHECK(check_sljit_emit_fcopy(compiler, op, freg, reg));
144 if(reg & REG_PAIR_MASK) {
145reg2 = REG_PAIR_SECOND(reg);
146reg = REG_PAIR_FIRST(reg);
155inst =
FS(freg) | (1 << 11);
156 #if defined(SLJIT_MIPS_REV) && SLJIT_MIPS_REV >= 2 166 if(!is_32 && !reg2) {
168 #if defined(SLJIT_MIPS_REV) && SLJIT_MIPS_REV >= 2 185 #if !defined(SLJIT_MIPS_REV) || SLJIT_MIPS_REV <= 1 199inst[0] = (inst[0] & 0xffff0000) | ((new_target >> 16) & 0xffff);
200inst[1] = (inst[1] & 0xffff0000) | (new_target & 0xffff);
202inst = (
sljit_ins*)SLJIT_ADD_EXEC_OFFSET(inst, executable_offset);
222 #if defined(SLJIT_LITTLE_ENDIAN) && SLJIT_LITTLE_ENDIAN 238 switch(arg_types & SLJIT_ARG_MASK) {
245 if(word_arg_count == 0 && float_arg_count <= 1)
246*offsets_ptr = (
sljit_u8)(254 + float_arg_count);
252 if(word_arg_count == 0 && float_arg_count <= 1)
253*offsets_ptr = (
sljit_u8)(254 + float_arg_count);
289 switch(
types& SLJIT_ARG_MASK) {
291 if(*offsets_ptr < 4 *
sizeof(
sljit_sw)) {
292 if(prev_ins !=
NOP)
299 #if defined(SLJIT_MIPS_REV) && SLJIT_MIPS_REV >= 2 301prev_ins = MFHC1 | f64_hi |
FS(float_arg_count);
305prev_ins =
MFC1| f64_hi |
FS(float_arg_count) | (1 << 11);
308ins =
MFC1| f64_lo |
FS(float_arg_count);
309}
else if(*offsets_ptr < 254)
311 else if(*offsets_ptr == 254)
317 if(*offsets_ptr < 4 *
sizeof(
sljit_sw))
318ins =
MFC1|
TA(4 + (*offsets_ptr >> 2)) |
FS(float_arg_count);
319 else if(*offsets_ptr < 254)
321 else if(*offsets_ptr == 254)
327 if(*offsets_ptr >= 4 *
sizeof(
sljit_sw))
329 else if((*offsets_ptr >> 2) != word_arg_count - 1)
330ins =
ADDU|
S(word_arg_count) |
TA(0) |
DA(4 + (*offsets_ptr >> 2));
331 else if(*offsets_ptr == 0)
339 if(prev_ins !=
NOP)
361CHECK_PTR(check_sljit_emit_call(compiler,
type, arg_types));
375 if(ins ==
NOP&& compiler->delay_slot != UNMOVABLE_INS)
376jump->
flags|= IS_MOVABLE;
379jump->
flags|= IS_JAL;
382jump->
flags|= IS_CALL;
392compiler->
size+= 2;
394 if(extra_space == 0)
417 CHECK(check_sljit_emit_icall(compiler,
type, arg_types, src, srcw));
420ADJUST_LOCAL_OFFSET(src, srcw);
440SLJIT_SKIP_CHECKS(compiler);
460 if(extra_space == 0)
#define CHECK_ERROR(name, s)
static const struct type types[]
const GenericPointer< typename T::ValueType > T2 value
static PCRE2_SIZE * offsets
#define SLJIT_API_FUNC_ATTRIBUTE
#define SLJIT_UNUSED_ARG(arg)
#define SLJIT_CACHE_FLUSH(from, to)
#define SLJIT_UPDATE_WX_FLAGS(from, to, enable_exec)
#define PTR_FAIL_IF(expr)
#define CHECK_ERROR_PTR()
#define SLJIT_CALL_REG_ARG
#define SLJIT_FIRST_SAVED_REG
#define SLJIT_ARG_TYPE_F32
#define SLJIT_ARG_TYPE_F64
sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw)
#define SLJIT_CALL_RETURN
#define SLJIT_REWRITABLE_JUMP
#define SLJIT_COPY_TO_F64
static sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_ins inst)
static sljit_s32 emit_stack_frame_release(struct sljit_compiler *compiler, sljit_s32 frame_size)
static const sljit_u8 freg_map[((SLJIT_NUMBER_OF_FLOAT_REGISTERS+2)<< 1)+1]
static sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw, sljit_s32 tmp_reg)
static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS+5]
static sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, sljit_ins *ins_ptr, sljit_u32 *extra_space)
static sljit_s32 emit_copysign(struct sljit_compiler *compiler, sljit_s32 op, sljit_sw src1, sljit_sw src2, sljit_sw dst)
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const(sljit_uw addr, sljit_sw new_constant, sljit_sw executable_offset)
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fcopy(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 freg, sljit_s32 reg)
static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 dst_ar, sljit_sw imm)
static SLJIT_INLINE sljit_s32 emit_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw init_value)
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fset64(struct sljit_compiler *compiler, sljit_s32 freg, sljit_f64 value)
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_jump_addr(sljit_uw addr, sljit_uw new_target, sljit_sw executable_offset)
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump * sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 arg_types)
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)
static sljit_u32 cpu_feature_list
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4