Lines Matching defs:imm11_0
236 static inline u32 rv_i_insn(u16 imm11_0, u8 rs1, u8 funct3, u8 rd, u8 opcode)
238 return (imm11_0 << 20) | (rs1 << 15) | (funct3 << 12) | (rd << 7) |
242 static inline u32 rv_s_insn(u16 imm11_0, u8 rs2, u8 rs1, u8 funct3, u8 opcode)
244 u8 imm11_5 = imm11_0 >> 5, imm4_0 = imm11_0 & 0x1f;
337 static inline u32 rv_addi(u8 rd, u8 rs1, u16 imm11_0)
339 return rv_i_insn(imm11_0, rs1, 0, rd, 0x13);
342 static inline u32 rv_andi(u8 rd, u8 rs1, u16 imm11_0)
344 return rv_i_insn(imm11_0, rs1, 7, rd, 0x13);
347 static inline u32 rv_ori(u8 rd, u8 rs1, u16 imm11_0)
349 return rv_i_insn(imm11_0, rs1, 6, rd, 0x13);
352 static inline u32 rv_xori(u8 rd, u8 rs1, u16 imm11_0)
354 return rv_i_insn(imm11_0, rs1, 4, rd, 0x13);
357 static inline u32 rv_slli(u8 rd, u8 rs1, u16 imm11_0)
359 return rv_i_insn(imm11_0, rs1, 1, rd, 0x13);
362 static inline u32 rv_srli(u8 rd, u8 rs1, u16 imm11_0)
364 return rv_i_insn(imm11_0, rs1, 5, rd, 0x13);
367 static inline u32 rv_srai(u8 rd, u8 rs1, u16 imm11_0)
369 return rv_i_insn(0x400 | imm11_0, rs1, 5, rd, 0x13);
462 static inline u32 rv_jalr(u8 rd, u8 rs1, u16 imm11_0)
464 return rv_i_insn(imm11_0, rs1, 0, rd, 0x67);
517 static inline u32 rv_lb(u8 rd, u16 imm11_0, u8 rs1)
519 return rv_i_insn(imm11_0, rs1, 0, rd, 0x03);
522 static inline u32 rv_lh(u8 rd, u16 imm11_0, u8 rs1)
524 return rv_i_insn(imm11_0, rs1, 1, rd, 0x03);
527 static inline u32 rv_lw(u8 rd, u16 imm11_0, u8 rs1)
529 return rv_i_insn(imm11_0, rs1, 2, rd, 0x03);
532 static inline u32 rv_lbu(u8 rd, u16 imm11_0, u8 rs1)
534 return rv_i_insn(imm11_0, rs1, 4, rd, 0x03);
537 static inline u32 rv_lhu(u8 rd, u16 imm11_0, u8 rs1)
539 return rv_i_insn(imm11_0, rs1, 5, rd, 0x03);
542 static inline u32 rv_sb(u8 rs1, u16 imm11_0, u8 rs2)
544 return rv_s_insn(imm11_0, rs2, rs1, 0, 0x23);
547 static inline u32 rv_sh(u8 rs1, u16 imm11_0, u8 rs2)
549 return rv_s_insn(imm11_0, rs2, rs1, 1, 0x23);
552 static inline u32 rv_sw(u8 rs1, u16 imm11_0, u8 rs2)
554 return rv_s_insn(imm11_0, rs2, rs1, 2, 0x23);
594 u16 imm11_0 = pred << 4 | succ;
596 return rv_i_insn(imm11_0, 0, 0, 0, 0xf);
742 static inline u32 rv_addiw(u8 rd, u8 rs1, u16 imm11_0)
744 return rv_i_insn(imm11_0, rs1, 0, rd, 0x1b);
747 static inline u32 rv_slliw(u8 rd, u8 rs1, u16 imm11_0)
749 return rv_i_insn(imm11_0, rs1, 1, rd, 0x1b);
752 static inline u32 rv_srliw(u8 rd, u8 rs1, u16 imm11_0)
754 return rv_i_insn(imm11_0, rs1, 5, rd, 0x1b);
757 static inline u32 rv_sraiw(u8 rd, u8 rs1, u16 imm11_0)
759 return rv_i_insn(0x400 | imm11_0, rs1, 5, rd, 0x1b);
812 static inline u32 rv_ld(u8 rd, u16 imm11_0, u8 rs1)
814 return rv_i_insn(imm11_0, rs1, 3, rd, 0x03);
817 static inline u32 rv_lwu(u8 rd, u16 imm11_0, u8 rs1)
819 return rv_i_insn(imm11_0, rs1, 6, rd, 0x03);
822 static inline u32 rv_sd(u8 rs1, u16 imm11_0, u8 rs2)
824 return rv_s_insn(imm11_0, rs2, rs1, 3, 0x23);