From 183756e77e5cd3ac0c02fb85319d8914ecc81508 Mon Sep 17 00:00:00 2001 From: lkcl Date: Mon, 11 Jan 2021 18:21:55 +0000 Subject: [PATCH] --- openpower/sv/bitmanip.mdwn | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/openpower/sv/bitmanip.mdwn b/openpower/sv/bitmanip.mdwn index b2d8a926f..6a87fa24a 100644 --- a/openpower/sv/bitmanip.mdwn +++ b/openpower/sv/bitmanip.mdwn @@ -33,7 +33,7 @@ ops | 0.5|6.10|11.15|16.20| 21.22 | 23 | 24..30 |31| name | | -- | -- | --- | --- | ----- | -- | ------- |--| ---- | -| NN | RA | RB | RC | itype | 0 | 0000110 |Rc| bmops | +| NN | RA | RB | | | 0 | 0000110 |Rc| rsvd | | NN | RA | RB | RC | itype | 1 | 0000110 |Rc| xperm | | NN | RA | RB | RC | itype | 0 | 0100110 |Rc| minmax | | NN | RA | RB | | | 1 | 0100110 |Rc| rsvd | @@ -137,7 +137,7 @@ a 4 operand variant which becomes more along the lines of an FPGA: | 0.5|6.10|11.15|16.20|21.25| 26..30 |31| | -- | -- | --- | --- | --- | ------- |--| -| NN | RT | RA | RB | RC | mode 010 |Rc| +| NN | RT | RA | RB | RC | mode 1 |1 | for i in range(64): idx = RT[i] << 2 | RA[i] << 1 | RB[i] @@ -153,7 +153,7 @@ also, another possible variant involving swizzle and vec4: | 0.5|6.10|11.15| 16.23 |24.27 | 28.30 |31| | -- | -- | --- | ----- | ---- | ----- |--| -| NN | RT | RA | xyzw | mask | 010 |0 | +| NN | RT | RA | xyzw | mask | mode 1 |1 | for i in range(8): idx = RA.x[i] << 2 | RA.y[i] << 1 | RA.z[i] @@ -163,7 +163,7 @@ also, another possible variant involving swizzle and vec4: | 0.5|6.10|11.15| 16.23 |24.27 | 28.30 |31| | -- | -- | --- | ----- | ---- | ----- |--| -| NN | RT | RA | imm | mask | 010 |1 | +| NN | RT | RA | imm | mask | mode 1 |1 | for i in range(8): idx = RA.x[i] << 2 | RA.y[i] << 1 | RA.z[i] @@ -175,7 +175,7 @@ another mode selection would be CRs not Ints. | 0.5|6.8 | 9.11|12.14|15.17|18.20| 21..25| 26.29|30|31| | -- | -- | --- | --- | --- |-----| ----- | ---- |--|--| -| NN | BT | BA | BB | BC |im5-7| im0-4 | mask |1 |Rc| +| NN | BT | BA | BB | BC |im5-7| im0-4 | mask |1 |0 | for i in range(4): if not mask[i] continue @@ -188,6 +188,9 @@ another mode selection would be CRs not Ints. based on RV bitmanip singlebit set, instruction format similar to shift +| 0.5|6.10|11.15|16.20|21.25| 26..30 |31| +| -- | -- | --- | --- | --- | ------- |--| +| NN | RT | RA | RB | RC | mode 010 |Rc| ``` uint_xlen_t bmset(RA, RB, sh) -- 2.30.2