31 if (imm <= SIMM_MAX && imm >=
SIMM_MIN)
34 if (imm <= 0x7fffffffl && imm >=
S32_MIN) {
38 return push_inst(compiler,
XORI |
RD(dst_r) |
RS1(dst_r) |
IMM_I(imm));
41 if ((imm & 0x800) != 0)
46 if ((imm & 0xfff) == 0)
49 return push_inst(compiler,
ADDI |
RD(dst_r) |
RS1(dst_r) |
IMM_I(imm));
54 if (imm <= 0x7ffffffffffl && imm >= -0x80000000000l) {
65 if ((high & 0x800) != 0)
70 if ((high & 0xfff) != 0)
76 if ((imm & 0xfff) != 0)
77 return push_inst(compiler,
XORI |
RD(dst_r) |
RS1(dst_r) |
IMM_I(imm));
87 if ((imm & 0x80000000l) != 0)
90 if (high <= 0x7ffff && high >= -0x80000) {
94 if ((high & 0x800) != 0)
101 if (imm <= SIMM_MAX && imm >=
SIMM_MIN) {
108 imm = 0x1000 | (imm & 0xfff);
110 if ((imm & 0x800) != 0)
117 if ((high & 0xfff) != 0)
126 return push_inst(compiler,
XOR |
RD(dst_r) |
RS1(dst_r) |
RS2(tmp_r));
138 CHECK(check_sljit_emit_fset64(compiler, freg,
value));
155 CHECK(check_sljit_emit_fcopy(compiler, op, freg, reg));
165 return push_inst(compiler, inst);
172 if ((init_value & 0x800) != 0)
173 init_value += 0x1000;
175 high = init_value >> 32;
177 if ((init_value & 0x80000000l) != 0)
180 if ((high & 0x800) != 0)
188 return push_inst(compiler, last_ins |
RS1(dst) |
IMM_I(init_value));
197 if ((new_target & 0x800) != 0)
198 new_target += 0x1000;
202 if ((new_target & 0x80000000l) != 0)
205 if ((high & 0x800) != 0)
211 inst[0] = (inst[0] & 0xfff) | (
sljit_ins)(high & ~0xfff);
213 inst[1] = (inst[1] & 0xfffff) |
IMM_I(high);
217 inst[5] = (inst[5] & 0xfffff) |
IMM_I(new_target);
220 inst = (
sljit_ins *)SLJIT_ADD_EXEC_OFFSET(inst, executable_offset);
#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 SLJIT_COPY_TO_F64
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fcopy(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 freg, sljit_s32 reg)
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)