Lines Matching refs:imm
145 static inline bool is_range16(s32 imm) in is_range16() argument
147 return !(imm >= SBIT(15) || imm < -SBIT(15)); in is_range16()
162 static inline void emit_load_imm(unsigned int dst, u32 imm, struct jit_ctx *ctx) in emit_load_imm() argument
166 if (!is_range16(imm)) { in emit_load_imm()
168 uasm_i_lui(&p, r_tmp_imm, (s32)imm >> 16); in emit_load_imm()
170 uasm_i_ori(&p, dst, r_tmp_imm, imm & 0xffff); in emit_load_imm()
173 uasm_i_addiu(&p, dst, r_zero, imm); in emit_load_imm()
178 if (!is_range16(imm)) in emit_load_imm()
188 static inline void emit_ori(unsigned int dst, unsigned src, u32 imm, in emit_ori() argument
191 if (imm >= BIT(16)) { in emit_ori()
192 emit_load_imm(r_tmp, imm, ctx); in emit_ori()
195 emit_instr(ctx, ori, dst, src, imm); in emit_ori()
200 int imm, struct jit_ctx *ctx) in emit_daddiu() argument
206 emit_instr(ctx, daddiu, dst, src, imm); in emit_daddiu()
210 u32 imm, struct jit_ctx *ctx) in emit_addiu() argument
212 if (!is_range16(imm)) { in emit_addiu()
213 emit_load_imm(r_tmp, imm, ctx); in emit_addiu()
216 emit_instr(ctx, addiu, dst, src, imm); in emit_addiu()
227 u32 imm, struct jit_ctx *ctx) in emit_andi() argument
230 if (imm >= BIT(16)) { in emit_andi()
231 emit_load_imm(r_tmp, imm, ctx); in emit_andi()
234 emit_instr(ctx, andi, dst, src, imm); in emit_andi()
244 static inline void emit_xori(ptr dst, ptr src, u32 imm, struct jit_ctx *ctx) in emit_xori() argument
247 if (imm >= BIT(16)) { in emit_xori()
248 emit_load_imm(r_tmp, imm, ctx); in emit_xori()
251 emit_instr(ctx, xori, dst, src, imm); in emit_xori()
318 unsigned int imm, struct jit_ctx *ctx) in emit_sltiu() argument
321 if (!is_range16((s32)imm)) { in emit_sltiu()
322 emit_load_imm(r_tmp, imm, ctx); in emit_sltiu()
325 emit_instr(ctx, sltiu, dst, src, imm); in emit_sltiu()
419 int imm, struct jit_ctx *ctx) in emit_load_ptr() argument
422 emit_long_instr(ctx, LW, dst, imm, src); in emit_load_ptr()
426 static inline void emit_load_func(unsigned int reg, ptr imm, in emit_load_func() argument
431 emit_load_imm(r_tmp, (u64)imm >> 32, ctx); in emit_load_func()
433 emit_ori(r_tmp, r_tmp_imm, (imm >> 16) & 0xffff, ctx); in emit_load_func()
435 emit_ori(reg, r_tmp_imm, imm & 0xffff, ctx); in emit_load_func()
437 emit_load_imm(reg, imm, ctx); in emit_load_func()
477 unsigned int imm, struct jit_ctx *ctx) in emit_bcond() argument
484 uasm_i_beq(&p, reg1, reg2, imm); in emit_bcond()
487 uasm_i_bne(&p, reg1, reg2, imm); in emit_bcond()
490 uasm_i_b(&p, imm); in emit_bcond()
500 static inline void emit_b(unsigned int imm, struct jit_ctx *ctx) in emit_b() argument
502 emit_bcond(MIPS_COND_ALL, r_zero, r_zero, imm, ctx); in emit_b()