(no commit message)
authorlkcl <lkcl@web>
Mon, 11 Jan 2021 18:21:55 +0000 (18:21 +0000)
committerIkiWiki <ikiwiki.info>
Mon, 11 Jan 2021 18:21:55 +0000 (18:21 +0000)
openpower/sv/bitmanip.mdwn

index b2d8a926fc286370176ffcfba09919a41b3ba5a6..6a87fa24a56af509fd58a4dd6debc1cefcffc87d 100644 (file)
@@ -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 ||
 
     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)