rev[0:msb] = rb[msb:0];
rt = ZE(rev[msb:0]);
-uint_xlen_t bmextrev(RA, RB, sh)
+uint_xlen_t bmrevi(RA, RB, sh)
{
int shamt = XLEN-1;
if (RA != 0) shamt = (GPR(RA) & (XLEN - 1));
shamt = (XLEN-1)-shamt; # shift other end
- bra = bitreverse(RB) # swap LSB-MSB
+ brb = bitreverse(GPR(RB)) # swap LSB-MSB
mask = (2<<sh)-1;
- return mask & (bra >> shamt);
+ return mask & (brb >> shamt);
+}
+
+uint_xlen_t bmrev(RA, RB, RC) {
+ return bmrevi(RA, RB, GPR(RC) & 0b111111);
}
```
-| 0.5|6.10|11.15|16.20|21.26| 27..30 |31| name |
-| -- | -- | --- | --- | --- | ------- |--| ------ |
-| NN | RT | RA | RB | sh | 1111 |Rc| bmrevi |
+| 0.5|6.10|11.15|16.20|21.26| 27..30 |31| name | Form |
+| -- | -- | --- | --- | --- | ------- |--| ------ | -------- |
+| NN | RT | RA | RB | sh | 1111 |Rc| bmrevi | MDS-Form |
+| 0.5|6.10|11.15|16.20|21.25| 26..30 |31| name | Form |
+| -- | -- | --- | --- | --- | ------- |--| ------ | -------- |
+| NN | RT | RA | RB | RC | 11110 |Rc| bmrev | VA2-Form |
# grevlut <a name="grevlut"> </a>