Lines Matching refs:emit

93  * operands or the result is unpredictable. We emit explicit sign-extensions
100 emit(ctx, sll, dst, src, 0);
108 emit(ctx, dinsu, dst, MIPS_R_ZERO, 32, 32);
110 emit(ctx, and, dst, dst, bpf2mips64[JIT_REG_ZX]);
127 emit(ctx, daddiu, dst, MIPS_R_ZERO, (s16)imm64);
130 emit(ctx, lui, dst, (s16)(imm64 >> 16));
131 emit(ctx, ori, dst, dst, (u16)imm64 & 0xffff);
145 emit(ctx, dsll_safe, dst, dst, shift);
146 emit(ctx, ori, dst, acc, half);
152 emit(ctx, dsll_safe, dst, dst, shift);
163 emit(ctx, ori, dst, dst, (u16)imm);
167 emit(ctx, xori, dst, dst, (u16)imm);
171 emit(ctx, dsubu, dst, MIPS_R_ZERO, dst);
175 emit(ctx, dsll_safe, dst, dst, imm);
179 emit(ctx, dsrl_safe, dst, dst, imm);
183 emit(ctx, dsra_safe, dst, dst, imm);
187 emit(ctx, daddiu, dst, dst, imm);
191 emit(ctx, daddiu, dst, dst, -imm);
206 emit(ctx, dsllv, dst, dst, src);
210 emit(ctx, dsrlv, dst, dst, src);
214 emit(ctx, dsrav, dst, dst, src);
218 emit(ctx, daddu, dst, dst, src);
222 emit(ctx, dsubu, dst, dst, src);
227 emit(ctx, dmulu, dst, dst, src);
229 emit(ctx, dmultu, dst, src);
230 emit(ctx, mflo, dst);
233 emit(ctx, mfhi, MIPS_R_ZERO);
239 emit(ctx, ddivu_r6, dst, dst, src);
241 emit(ctx, ddivu, dst, src);
242 emit(ctx, mflo, dst);
248 emit(ctx, dmodu, dst, dst, src);
250 emit(ctx, ddivu, dst, src);
251 emit(ctx, mfhi, dst);
266 emit(ctx, and, tmp, dst, mask); /* tmp = dst & mask */
267 emit(ctx, dsll, tmp, tmp, bits); /* tmp = tmp << bits */
268 emit(ctx, dsrl, dst, dst, bits); /* dst = dst >> bits */
269 emit(ctx, and, dst, dst, mask); /* dst = dst & mask */
270 emit(ctx, or, dst, dst, tmp); /* dst = dst | tmp */
280 emit(ctx, dsbh, dst, dst);
281 emit(ctx, dshd, dst, dst);
286 emit(ctx, dsll32, t2, dst, 0); /* t2 = dst << 32 */
287 emit(ctx, dsrl32, dst, dst, 0); /* dst = dst >> 32 */
288 emit(ctx, or, dst, dst, t2); /* dst = dst | t2 */
290 emit(ctx, ori, t2, MIPS_R_ZERO, 0xffff);
291 emit(ctx, dsll32, t1, t2, 0); /* t1 = t2 << 32 */
292 emit(ctx, or, t1, t1, t2); /* t1 = t1 | t2 */
295 emit(ctx, lui, t2, 0xff); /* t2 = 0x00ff0000 */
296 emit(ctx, ori, t2, t2, 0xff); /* t2 = t2 | 0x00ff */
297 emit(ctx, dsll32, t1, t2, 0); /* t1 = t2 << 32 */
298 emit(ctx, or, t1, t1, t2); /* t1 = t1 | t2 */
327 emit(ctx, andi, dst, dst, 0xffff);
339 emit(ctx, lbu, dst, off, src);
343 emit(ctx, lhu, dst, off, src);
347 emit(ctx, lwu, dst, off, src);
351 emit(ctx, ld, dst, off, src);
363 emit(ctx, sb, src, off, dst);
367 emit(ctx, sh, src, off, dst);
371 emit(ctx, sw, src, off, dst);
375 emit(ctx, sd, src, off, dst);
388 emit(ctx, lld, t1, off, dst);
392 emit(ctx, daddu, t2, t1, src);
396 emit(ctx, and, t2, t1, src);
400 emit(ctx, or, t2, t1, src);
404 emit(ctx, xor, t2, t1, src);
407 emit(ctx, move, t2, src);
410 emit(ctx, scd, t2, off, dst);
411 emit(ctx, LLSC_beqz, t2, -16 - LLSC_offset);
412 emit(ctx, nop); /* Delay slot */
415 emit(ctx, move, src, t1);
428 emit(ctx, lld, t1, off, dst);
429 emit(ctx, bne, t1, r0, 12);
430 emit(ctx, move, t2, src); /* Delay slot */
431 emit(ctx, scd, t2, off, dst);
432 emit(ctx, LLSC_beqz, t2, -20 - LLSC_offset);
433 emit(ctx, move, r0, t1); /* Delay slot */
458 emit(ctx, jalr, MIPS_R_RA, tmp);
459 emit(ctx, nop); /* Delay slot */
466 emit(ctx, daddiu, zx, MIPS_R_ZERO, -1);
467 emit(ctx, dsrl32, zx, zx, 0);
496 emit(ctx, lwu, tmp, off, ary); /* tmp = ary->map.max_entrs*/
497 emit(ctx, sltu, tmp, ind, tmp); /* tmp = ind < t1 */
498 emit(ctx, beqz, tmp, get_offset(ctx, 1)); /* PC += off(1) if tmp == 0*/
501 emit(ctx, daddiu, tcc, tcc, -1); /* tcc-- (delay slot) */
502 emit(ctx, bltz, tcc, get_offset(ctx, 1)); /* PC += off(1) if tcc < 0 */
508 emit(ctx, dsll, tmp, ind, 3); /* tmp = ind << 3 */
509 emit(ctx, daddu, tmp, tmp, ary); /* tmp += ary */
510 emit(ctx, ld, tmp, off, tmp); /* tmp = *(tmp + off) */
513 emit(ctx, beqz, tmp, get_offset(ctx, 1)); /* PC += off(1) if tmp == 0*/
514 emit(ctx, nop); /* Delay slot */
520 emit(ctx, ld, tmp, off, tmp); /* tmp = *(tmp + off) */
521 emit(ctx, daddiu, tmp, tmp, JIT_TCALL_SKIP); /* tmp += skip (4) */
566 emit(ctx, ori, tc, MIPS_R_ZERO, MAX_TAIL_CALL_CNT);
599 emit(ctx, daddiu, MIPS_R_SP, MIPS_R_SP, -stack);
606 emit(ctx, daddiu, fp, MIPS_R_SP, stack - saved);
610 emit(ctx, daddiu, zx, MIPS_R_ZERO, -1);
611 emit(ctx, dsrl32, zx, zx, 0);
627 emit(ctx, daddiu, MIPS_R_SP, MIPS_R_SP, ctx->stack_size);
630 emit(ctx, jr, dest_reg);
631 emit(ctx, sll, MIPS_R_V0, MIPS_R_V0, 0); /* Delay slot */