Lines Matching refs:EMIT

36 #define PPC_EX32(r, i)		EMIT(PPC_RAW_LI((r), (i) < 0 ? -1 : 0))
132 EMIT(PPC_RAW_LI(_R4, 0));
134 EMIT(PPC_RAW_NOP());
139 EMIT(PPC_RAW_STWU(_R1, _R1, -BPF_PPC_STACKFRAME(ctx)));
142 EMIT(PPC_RAW_STW(_R4, _R1, bpf_jit_stack_offsetof(ctx, BPF_PPC_TC)));
145 EMIT(PPC_RAW_MR(bpf_to_ppc(BPF_REG_1), _R3));
146 EMIT(PPC_RAW_LI(bpf_to_ppc(BPF_REG_1) - 1, 0));
153 EMIT(PPC_RAW_MFLR(_R0));
160 EMIT(PPC_RAW_STW(i, _R1, bpf_jit_stack_offsetof(ctx, i)));
164 EMIT(PPC_RAW_LI(bpf_to_ppc(BPF_REG_FP) - 1, 0));
165 EMIT(PPC_RAW_ADDI(bpf_to_ppc(BPF_REG_FP), _R1,
170 EMIT(PPC_RAW_STW(_R0, _R1, BPF_PPC_STACKFRAME(ctx) + PPC_LR_STKOFF));
180 EMIT(PPC_RAW_LWZ(i, _R1, bpf_jit_stack_offsetof(ctx, i)));
183 EMIT(PPC_RAW_LWZ(_R0, _R1, BPF_PPC_STACKFRAME(ctx) + PPC_LR_STKOFF));
187 EMIT(PPC_RAW_ADDI(_R1, _R1, BPF_PPC_STACKFRAME(ctx)));
190 EMIT(PPC_RAW_MTLR(_R0));
196 EMIT(PPC_RAW_MR(_R3, bpf_to_ppc(BPF_REG_0)));
200 EMIT(PPC_RAW_BLR());
211 EMIT(PPC_RAW_LIS(_R0, IMM_H(func)));
212 EMIT(PPC_RAW_ORI(_R0, _R0, IMM_L(func)));
213 EMIT(PPC_RAW_MTCTR(_R0));
214 EMIT(PPC_RAW_BCTRL());
235 EMIT(PPC_RAW_LWZ(_R0, b2p_bpf_array, offsetof(struct bpf_array, map.max_entries)));
236 EMIT(PPC_RAW_CMPLW(b2p_index, _R0));
237 EMIT(PPC_RAW_LWZ(_R0, _R1, bpf_jit_stack_offsetof(ctx, BPF_PPC_TC)));
244 EMIT(PPC_RAW_CMPLWI(_R0, MAX_TAIL_CALL_CNT));
246 EMIT(PPC_RAW_ADDIC(_R0, _R0, 1));
250 EMIT(PPC_RAW_RLWINM(_R3, b2p_index, 2, 0, 29));
251 EMIT(PPC_RAW_ADD(_R3, _R3, b2p_bpf_array));
252 EMIT(PPC_RAW_LWZ(_R3, _R3, offsetof(struct bpf_array, ptrs)));
258 EMIT(PPC_RAW_CMPLWI(_R3, 0));
262 EMIT(PPC_RAW_LWZ(_R3, _R3, offsetof(struct bpf_prog, bpf_func)));
263 EMIT(PPC_RAW_ADDIC(_R3, _R3, BPF_TAILCALL_PROLOGUE_SIZE));
264 EMIT(PPC_RAW_MTCTR(_R3));
266 EMIT(PPC_RAW_MR(_R3, bpf_to_ppc(BPF_REG_1)));
269 EMIT(PPC_RAW_MR(_R4, _R0));
274 EMIT(PPC_RAW_BCTR());
353 EMIT(PPC_RAW_ADD(dst_reg, src2_reg, src_reg));
356 EMIT(PPC_RAW_ADDC(dst_reg, src2_reg, src_reg));
357 EMIT(PPC_RAW_ADDE(dst_reg_h, src2_reg_h, src_reg_h));
360 EMIT(PPC_RAW_SUB(dst_reg, src2_reg, src_reg));
363 EMIT(PPC_RAW_SUBFC(dst_reg, src_reg, src2_reg));
364 EMIT(PPC_RAW_SUBFE(dst_reg_h, src_reg_h, src2_reg_h));
371 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
373 EMIT(PPC_RAW_ADDIS(dst_reg, src2_reg, IMM_HA(imm)));
377 EMIT(PPC_RAW_ADDI(dst_reg, src2_reg, IMM_L(imm)));
384 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
385 EMIT(PPC_RAW_MR(dst_reg_h, src2_reg_h));
389 EMIT(PPC_RAW_ADDIC(dst_reg, src2_reg, imm));
392 EMIT(PPC_RAW_ADDC(dst_reg, src2_reg, _R0));
395 EMIT(PPC_RAW_ADDZE(dst_reg_h, src2_reg_h));
397 EMIT(PPC_RAW_ADDME(dst_reg_h, src2_reg_h));
401 EMIT(PPC_RAW_MULW(_R0, src2_reg, src_reg_h));
402 EMIT(PPC_RAW_MULW(dst_reg_h, src2_reg_h, src_reg));
403 EMIT(PPC_RAW_MULHWU(tmp_reg, src2_reg, src_reg));
404 EMIT(PPC_RAW_MULW(dst_reg, src2_reg, src_reg));
405 EMIT(PPC_RAW_ADD(dst_reg_h, dst_reg_h, _R0));
406 EMIT(PPC_RAW_ADD(dst_reg_h, dst_reg_h, tmp_reg));
409 EMIT(PPC_RAW_MULW(dst_reg, src2_reg, src_reg));
413 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
415 EMIT(PPC_RAW_SUBFIC(dst_reg, src2_reg, 0));
417 EMIT(PPC_RAW_SLWI(dst_reg, src2_reg, ilog2(imm)));
419 EMIT(PPC_RAW_MULI(dst_reg, src2_reg, imm));
422 EMIT(PPC_RAW_MULW(dst_reg, src2_reg, _R0));
430 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
431 EMIT(PPC_RAW_MR(dst_reg_h, src2_reg_h));
433 EMIT(PPC_RAW_SUBFIC(dst_reg, src2_reg, 0));
434 EMIT(PPC_RAW_SUBFZE(dst_reg_h, src2_reg_h));
437 EMIT(PPC_RAW_RLWINM(dst_reg_h, src2_reg_h, imm, 0, 31 - imm));
438 EMIT(PPC_RAW_RLWIMI(dst_reg_h, dst_reg, imm, 32 - imm, 31));
439 EMIT(PPC_RAW_SLWI(dst_reg, src2_reg, imm));
443 EMIT(PPC_RAW_MULW(dst_reg_h, src2_reg_h, tmp_reg));
445 EMIT(PPC_RAW_SUB(dst_reg_h, dst_reg_h, src2_reg));
446 EMIT(PPC_RAW_MULHWU(_R0, src2_reg, tmp_reg));
447 EMIT(PPC_RAW_MULW(dst_reg, src2_reg, tmp_reg));
448 EMIT(PPC_RAW_ADD(dst_reg_h, dst_reg_h, _R0));
452 EMIT(PPC_RAW_DIVWU(dst_reg, src2_reg, src_reg));
455 EMIT(PPC_RAW_DIVWU(_R0, src2_reg, src_reg));
456 EMIT(PPC_RAW_MULW(_R0, src_reg, _R0));
457 EMIT(PPC_RAW_SUB(dst_reg, src2_reg, _R0));
467 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
469 EMIT(PPC_RAW_SRWI(dst_reg, src2_reg, ilog2(imm)));
472 EMIT(PPC_RAW_DIVWU(dst_reg, src2_reg, _R0));
482 EMIT(PPC_RAW_DIVWU(_R0, src2_reg, tmp_reg));
483 EMIT(PPC_RAW_MULW(_R0, tmp_reg, _R0));
484 EMIT(PPC_RAW_SUB(dst_reg, src2_reg, _R0));
486 EMIT(PPC_RAW_LI(dst_reg, 0));
489 EMIT(PPC_RAW_RLWINM(dst_reg, src2_reg, 0, 32 - imm, 31));
500 EMIT(PPC_RAW_LI(dst_reg, 0));
502 EMIT(PPC_RAW_RLWINM(dst_reg, src2_reg, 0, 32 - ilog2(imm), 31));
503 EMIT(PPC_RAW_LI(dst_reg_h, 0));
512 EMIT(PPC_RAW_SUBFIC(dst_reg, src2_reg, 0));
513 EMIT(PPC_RAW_SUBFZE(dst_reg_h, src2_reg_h));
518 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
519 EMIT(PPC_RAW_MR(dst_reg_h, src2_reg_h));
522 EMIT(PPC_RAW_RLWINM(dst_reg, src2_reg, 32 - imm, imm, 31));
523 EMIT(PPC_RAW_RLWIMI(dst_reg, src2_reg_h, 32 - imm, 0, imm - 1));
524 EMIT(PPC_RAW_SRAWI(dst_reg_h, src2_reg_h, imm));
528 EMIT(PPC_RAW_NEG(dst_reg, src2_reg));
531 EMIT(PPC_RAW_SUBFIC(dst_reg, src2_reg, 0));
532 EMIT(PPC_RAW_SUBFZE(dst_reg_h, src2_reg_h));
539 EMIT(PPC_RAW_AND(dst_reg, src2_reg, src_reg));
540 EMIT(PPC_RAW_AND(dst_reg_h, src2_reg_h, src_reg_h));
543 EMIT(PPC_RAW_AND(dst_reg, src2_reg, src_reg));
547 EMIT(PPC_RAW_LI(dst_reg_h, 0));
551 EMIT(PPC_RAW_ANDI(dst_reg, src2_reg, IMM_L(imm)));
553 EMIT(PPC_RAW_ANDIS(dst_reg, src2_reg, IMM_H(imm)));
555 EMIT(PPC_RAW_RLWINM(dst_reg, src2_reg, 0,
559 EMIT(PPC_RAW_AND(dst_reg, src2_reg, _R0));
563 EMIT(PPC_RAW_OR(dst_reg, src2_reg, src_reg));
564 EMIT(PPC_RAW_OR(dst_reg_h, src2_reg_h, src_reg_h));
567 EMIT(PPC_RAW_OR(dst_reg, src2_reg, src_reg));
572 EMIT(PPC_RAW_LI(dst_reg_h, -1));
576 EMIT(PPC_RAW_ORI(dst_reg, src2_reg, IMM_L(imm)));
580 EMIT(PPC_RAW_ORIS(dst_reg, src2_reg, IMM_H(imm)));
584 EMIT(PPC_RAW_LI(dst_reg, 0));
585 EMIT(PPC_RAW_LI(dst_reg_h, 0));
587 EMIT(PPC_RAW_XOR(dst_reg, src2_reg, src_reg));
588 EMIT(PPC_RAW_XOR(dst_reg_h, src2_reg_h, src_reg_h));
593 EMIT(PPC_RAW_LI(dst_reg, 0));
595 EMIT(PPC_RAW_XOR(dst_reg, src2_reg, src_reg));
599 EMIT(PPC_RAW_NOR(dst_reg_h, src2_reg_h, src2_reg_h));
603 EMIT(PPC_RAW_XORI(dst_reg, src2_reg, IMM_L(imm)));
607 EMIT(PPC_RAW_XORIS(dst_reg, src2_reg, IMM_H(imm)));
610 EMIT(PPC_RAW_SLW(dst_reg, src2_reg, src_reg));
614 EMIT(PPC_RAW_SUBFIC(_R0, src_reg, 32));
615 EMIT(PPC_RAW_SLW(dst_reg_h, src2_reg_h, src_reg));
616 EMIT(PPC_RAW_ADDI(tmp_reg, src_reg, 32));
617 EMIT(PPC_RAW_SRW(_R0, src2_reg, _R0));
618 EMIT(PPC_RAW_SLW(tmp_reg, src2_reg, tmp_reg));
619 EMIT(PPC_RAW_OR(dst_reg_h, dst_reg_h, _R0));
620 EMIT(PPC_RAW_SLW(dst_reg, src2_reg, src_reg));
621 EMIT(PPC_RAW_OR(dst_reg_h, dst_reg_h, tmp_reg));
625 EMIT(PPC_RAW_SLWI(dst_reg, src2_reg, imm));
627 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
633 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
635 EMIT(PPC_RAW_RLWINM(dst_reg_h, src2_reg_h, imm, 0, 31 - imm));
636 EMIT(PPC_RAW_RLWIMI(dst_reg_h, src2_reg, imm, 32 - imm, 31));
637 EMIT(PPC_RAW_RLWINM(dst_reg, src2_reg, imm, 0, 31 - imm));
639 EMIT(PPC_RAW_RLWINM(dst_reg_h, src2_reg, imm, 0, 31 - imm));
640 EMIT(PPC_RAW_LI(dst_reg, 0));
642 EMIT(PPC_RAW_LI(dst_reg_h, 0));
643 EMIT(PPC_RAW_LI(dst_reg, 0));
647 EMIT(PPC_RAW_SRW(dst_reg, src2_reg, src_reg));
651 EMIT(PPC_RAW_SUBFIC(_R0, src_reg, 32));
652 EMIT(PPC_RAW_SRW(dst_reg, src2_reg, src_reg));
653 EMIT(PPC_RAW_ADDI(tmp_reg, src_reg, 32));
654 EMIT(PPC_RAW_SLW(_R0, src2_reg_h, _R0));
655 EMIT(PPC_RAW_SRW(tmp_reg, dst_reg_h, tmp_reg));
656 EMIT(PPC_RAW_OR(dst_reg, dst_reg, _R0));
657 EMIT(PPC_RAW_SRW(dst_reg_h, src2_reg_h, src_reg));
658 EMIT(PPC_RAW_OR(dst_reg, dst_reg, tmp_reg));
662 EMIT(PPC_RAW_SRWI(dst_reg, src2_reg, imm));
664 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
670 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
671 EMIT(PPC_RAW_MR(dst_reg_h, src2_reg_h));
673 EMIT(PPC_RAW_RLWINM(dst_reg, src2_reg, 32 - imm, imm, 31));
674 EMIT(PPC_RAW_RLWIMI(dst_reg, src2_reg_h, 32 - imm, 0, imm - 1));
675 EMIT(PPC_RAW_RLWINM(dst_reg_h, src2_reg_h, 32 - imm, imm, 31));
677 EMIT(PPC_RAW_RLWINM(dst_reg, src2_reg_h, 64 - imm, imm - 32, 31));
678 EMIT(PPC_RAW_LI(dst_reg_h, 0));
680 EMIT(PPC_RAW_LI(dst_reg, 0));
681 EMIT(PPC_RAW_LI(dst_reg_h, 0));
685 EMIT(PPC_RAW_SRAW(dst_reg, src2_reg, src_reg));
689 EMIT(PPC_RAW_SUBFIC(_R0, src_reg, 32));
690 EMIT(PPC_RAW_SRW(dst_reg, src2_reg, src_reg));
691 EMIT(PPC_RAW_SLW(_R0, src2_reg_h, _R0));
692 EMIT(PPC_RAW_ADDI(tmp_reg, src_reg, 32));
693 EMIT(PPC_RAW_OR(dst_reg, dst_reg, _R0));
694 EMIT(PPC_RAW_RLWINM(_R0, tmp_reg, 0, 26, 26));
695 EMIT(PPC_RAW_SRAW(tmp_reg, src2_reg_h, tmp_reg));
696 EMIT(PPC_RAW_SRAW(dst_reg_h, src2_reg_h, src_reg));
697 EMIT(PPC_RAW_SLW(tmp_reg, tmp_reg, _R0));
698 EMIT(PPC_RAW_OR(dst_reg, dst_reg, tmp_reg));
702 EMIT(PPC_RAW_SRAWI(dst_reg, src2_reg, imm));
704 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
710 EMIT(PPC_RAW_MR(dst_reg, src2_reg));
711 EMIT(PPC_RAW_MR(dst_reg_h, src2_reg_h));
713 EMIT(PPC_RAW_RLWINM(dst_reg, src2_reg, 32 - imm, imm, 31));
714 EMIT(PPC_RAW_RLWIMI(dst_reg, src2_reg_h, 32 - imm, 0, imm - 1));
715 EMIT(PPC_RAW_SRAWI(dst_reg_h, src2_reg_h, imm));
717 EMIT(PPC_RAW_SRAWI(dst_reg, src2_reg_h, imm - 32));
718 EMIT(PPC_RAW_SRAWI(dst_reg_h, src2_reg_h, 31));
720 EMIT(PPC_RAW_SRAWI(dst_reg, src2_reg_h, 31));
721 EMIT(PPC_RAW_SRAWI(dst_reg_h, src2_reg_h, 31));
731 EMIT(PPC_RAW_MR(dst_reg, src_reg));
732 EMIT(PPC_RAW_MR(dst_reg_h, src_reg_h));
737 EMIT(PPC_RAW_LI(dst_reg_h, 0));
739 EMIT(PPC_RAW_MR(dst_reg, src_reg));
756 EMIT(PPC_RAW_RLWIMI(dst_reg, src2_reg, 16, 0, 15));
758 EMIT(PPC_RAW_RLWINM(dst_reg, dst_reg, 24, 16, 31));
766 EMIT(PPC_RAW_RLWINM(_R0, src2_reg, 8, 0, 31));
768 EMIT(PPC_RAW_RLWIMI(_R0, src2_reg, 24, 0, 7));
770 EMIT(PPC_RAW_RLWIMI(_R0, src2_reg, 24, 16, 23));
771 EMIT(PPC_RAW_MR(dst_reg, _R0));
775 EMIT(PPC_RAW_RLWINM(tmp_reg, src2_reg, 8, 0, 31));
776 EMIT(PPC_RAW_RLWINM(_R0, src2_reg_h, 8, 0, 31));
778 EMIT(PPC_RAW_RLWIMI(tmp_reg, src2_reg, 24, 0, 7));
779 EMIT(PPC_RAW_RLWIMI(_R0, src2_reg_h, 24, 0, 7));
781 EMIT(PPC_RAW_RLWIMI(tmp_reg, src2_reg, 24, 16, 23));
782 EMIT(PPC_RAW_RLWIMI(_R0, src2_reg_h, 24, 16, 23));
783 EMIT(PPC_RAW_MR(dst_reg, _R0));
784 EMIT(PPC_RAW_MR(dst_reg_h, tmp_reg));
792 EMIT(PPC_RAW_RLWINM(dst_reg, src2_reg, 0, 16, 31));
811 EMIT(PPC_RAW_STB(src_reg, dst_reg, off));
815 EMIT(PPC_RAW_STB(_R0, dst_reg, off));
818 EMIT(PPC_RAW_STH(src_reg, dst_reg, off));
822 EMIT(PPC_RAW_STH(_R0, dst_reg, off));
825 EMIT(PPC_RAW_STW(src_reg, dst_reg, off));
829 EMIT(PPC_RAW_STW(_R0, dst_reg, off));
832 EMIT(PPC_RAW_STW(src_reg_h, dst_reg, off));
833 EMIT(PPC_RAW_STW(src_reg, dst_reg, off + 4));
837 EMIT(PPC_RAW_STW(_R0, dst_reg, off + 4));
839 EMIT(PPC_RAW_STW(_R0, dst_reg, off));
853 EMIT(PPC_RAW_LI(tmp_reg, off));
856 EMIT(PPC_RAW_LWARX(_R0, tmp_reg, dst_reg, 0));
860 EMIT(PPC_RAW_MR(ax_reg, _R0));
865 EMIT(PPC_RAW_ADD(_R0, _R0, src_reg));
869 EMIT(PPC_RAW_AND(_R0, _R0, src_reg));
873 EMIT(PPC_RAW_OR(_R0, _R0, src_reg));
877 EMIT(PPC_RAW_XOR(_R0, _R0, src_reg));
887 EMIT(PPC_RAW_CMPW(bpf_to_ppc(BPF_REG_0), _R0));
901 EMIT(PPC_RAW_STWCX(save_reg, tmp_reg, dst_reg));
907 EMIT(PPC_RAW_MR(ret_reg, ax_reg));
909 EMIT(PPC_RAW_LI(ret_reg - 1, 0)); /* higher 32-bit */
935 EMIT(PPC_RAW_CMPLW(src_reg, _R0));
937 EMIT(PPC_RAW_LI(dst_reg, 0));
947 EMIT(PPC_RAW_LI(dst_reg_h, 0));
949 EMIT(PPC_RAW_NOP());
963 EMIT(PPC_RAW_LBZ(dst_reg, src_reg, off));
966 EMIT(PPC_RAW_LHZ(dst_reg, src_reg, off));
969 EMIT(PPC_RAW_LWZ(dst_reg, src_reg, off));
972 EMIT(PPC_RAW_LWZ(dst_reg_h, src_reg, off));
973 EMIT(PPC_RAW_LWZ(dst_reg, src_reg, off + 4));
978 EMIT(PPC_RAW_LI(dst_reg_h, 0));
1018 EMIT(PPC_RAW_NOP());
1052 EMIT(PPC_RAW_STW(bpf_to_ppc(BPF_REG_5) - 1, _R1, 8));
1053 EMIT(PPC_RAW_STW(bpf_to_ppc(BPF_REG_5), _R1, 12));
1060 EMIT(PPC_RAW_MR(bpf_to_ppc(BPF_REG_0) - 1, _R3));
1061 EMIT(PPC_RAW_MR(bpf_to_ppc(BPF_REG_0), _R4));
1139 EMIT(PPC_RAW_CMPLW(dst_reg_h, src_reg_h));
1141 EMIT(PPC_RAW_CMPLW(dst_reg, src_reg));
1150 EMIT(PPC_RAW_CMPLW(dst_reg, src_reg));
1157 EMIT(PPC_RAW_CMPW(dst_reg_h, src_reg_h));
1159 EMIT(PPC_RAW_CMPLW(dst_reg, src_reg));
1166 EMIT(PPC_RAW_CMPW(dst_reg, src_reg));
1169 EMIT(PPC_RAW_AND_DOT(_R0, dst_reg_h, src_reg_h));
1171 EMIT(PPC_RAW_AND_DOT(_R0, dst_reg, src_reg));
1174 EMIT(PPC_RAW_AND_DOT(_R0, dst_reg, src_reg));
1187 EMIT(PPC_RAW_CMPLWI(dst_reg_h, 0));
1189 EMIT(PPC_RAW_CMPLWI(dst_reg, imm));
1193 EMIT(PPC_RAW_CMPLW(dst_reg_h, _R0));
1196 EMIT(PPC_RAW_CMPLW(dst_reg, _R0));
1206 EMIT(PPC_RAW_CMPLWI(dst_reg, imm));
1209 EMIT(PPC_RAW_CMPLW(dst_reg, _R0));
1218 EMIT(PPC_RAW_CMPWI(dst_reg_h, imm < 0 ? -1 : 0));
1220 EMIT(PPC_RAW_CMPLWI(dst_reg, imm));
1223 EMIT(PPC_RAW_CMPWI(dst_reg_h, imm < 0 ? -1 : 0));
1226 EMIT(PPC_RAW_CMPLW(dst_reg, _R0));
1238 EMIT(PPC_RAW_CMPWI(dst_reg, imm));
1242 EMIT(PPC_RAW_CMPW(dst_reg, _R0));
1249 EMIT(PPC_RAW_ANDI(_R0, dst_reg, imm));
1253 EMIT(PPC_RAW_CMPWI(dst_reg_h, 0));
1256 EMIT(PPC_RAW_AND_DOT(_R0, dst_reg, _R0));
1263 EMIT(PPC_RAW_ANDI(_R0, dst_reg, imm));
1266 EMIT(PPC_RAW_AND_DOT(_R0, dst_reg, _R0));
1294 EMIT(PPC_RAW_LI(dst_reg_h, 0));