Lines Matching defs:imm

141 static void emit_imm(const s8 rd, s32 imm, struct hppa_jit_context *ctx)
143 u32 lower = im11(imm);
146 if (OPTIMIZE_HPPA && relative_bits_ok(imm, 14)) {
147 emit(hppa_ldi(imm, rd), ctx);
150 emit(hppa_ldil(imm, rd), ctx);
156 static void emit_imm32(const s8 *rd, s32 imm, struct hppa_jit_context *ctx)
160 emit_imm(lo(rd), imm, ctx);
164 if (imm >= 0)
421 static void emit_alu_i64(const s8 *dst, s32 imm,
432 /* dst = dst OP imm */
435 emit_imm32(rd, imm, ctx);
438 emit_imm(HPPA_REG_T0, imm, ctx);
440 if (imm >= 0)
444 emit_imm(HPPA_REG_T0, imm, ctx);
446 if (imm < 0)
450 emit_imm(HPPA_REG_T0, imm, ctx);
452 if (imm < 0) {
458 if (imm == 0)
460 if (imm > 32) {
461 imm -= 32;
462 emit(hppa_zdep(lo(rd), imm, imm, hi(rd)), ctx);
464 } else if (imm == 32) {
468 emit(hppa_shd(hi(rd), lo(rd), 32 - imm, hi(rd)), ctx);
469 emit(hppa_zdep(lo(rd), imm, imm, lo(rd)), ctx);
473 if (imm == 0)
475 if (imm > 32) {
476 imm -= 32;
477 emit(hppa_shr(hi(rd), imm, lo(rd)), ctx);
479 } else if (imm == 32) {
483 emit(hppa_shrpw(hi(rd), lo(rd), imm, lo(rd)), ctx);
484 emit(hppa_shr(hi(rd), imm, hi(rd)), ctx);
488 if (imm == 0)
490 if (imm > 32) {
491 imm -= 32;
492 emit(hppa_extrws(hi(rd), 31 - imm, imm, lo(rd)), ctx);
494 } else if (imm == 32) {
498 emit(hppa_shrpw(hi(rd), lo(rd), imm, lo(rd)), ctx);
499 emit(hppa_extrws(hi(rd), 31 - imm, imm, hi(rd)), ctx);
509 static void emit_alu_i32(const s8 *dst, s32 imm,
520 /* dst = dst OP imm */
523 emit_imm(lo(rd), imm, ctx);
526 emit_imm(HPPA_REG_T0, imm, ctx);
530 emit_imm(HPPA_REG_T0, imm, ctx);
534 emit_imm(HPPA_REG_T0, imm, ctx);
538 emit_imm(HPPA_REG_T0, imm, ctx);
542 emit_imm(HPPA_REG_T0, imm, ctx);
546 if (imm != 0)
547 emit(hppa_zdep(lo(rd), imm, imm, lo(rd)), ctx);
550 if (imm != 0)
551 emit(hppa_shr(lo(rd), imm, lo(rd)), ctx);
554 if (imm != 0)
555 emit(hppa_extrws(lo(rd), 31 - imm, imm, lo(rd)), ctx);
1072 /* ST: *(size *)(dst + off) = imm */
1124 s32 imm = insn->imm;
1163 emit_imm32(tmp2, imm, ctx);
1181 emit_alu_i64(dst, imm, ctx, BPF_OP(code));
1185 if (imm == 1) {
1211 emit_imm32(tmp2, imm, ctx);
1217 /* dst = dst OP imm */
1230 emit_alu_i32(dst, imm, ctx, BPF_OP(code));
1242 /* dst = BSWAP##imm(dst) */
1247 switch (imm) {
1261 pr_err("bpf-jit: BPF_END imm %d invalid\n", imm);
1273 switch (imm) {
1291 pr_err("bpf-jit: BPF_END imm %d invalid\n", imm);
1323 /* IF (dst COND imm) JUMP off */
1381 emit_imm32(tmp2, imm, ctx);
1404 u32 upper = insn1.imm;
1405 u32 lower = imm;
1432 /* ST: *(size *)(dst + off) = imm */
1443 emit_imm32(tmp2, imm, ctx);
1456 insn->imm);