14 changed files with 16 additions and 30 deletions
@ -1,2 +1,2 @@ |
|||
require_either_extension(EXT_ZBPBO, EXT_XZBT); |
|||
require_extension(EXT_ZBPBO); |
|||
WRITE_RD((RS1 & RS2) | (RS3 & ~RS2)); |
|||
|
|||
@ -1,11 +1,7 @@ |
|||
// RV32Zbb contains zext.h but not general pack
|
|||
require(((xlen == 32) && (insn.rs2() == 0) && p->extension_enabled(EXT_ZBB)) |
|||
|| p->extension_enabled(EXT_ZPN) |
|||
|| p->extension_enabled(EXT_ZBKB) |
|||
|| p->extension_enabled(EXT_XZBP) |
|||
|| p->extension_enabled(EXT_XZBE) |
|||
|| p->extension_enabled(EXT_XZBF) |
|||
|| ((xlen == 64) && p->extension_enabled(EXT_XZBM))); |
|||
|| p->extension_enabled(EXT_ZBKB)); |
|||
reg_t lo = zext_xlen(RS1 << (xlen/2)) >> (xlen/2); |
|||
reg_t hi = zext_xlen(RS2 << (xlen/2)); |
|||
WRITE_RD(sext_xlen(lo | hi)); |
|||
|
|||
@ -1,7 +1,4 @@ |
|||
require(p->extension_enabled(EXT_ZBKB) || |
|||
p->extension_enabled(EXT_XZBP) || |
|||
p->extension_enabled(EXT_XZBE) || |
|||
p->extension_enabled(EXT_XZBF)); |
|||
require_extension(EXT_ZBKB); |
|||
reg_t lo = zext_xlen(RS1 << (xlen-8)) >> (xlen-8); |
|||
reg_t hi = zext_xlen(RS2 << (xlen-8)) >> (xlen-16); |
|||
WRITE_RD(sext_xlen(lo | hi)); |
|||
|
|||
@ -1,6 +1,4 @@ |
|||
require(p->extension_enabled(EXT_ZPN) || |
|||
p->extension_enabled(EXT_XZBP) || |
|||
((xlen == 64) && p->extension_enabled(EXT_XZBM))); |
|||
require_extension(EXT_ZPN); |
|||
reg_t lo = zext_xlen(RS1) >> (xlen/2); |
|||
reg_t hi = zext_xlen(RS2) >> (xlen/2) << (xlen/2); |
|||
WRITE_RD(sext_xlen(lo | hi)); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_either_extension(EXT_ZBKX, EXT_XZBP); |
|||
require_extension(EXT_ZBKX); |
|||
WRITE_RD(sext_xlen(xperm(RS1, RS2, 2, xlen))); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_either_extension(EXT_ZBKX, EXT_XZBP); |
|||
require_extension(EXT_ZBKX); |
|||
WRITE_RD(sext_xlen(xperm(RS1, RS2, 3, xlen))); |
|||
|
|||
Loading…
Reference in new issue