Lines Matching refs:emit

100 	emit(ctx, sll, dst, src, 0);  in emit_sext()
108 emit(ctx, dinsu, dst, MIPS_R_ZERO, 32, 32); in emit_zext()
110 emit(ctx, and, dst, dst, bpf2mips64[JIT_REG_ZX]); in emit_zext()
127 emit(ctx, daddiu, dst, MIPS_R_ZERO, (s16)imm64); in emit_mov_i64()
130 emit(ctx, lui, dst, (s16)(imm64 >> 16)); in emit_mov_i64()
131 emit(ctx, ori, dst, dst, (u16)imm64 & 0xffff); in emit_mov_i64()
145 emit(ctx, dsll_safe, dst, dst, shift); in emit_mov_i64()
146 emit(ctx, ori, dst, acc, half); in emit_mov_i64()
152 emit(ctx, dsll_safe, dst, dst, shift); in emit_mov_i64()
163 emit(ctx, ori, dst, dst, (u16)imm); in emit_alu_i64()
167 emit(ctx, xori, dst, dst, (u16)imm); in emit_alu_i64()
171 emit(ctx, dsubu, dst, MIPS_R_ZERO, dst); in emit_alu_i64()
175 emit(ctx, dsll_safe, dst, dst, imm); in emit_alu_i64()
179 emit(ctx, dsrl_safe, dst, dst, imm); in emit_alu_i64()
183 emit(ctx, dsra_safe, dst, dst, imm); in emit_alu_i64()
187 emit(ctx, daddiu, dst, dst, imm); in emit_alu_i64()
191 emit(ctx, daddiu, dst, dst, -imm); in emit_alu_i64()
206 emit(ctx, dsllv, dst, dst, src); in emit_alu_r64()
210 emit(ctx, dsrlv, dst, dst, src); in emit_alu_r64()
214 emit(ctx, dsrav, dst, dst, src); in emit_alu_r64()
218 emit(ctx, daddu, dst, dst, src); in emit_alu_r64()
222 emit(ctx, dsubu, dst, dst, src); in emit_alu_r64()
227 emit(ctx, dmulu, dst, dst, src); in emit_alu_r64()
229 emit(ctx, dmultu, dst, src); in emit_alu_r64()
230 emit(ctx, mflo, dst); in emit_alu_r64()
236 emit(ctx, ddivu_r6, dst, dst, src); in emit_alu_r64()
238 emit(ctx, ddivu, dst, src); in emit_alu_r64()
239 emit(ctx, mflo, dst); in emit_alu_r64()
245 emit(ctx, dmodu, dst, dst, src); in emit_alu_r64()
247 emit(ctx, ddivu, dst, src); in emit_alu_r64()
248 emit(ctx, mfhi, dst); in emit_alu_r64()
263 emit(ctx, and, tmp, dst, mask); /* tmp = dst & mask */ in emit_swap_r64()
264 emit(ctx, dsll, tmp, tmp, bits); /* tmp = tmp << bits */ in emit_swap_r64()
265 emit(ctx, dsrl, dst, dst, bits); /* dst = dst >> bits */ in emit_swap_r64()
266 emit(ctx, and, dst, dst, mask); /* dst = dst & mask */ in emit_swap_r64()
267 emit(ctx, or, dst, dst, tmp); /* dst = dst | tmp */ in emit_swap_r64()
277 emit(ctx, dsbh, dst, dst); in emit_bswap_r64()
278 emit(ctx, dshd, dst, dst); in emit_bswap_r64()
283 emit(ctx, dsll32, t2, dst, 0); /* t2 = dst << 32 */ in emit_bswap_r64()
284 emit(ctx, dsrl32, dst, dst, 0); /* dst = dst >> 32 */ in emit_bswap_r64()
285 emit(ctx, or, dst, dst, t2); /* dst = dst | t2 */ in emit_bswap_r64()
287 emit(ctx, ori, t2, MIPS_R_ZERO, 0xffff); in emit_bswap_r64()
288 emit(ctx, dsll32, t1, t2, 0); /* t1 = t2 << 32 */ in emit_bswap_r64()
289 emit(ctx, or, t1, t1, t2); /* t1 = t1 | t2 */ in emit_bswap_r64()
292 emit(ctx, lui, t2, 0xff); /* t2 = 0x00ff0000 */ in emit_bswap_r64()
293 emit(ctx, ori, t2, t2, 0xff); /* t2 = t2 | 0x00ff */ in emit_bswap_r64()
294 emit(ctx, dsll32, t1, t2, 0); /* t1 = t2 << 32 */ in emit_bswap_r64()
295 emit(ctx, or, t1, t1, t2); /* t1 = t1 | t2 */ in emit_bswap_r64()
324 emit(ctx, andi, dst, dst, 0xffff); in emit_trunc_r64()
336 emit(ctx, lbu, dst, off, src); in emit_ldx()
340 emit(ctx, lhu, dst, off, src); in emit_ldx()
344 emit(ctx, lwu, dst, off, src); in emit_ldx()
348 emit(ctx, ld, dst, off, src); in emit_ldx()
360 emit(ctx, sb, src, off, dst); in emit_stx()
364 emit(ctx, sh, src, off, dst); in emit_stx()
368 emit(ctx, sw, src, off, dst); in emit_stx()
372 emit(ctx, sd, src, off, dst); in emit_stx()
385 emit(ctx, lld, t1, off, dst); in emit_atomic_r64()
389 emit(ctx, daddu, t2, t1, src); in emit_atomic_r64()
393 emit(ctx, and, t2, t1, src); in emit_atomic_r64()
397 emit(ctx, or, t2, t1, src); in emit_atomic_r64()
401 emit(ctx, xor, t2, t1, src); in emit_atomic_r64()
404 emit(ctx, move, t2, src); in emit_atomic_r64()
407 emit(ctx, scd, t2, off, dst); in emit_atomic_r64()
408 emit(ctx, LLSC_beqz, t2, -16 - LLSC_offset); in emit_atomic_r64()
409 emit(ctx, nop); /* Delay slot */ in emit_atomic_r64()
412 emit(ctx, move, src, t1); in emit_atomic_r64()
425 emit(ctx, lld, t1, off, dst); in emit_cmpxchg_r64()
426 emit(ctx, bne, t1, r0, 12); in emit_cmpxchg_r64()
427 emit(ctx, move, t2, src); /* Delay slot */ in emit_cmpxchg_r64()
428 emit(ctx, scd, t2, off, dst); in emit_cmpxchg_r64()
429 emit(ctx, LLSC_beqz, t2, -20 - LLSC_offset); in emit_cmpxchg_r64()
430 emit(ctx, move, r0, t1); /* Delay slot */ in emit_cmpxchg_r64()
455 emit(ctx, jalr, MIPS_R_RA, tmp); in emit_call()
456 emit(ctx, nop); /* Delay slot */ in emit_call()
463 emit(ctx, daddiu, zx, MIPS_R_ZERO, -1); in emit_call()
464 emit(ctx, dsrl32, zx, zx, 0); in emit_call()
493 emit(ctx, lwu, tmp, off, ary); /* tmp = ary->map.max_entrs*/ in emit_tail_call()
494 emit(ctx, sltu, tmp, ind, tmp); /* tmp = ind < t1 */ in emit_tail_call()
495 emit(ctx, beqz, tmp, get_offset(ctx, 1)); /* PC += off(1) if tmp == 0*/ in emit_tail_call()
498 emit(ctx, daddiu, tcc, tcc, -1); /* tcc-- (delay slot) */ in emit_tail_call()
499 emit(ctx, bltz, tcc, get_offset(ctx, 1)); /* PC += off(1) if tcc < 0 */ in emit_tail_call()
505 emit(ctx, dsll, tmp, ind, 3); /* tmp = ind << 3 */ in emit_tail_call()
506 emit(ctx, daddu, tmp, tmp, ary); /* tmp += ary */ in emit_tail_call()
507 emit(ctx, ld, tmp, off, tmp); /* tmp = *(tmp + off) */ in emit_tail_call()
510 emit(ctx, beqz, tmp, get_offset(ctx, 1)); /* PC += off(1) if tmp == 0*/ in emit_tail_call()
511 emit(ctx, nop); /* Delay slot */ in emit_tail_call()
517 emit(ctx, ld, tmp, off, tmp); /* tmp = *(tmp + off) */ in emit_tail_call()
518 emit(ctx, daddiu, tmp, tmp, JIT_TCALL_SKIP); /* tmp += skip (4) */ in emit_tail_call()
563 emit(ctx, ori, tc, MIPS_R_ZERO, MAX_TAIL_CALL_CNT); in build_prologue()
596 emit(ctx, daddiu, MIPS_R_SP, MIPS_R_SP, -stack); in build_prologue()
603 emit(ctx, daddiu, fp, MIPS_R_SP, stack - saved); in build_prologue()
607 emit(ctx, daddiu, zx, MIPS_R_ZERO, -1); in build_prologue()
608 emit(ctx, dsrl32, zx, zx, 0); in build_prologue()
624 emit(ctx, daddiu, MIPS_R_SP, MIPS_R_SP, ctx->stack_size); in build_epilogue()
627 emit(ctx, jr, dest_reg); in build_epilogue()
628 emit(ctx, sll, MIPS_R_V0, MIPS_R_V0, 0); /* Delay slot */ in build_epilogue()