Lines Matching refs:imm

180 static inline bool is_range16(s32 imm)  in is_range16()  argument
182 return !(imm >= SBIT(15) || imm < -SBIT(15)); in is_range16()
197 static inline void emit_load_imm(unsigned int dst, u32 imm, struct jit_ctx *ctx) in emit_load_imm() argument
201 if (!is_range16(imm)) { in emit_load_imm()
203 uasm_i_lui(&p, r_tmp_imm, (s32)imm >> 16); in emit_load_imm()
205 uasm_i_ori(&p, dst, r_tmp_imm, imm & 0xffff); in emit_load_imm()
208 uasm_i_addiu(&p, dst, r_zero, imm); in emit_load_imm()
213 if (!is_range16(imm)) in emit_load_imm()
223 static inline void emit_ori(unsigned int dst, unsigned src, u32 imm, in emit_ori() argument
226 if (imm >= BIT(16)) { in emit_ori()
227 emit_load_imm(r_tmp, imm, ctx); in emit_ori()
230 emit_instr(ctx, ori, dst, src, imm); in emit_ori()
235 int imm, struct jit_ctx *ctx) in emit_daddiu() argument
241 emit_instr(ctx, daddiu, dst, src, imm); in emit_daddiu()
245 u32 imm, struct jit_ctx *ctx) in emit_addiu() argument
247 if (!is_range16(imm)) { in emit_addiu()
248 emit_load_imm(r_tmp, imm, ctx); in emit_addiu()
251 emit_instr(ctx, addiu, dst, src, imm); in emit_addiu()
262 u32 imm, struct jit_ctx *ctx) in emit_andi() argument
265 if (imm >= BIT(16)) { in emit_andi()
266 emit_load_imm(r_tmp, imm, ctx); in emit_andi()
269 emit_instr(ctx, andi, dst, src, imm); in emit_andi()
279 static inline void emit_xori(ptr dst, ptr src, u32 imm, struct jit_ctx *ctx) in emit_xori() argument
282 if (imm >= BIT(16)) { in emit_xori()
283 emit_load_imm(r_tmp, imm, ctx); in emit_xori()
286 emit_instr(ctx, xori, dst, src, imm); in emit_xori()
353 unsigned int imm, struct jit_ctx *ctx) in emit_sltiu() argument
356 if (!is_range16((s32)imm)) { in emit_sltiu()
357 emit_load_imm(r_tmp, imm, ctx); in emit_sltiu()
360 emit_instr(ctx, sltiu, dst, src, imm); in emit_sltiu()
454 int imm, struct jit_ctx *ctx) in emit_load_ptr() argument
457 emit_long_instr(ctx, LW, dst, imm, src); in emit_load_ptr()
461 static inline void emit_load_func(unsigned int reg, ptr imm, in emit_load_func() argument
466 emit_load_imm(r_tmp, (u64)imm >> 32, ctx); in emit_load_func()
468 emit_ori(r_tmp, r_tmp_imm, (imm >> 16) & 0xffff, ctx); in emit_load_func()
470 emit_ori(reg, r_tmp_imm, imm & 0xffff, ctx); in emit_load_func()
472 emit_load_imm(reg, imm, ctx); in emit_load_func()
512 unsigned int imm, struct jit_ctx *ctx) in emit_bcond() argument
519 uasm_i_beq(&p, reg1, reg2, imm); in emit_bcond()
522 uasm_i_bne(&p, reg1, reg2, imm); in emit_bcond()
525 uasm_i_b(&p, imm); in emit_bcond()
535 static inline void emit_b(unsigned int imm, struct jit_ctx *ctx) in emit_b() argument
537 emit_bcond(MIPS_COND_ALL, r_zero, r_zero, imm, ctx); in emit_b()