Lines Matching defs:imm
134 /* Emit variable-length instructions for 32-bit imm */
135 static void emit_imm32(u8 rd, s32 imm, struct hppa_jit_context *ctx)
137 u32 lower = im11(imm);
140 if (OPTIMIZE_HPPA && relative_bits_ok(imm, 14)) {
141 emit(hppa_ldi(imm, rd), ctx);
144 if (OPTIMIZE_HPPA && lower == imm) {
148 emit(hppa_ldil(imm, rd), ctx);
159 /* Emit variable-length instructions for 64-bit imm */
160 static void emit_imm(u8 rd, s64 imm, u8 tmpreg, struct hppa_jit_context *ctx)
165 emit_imm32(rd, imm, ctx);
168 if (OPTIMIZE_HPPA && is_32b_int(imm))
172 upper32 = imm >> 32;
602 s32 imm = insn->imm;
610 if (imm == 1) {
654 emit_imm(HPPA_REG_T1, is64 ? (s64)(s32)imm : (u32)imm, HPPA_REG_T2, ctx);
665 emit_imm(HPPA_REG_T1, is64 ? (s64)(s32)imm : (u32)imm, HPPA_REG_T2, ctx);
676 emit_imm(HPPA_REG_T1, is64 ? (s64)(s32)imm : (u32)imm, HPPA_REG_T2, ctx);
727 /* dst = BSWAP##imm(dst) */
729 switch (imm) {
745 switch (imm) {
765 pr_err("bpf-jit: BPF_END imm %d invalid\n", imm);
770 /* dst = imm */
773 emit_imm(rd, imm, HPPA_REG_T2, ctx);
778 /* dst = dst OP imm */
781 if (relative_bits_ok(imm, 14)) {
782 emit(hppa_ldo(imm, rd, rd), ctx);
784 emit_imm(HPPA_REG_T1, imm, HPPA_REG_T2, ctx);
792 if (relative_bits_ok(-imm, 14)) {
793 emit(hppa_ldo(-imm, rd, rd), ctx);
795 emit_imm(HPPA_REG_T1, imm, HPPA_REG_T2, ctx);
803 emit_imm(HPPA_REG_T1, imm, HPPA_REG_T2, ctx);
810 emit_imm(HPPA_REG_T1, imm, HPPA_REG_T2, ctx);
817 emit_imm(HPPA_REG_T1, imm, HPPA_REG_T2, ctx);
824 if (imm != 0) {
825 emit_hppa64_shld(rd, imm, rd, ctx);
833 if (imm != 0) {
835 emit_hppa64_shrd(rd, imm, rd, false, ctx);
837 emit_hppa64_shrw(rd, imm, rd, false, ctx);
845 if (imm != 0) {
847 emit_hppa64_shrd(rd, imm, rd, true, ctx);
849 emit_hppa64_shrw(rd, imm, rd, true, ctx);
910 /* IF (dst COND imm) JUMP off */
933 if (imm) {
934 emit_imm(HPPA_REG_T1, imm, HPPA_REG_T2, ctx);
955 emit_imm(HPPA_REG_T1, imm, HPPA_REG_T2, ctx);
961 if (!is64 && imm < 0)
1002 u64 imm64 = (u64)insn1.imm << 32 | (u32)imm;
1066 /* ST: *(size *)(dst + off) = imm */
1078 emit_imm(HPPA_REG_T2, imm, HPPA_REG_T1, ctx);
1089 insn->imm);