Lines Matching full:emit
76 emit(hppa_copy(rs, rd), ctx); in emit_hppa_copy()
89 emit(hppa_t10_insn(0x3c, target, src, 0, c, pos & 0x1f, len & 0x1f), ctx); in emit_hppa64_depd()
106 emit(hppa_t10_insn(0x36, src, target, 0, c, pos & 0x1f, len & 0x1f), ctx); in emit_hppa64_extrd()
116 emit(hppa_t10_insn(0x34, src, target, 0, c, pos, len), ctx); in emit_hppa64_extrw()
134 /* Emit variable-length instructions for 32-bit imm */
141 emit(hppa_ldi(imm, rd), ctx); in emit_imm32()
145 emit(hppa_ldo(lower, HPPA_REG_ZERO, rd), ctx); in emit_imm32()
148 emit(hppa_ldil(imm, rd), ctx); in emit_imm32()
151 emit(hppa_ldo(lower, rd, rd), ctx); in emit_imm32()
159 /* Emit variable-length instructions for 64-bit imm */
189 emit(hppa64_bl_long(paoff - HPPA_BRANCH_DISPLACEMENT), ctx); in emit_jump()
191 emit(hppa_nop(), ctx); in emit_jump()
200 emit(hppa_ldil(addr, HPPA_REG_R31), ctx); in emit_jump()
201 emit(hppa_be_l(im11(addr) >> 2, HPPA_REG_R31, NOP_NEXT_INSTR), ctx); in emit_jump()
216 emit(hppa_ldo(1 * HPPA_INSN_SIZE, HPPA_REG_T0, HPPA_REG_T0), ctx); in __build_epilogue()
217 emit(hppa_bv(HPPA_REG_ZERO, HPPA_REG_T0, EXEC_NEXT_INSTR), ctx); in __build_epilogue()
219 emit(hppa_copy(HPPA_REG_TCC, HPPA_REG_TCC_IN_INIT), ctx); in __build_epilogue()
226 emit(EXIT_PTR_LOAD(HPPA_REG_RP), ctx); in __build_epilogue()
227 emit(EXIT_PTR_JUMP(HPPA_REG_RP, NOP_NEXT_INSTR), ctx); in __build_epilogue()
236 emit(hppa64_ldd_im16(-REG_SIZE * i, HPPA_REG_SP, HPPA_R(i)), ctx); in __build_epilogue()
240 emit(hppa64_ldd_im16(-2*REG_SIZE, HPPA_REG_SP, HPPA_REG_RP), ctx); in __build_epilogue()
241 emit(hppa_bv(HPPA_REG_ZERO, HPPA_REG_RP, EXEC_NEXT_INSTR), ctx); in __build_epilogue()
243 emit(hppa64_ldd_im5(-REG_SIZE, HPPA_REG_SP, HPPA_REG_SP), ctx); in __build_epilogue()
245 emit(hppa_nop(), ctx); // XXX WARUM einer zu wenig ?? in __build_epilogue()
260 emit(hppa_and(rd, rs, HPPA_REG_T0), ctx); in emit_branch()
285 emit(hppa_beq(rd, rs, off), ctx); in emit_branch()
288 emit(hppa_bgtu(rd, rs, off), ctx); in emit_branch()
291 emit(hppa_bltu(rd, rs, off), ctx); in emit_branch()
294 emit(hppa_bgeu(rd, rs, off), ctx); in emit_branch()
297 emit(hppa_bleu(rd, rs, off), ctx); in emit_branch()
300 emit(hppa_bne(rd, rs, off), ctx); in emit_branch()
303 emit(hppa_bgt(rd, rs, off), ctx); in emit_branch()
306 emit(hppa_blt(rd, rs, off), ctx); in emit_branch()
309 emit(hppa_bge(rd, rs, off), ctx); in emit_branch()
312 emit(hppa_ble(rd, rs, off), ctx); in emit_branch()
331 emit(hppa_nop(), ctx); in emit_branch()
332 emit(hppa_nop(), ctx); in emit_branch()
359 emit(EXIT_PTR_LOAD(HPPA_REG_RP), ctx); in emit_bpf_tail_call()
364 emit(hppa_ldw(off, arr_reg, HPPA_REG_T1), ctx); in emit_bpf_tail_call()
370 emit(hppa_bltu(idx_reg, HPPA_REG_T1, 2 - HPPA_BRANCH_DISPLACEMENT), ctx); in emit_bpf_tail_call()
371 emit(EXIT_PTR_JUMP(HPPA_REG_RP, NOP_NEXT_INSTR), ctx); in emit_bpf_tail_call()
378 emit(hppa_ldo(-1, HPPA_REG_TCC, HPPA_REG_TCC), ctx); in emit_bpf_tail_call()
379 emit(hppa_bge(HPPA_REG_TCC, HPPA_REG_ZERO, 2 - HPPA_BRANCH_DISPLACEMENT), ctx); in emit_bpf_tail_call()
380 emit(EXIT_PTR_JUMP(HPPA_REG_RP, NOP_NEXT_INSTR), ctx); in emit_bpf_tail_call()
388 emit(hppa64_shladd(idx_reg, 3, arr_reg, HPPA_REG_T0), ctx); in emit_bpf_tail_call()
391 emit(hppa64_ldd_im16(off, HPPA_REG_T0, HPPA_REG_T0), ctx); in emit_bpf_tail_call()
392 emit(hppa_bne(HPPA_REG_T0, HPPA_REG_ZERO, 2 - HPPA_BRANCH_DISPLACEMENT), ctx); in emit_bpf_tail_call()
393 emit(EXIT_PTR_JUMP(HPPA_REG_RP, NOP_NEXT_INSTR), ctx); in emit_bpf_tail_call()
402 emit(hppa64_ldd_im16(off, HPPA_REG_T0, HPPA_REG_T0), ctx); in emit_bpf_tail_call()
467 emit(hppa_ldo(offset_sp, HPPA_REG_SP, HPPA_REG_SP), ctx); in emit_call()
478 emit(hppa_copy(HPPA_REG_TCC, HPPA_REG_TCC_SAVED), ctx); in emit_call()
487 emit(hppa_ldil(addr, HPPA_REG_R31), ctx); in emit_call()
488 emit(hppa_ldo(im11(addr), HPPA_REG_R31, HPPA_REG_R31), ctx); in emit_call()
489 emit(hppa64_ldd_im16(offsetof(struct elf64_fdesc, addr), in emit_call()
491 emit(hppa64_bve_l_rp(HPPA_REG_RP), ctx); in emit_call()
492 emit(hppa64_ldd_im16(offsetof(struct elf64_fdesc, gp), in emit_call()
497 emit(hppa_copy(HPPA_REG_TCC_SAVED, HPPA_REG_TCC), ctx); in emit_call()
499 emit(hppa_ldo(-offset_sp, HPPA_REG_SP, HPPA_REG_SP), ctx); in emit_call()
521 emit(hppa_copy(HPPA_REG_RET0, HPPA_REG_TCC_SAVED), ctx); in emit_call_libgcc_ll()
525 emit(hppa_ldo(FRAME_SIZE, HPPA_REG_SP, HPPA_REG_SP), ctx); in emit_call_libgcc_ll()
530 emit(hppa64_ldd_im16(offsetof(struct elf64_fdesc, addr), in emit_call_libgcc_ll()
539 emit(hppa_beq(HPPA_REG_ARG1, HPPA_REG_ZERO, 2 - HPPA_BRANCH_DISPLACEMENT), ctx); in emit_call_libgcc_ll()
541 emit(hppa64_bve_l_rp(HPPA_REG_RP), ctx); in emit_call_libgcc_ll()
542 emit(hppa64_ldd_im16(offsetof(struct elf64_fdesc, gp), in emit_call_libgcc_ll()
545 emit(hppa_ldo(-FRAME_SIZE, HPPA_REG_SP, HPPA_REG_SP), ctx); in emit_call_libgcc_ll()
551 emit(hppa_copy(HPPA_REG_TCC_SAVED, HPPA_REG_RET0), ctx); in emit_call_libgcc_ll()
566 emit(hppa_addil(off, rd), ctx); in emit_store()
572 emit(hppa_stb(rs, off, dstreg), ctx); in emit_store()
575 emit(hppa_sth(rs, off, dstreg), ctx); in emit_store()
578 emit(hppa_stw(rs, off, dstreg), ctx); in emit_store()
582 emit(hppa_ldo(off, dstreg, HPPA_REG_R1), ctx); in emit_store()
583 emit(hppa64_std_im5(rs, 0, HPPA_REG_R1), ctx); in emit_store()
585 emit(hppa64_std_im5(rs, off, dstreg), ctx); in emit_store()
587 emit(hppa64_std_im16(rs, off, dstreg), ctx); in emit_store()
624 emit(hppa_add(rd, rs, rd), ctx); in bpf_jit_emit_insn()
630 emit(hppa_sub(rd, rs, rd), ctx); in bpf_jit_emit_insn()
636 emit(hppa_and(rd, rs, rd), ctx); in bpf_jit_emit_insn()
642 emit(hppa_or(rd, rs, rd), ctx); in bpf_jit_emit_insn()
648 emit(hppa_xor(rd, rs, rd), ctx); in bpf_jit_emit_insn()
689 emit(hppa64_mtsarcm(HPPA_REG_T0), ctx); in bpf_jit_emit_insn()
691 emit(hppa64_depdz_sar(rd, rd), ctx); in bpf_jit_emit_insn()
693 emit(hppa_depwz_sar(rd, rd), ctx); in bpf_jit_emit_insn()
699 emit(hppa_mtsar(rs), ctx); in bpf_jit_emit_insn()
701 emit(hppa64_shrpd_sar(rd, rd), ctx); in bpf_jit_emit_insn()
703 emit(hppa_shrpw_sar(rd, rd), ctx); in bpf_jit_emit_insn()
710 emit(hppa64_mtsarcm(HPPA_REG_T0), ctx); in bpf_jit_emit_insn()
712 emit(hppa_extrd_sar(rd, rd, 1), ctx); in bpf_jit_emit_insn()
714 emit(hppa_extrws_sar(rd, rd), ctx); in bpf_jit_emit_insn()
722 emit(hppa_sub(HPPA_REG_ZERO, rd, rd), ctx); in bpf_jit_emit_insn()
747 emit(hppa_extru(rd, 31 - 8, 8, HPPA_REG_T1), ctx); in bpf_jit_emit_insn()
748 emit(hppa_depwz(rd, 23, 8, HPPA_REG_T1), ctx); in bpf_jit_emit_insn()
749 emit(hppa_extru(HPPA_REG_T1, 31, 16, rd), ctx); in bpf_jit_emit_insn()
753 emit(hppa_shrpw(rd, rd, 16, HPPA_REG_T1), ctx); in bpf_jit_emit_insn()
755 emit(hppa_shrpw(rd, HPPA_REG_T1, 8, HPPA_REG_T1), ctx); in bpf_jit_emit_insn()
759 emit(hppa64_permh_3210(rd, HPPA_REG_T1), ctx); in bpf_jit_emit_insn()
760 emit(hppa64_hshl(HPPA_REG_T1, 8, HPPA_REG_T2), ctx); in bpf_jit_emit_insn()
761 emit(hppa64_hshr_u(HPPA_REG_T1, 8, HPPA_REG_T1), ctx); in bpf_jit_emit_insn()
762 emit(hppa_or(HPPA_REG_T2, HPPA_REG_T1, rd), ctx); in bpf_jit_emit_insn()
782 emit(hppa_ldo(imm, rd, rd), ctx); in bpf_jit_emit_insn()
785 emit(hppa_add(rd, HPPA_REG_T1, rd), ctx); in bpf_jit_emit_insn()
793 emit(hppa_ldo(-imm, rd, rd), ctx); in bpf_jit_emit_insn()
796 emit(hppa_sub(rd, HPPA_REG_T1, rd), ctx); in bpf_jit_emit_insn()
804 emit(hppa_and(rd, HPPA_REG_T1, rd), ctx); in bpf_jit_emit_insn()
811 emit(hppa_or(rd, HPPA_REG_T1, rd), ctx); in bpf_jit_emit_insn()
818 emit(hppa_xor(rd, HPPA_REG_T1, rd), ctx); in bpf_jit_emit_insn()
902 emit(hppa_and(rs, rd, HPPA_REG_T1), ctx); in bpf_jit_emit_insn()
956 emit(hppa_and(HPPA_REG_T1, rd, HPPA_REG_T1), ctx); in bpf_jit_emit_insn()
1030 emit(hppa_addil(off, rs), ctx); in bpf_jit_emit_insn()
1036 emit(hppa_ldb(off, srcreg, rd), ctx); in bpf_jit_emit_insn()
1041 emit(hppa_ldh(off, srcreg, rd), ctx); in bpf_jit_emit_insn()
1046 emit(hppa_ldw(off, srcreg, rd), ctx); in bpf_jit_emit_insn()
1052 emit(hppa_ldo(off, srcreg, HPPA_REG_R1), ctx); in bpf_jit_emit_insn()
1053 emit(hppa64_ldd_reg(HPPA_REG_ZERO, HPPA_REG_R1, rd), ctx); in bpf_jit_emit_insn()
1055 emit(hppa64_ldd_im5(off, srcreg, rd), ctx); in bpf_jit_emit_insn()
1057 emit(hppa64_ldd_im16(off, srcreg, rd), ctx); in bpf_jit_emit_insn()
1130 emit(hppa_ldi(MAX_TAIL_CALL_CNT, HPPA_REG_TCC_IN_INIT), ctx); in bpf_jit_build_prologue()
1135 emit(hppa_ldi(MAX_TAIL_CALL_CNT, HPPA_REG_R1), ctx); in bpf_jit_build_prologue()
1136 emit(hppa_beq(HPPA_REG_TCC_IN_INIT, HPPA_REG_R1, 6 - HPPA_BRANCH_DISPLACEMENT), ctx); in bpf_jit_build_prologue()
1137 emit(hppa64_bl_long(ctx->prologue_len - 3 - HPPA_BRANCH_DISPLACEMENT), ctx); in bpf_jit_build_prologue()
1141 emit(addr >> 32, ctx); in bpf_jit_build_prologue()
1142 emit(addr & 0xffffffff, ctx); in bpf_jit_build_prologue()
1146 emit(addr >> 32, ctx); in bpf_jit_build_prologue()
1147 emit(addr & 0xffffffff, ctx); in bpf_jit_build_prologue()
1151 emit(hppa_ldo(stack_adjust, HPPA_REG_SP, HPPA_REG_SP), ctx); in bpf_jit_build_prologue()
1152 emit(hppa64_std_im5 (HPPA_REG_R1, -REG_SIZE, HPPA_REG_SP), ctx); in bpf_jit_build_prologue()
1153 emit(hppa64_std_im16(HPPA_REG_RP, -2*REG_SIZE, HPPA_REG_SP), ctx); in bpf_jit_build_prologue()
1159 emit(hppa64_std_im16(HPPA_R(i), -REG_SIZE * i, HPPA_REG_SP), ctx); in bpf_jit_build_prologue()
1182 emit(hppa_ldi(MAX_TAIL_CALL_CNT, HPPA_REG_TCC), ctx); in bpf_jit_build_prologue()
1192 emit(EXIT_PTR_STORE(HPPA_REG_T2), ctx); in bpf_jit_build_prologue()
1197 emit(hppa_ldo(-FRAME_SIZE, HPPA_REG_SP, reg), ctx); in bpf_jit_build_prologue()