Lines Matching defs:imm

266 	u32 imm;
268 imm = (imm20_1 & 0x80000) | ((imm20_1 & 0x3ff) << 9) |
271 return (imm << 12) | (rd << 7) | opcode;
291 u32 imm;
293 imm = ((imm6 & 0x20) << 7) | ((imm6 & 0x1f) << 2);
294 return (funct3 << 13) | (rd << 7) | op | imm;
329 u32 imm;
331 imm = ((imm6 & 0x20) << 7) | ((imm6 & 0x1f) << 2);
332 return (funct3 << 13) | (funct2 << 10) | ((rd & 0x7) << 7) | op | imm;
608 u32 imm;
610 imm = ((imm10 & 0x30) << 2) | ((imm10 & 0x3c0) >> 4) |
612 return rv_ciw_insn(0x0, imm, rd, 0x0);
645 u32 imm;
647 imm = ((imm10 & 0x200) >> 4) | (imm10 & 0x10) | ((imm10 & 0x40) >> 3) |
649 return rv_ci_insn(0x3, imm, RV_REG_SP, 0x1);
699 u32 imm;
701 imm = ((imm8 & 0xc0) >> 6) | (imm8 & 0x3c);
702 return rv_ci_insn(0x2, imm, rd, 0x2);
727 u32 imm;
729 imm = (imm8 & 0x3c) | ((imm8 & 0xc0) >> 6);
730 return rv_css_insn(0x6, imm, rs2, 0x2);
894 u32 imm;
896 imm = ((imm9 & 0x1c0) >> 6) | (imm9 & 0x38);
897 return rv_ci_insn(0x3, imm, rd, 0x2);
902 u32 imm;
904 imm = (imm9 & 0x38) | ((imm9 & 0x1c0) >> 6);
905 return rv_css_insn(0x7, imm, rs2, 0x2);
912 static inline void emit_jalr(u8 rd, u8 rs, s32 imm, struct rv_jit_context *ctx)
914 if (rvc_enabled() && rd == RV_REG_RA && rs && !imm)
916 else if (rvc_enabled() && !rd && rs && !imm)
919 emit(rv_jalr(rd, rs, imm), ctx);
938 static inline void emit_addi(u8 rd, u8 rs, s32 imm, struct rv_jit_context *ctx)
940 if (rvc_enabled() && rd == RV_REG_SP && rd == rs && is_10b_int(imm) && imm && !(imm & 0xf))
941 emitc(rvc_addi16sp(imm), ctx);
942 else if (rvc_enabled() && is_creg(rd) && rs == RV_REG_SP && is_10b_uint(imm) &&
943 !(imm & 0x3) && imm)
944 emitc(rvc_addi4spn(rd, imm), ctx);
945 else if (rvc_enabled() && rd && rd == rs && imm && is_6b_int(imm))
946 emitc(rvc_addi(rd, imm), ctx);
948 emit(rv_addi(rd, rs, imm), ctx);
951 static inline void emit_li(u8 rd, s32 imm, struct rv_jit_context *ctx)
953 if (rvc_enabled() && rd && is_6b_int(imm))
954 emitc(rvc_li(rd, imm), ctx);
956 emit(rv_addi(rd, RV_REG_ZERO, imm), ctx);
959 static inline void emit_lui(u8 rd, s32 imm, struct rv_jit_context *ctx)
961 if (rvc_enabled() && rd && rd != RV_REG_SP && is_6b_int(imm) && imm)
962 emitc(rvc_lui(rd, imm), ctx);
964 emit(rv_lui(rd, imm), ctx);
967 static inline void emit_slli(u8 rd, u8 rs, s32 imm, struct rv_jit_context *ctx)
969 if (rvc_enabled() && rd && rd == rs && imm && (u32)imm < __riscv_xlen)
970 emitc(rvc_slli(rd, imm), ctx);
972 emit(rv_slli(rd, rs, imm), ctx);
975 static inline void emit_andi(u8 rd, u8 rs, s32 imm, struct rv_jit_context *ctx)
977 if (rvc_enabled() && is_creg(rd) && rd == rs && is_6b_int(imm))
978 emitc(rvc_andi(rd, imm), ctx);
980 emit(rv_andi(rd, rs, imm), ctx);
983 static inline void emit_srli(u8 rd, u8 rs, s32 imm, struct rv_jit_context *ctx)
985 if (rvc_enabled() && is_creg(rd) && rd == rs && imm && (u32)imm < __riscv_xlen)
986 emitc(rvc_srli(rd, imm), ctx);
988 emit(rv_srli(rd, rs, imm), ctx);
991 static inline void emit_srai(u8 rd, u8 rs, s32 imm, struct rv_jit_context *ctx)
993 if (rvc_enabled() && is_creg(rd) && rd == rs && imm && (u32)imm < __riscv_xlen)
994 emitc(rvc_srai(rd, imm), ctx);
996 emit(rv_srai(rd, rs, imm), ctx);
1054 static inline void emit_addiw(u8 rd, u8 rs, s32 imm, struct rv_jit_context *ctx)
1056 if (rvc_enabled() && rd && rd == rs && is_6b_int(imm))
1057 emitc(rvc_addiw(rd, imm), ctx);
1059 emit(rv_addiw(rd, rs, imm), ctx);