From: lkcl Date: Fri, 11 Dec 2020 23:29:45 +0000 (+0000) Subject: (no commit message) X-Git-Tag: convert-csv-opcode-to-binary~1398 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7d915a20aba5babb30cb7a700a450c628419b44e;p=libreriscv.git --- diff --git a/openpower/sv/sv/mv.swizzle.mdwn b/openpower/sv/sv/mv.swizzle.mdwn index 8124256c2..1343bc0e6 100644 --- a/openpower/sv/sv/mv.swizzle.mdwn +++ b/openpower/sv/sv/mv.swizzle.mdwn @@ -1,2 +1,28 @@ # mv.swizzle +# Format + +| 0..5 |6..10|11..15|16.20|21.....25|26.....30|31| name | +|------|-----|------|-----|---------|---------|--|---------| +| 19 | RT | RA | | XO[0:4] | XO[5:9] |Rc| XL-Form | +| 19 | RT | RA |imm | imm | Nn NNN |im| mv.swiz | + +also f.mv + +this gives an 11 bit immediate across bits 16 to 25 and bit 31. a permutation based encoding should allow the 12 bits to be covered + +* 3 bits X +* 3 bits Y +* 3 bits Z +* 3 bits W + +except that the options are: + +* 0b1NN index 0 thru 3 to place subelement in pos XYZW +* 0b000 to indicate "skip" +* 0b001 to indicate "constant 0" +* 0b010 to indicate "constant 1" (or 1.0) +* 0b011 is not needed. + +this "not needed" means the encoding is actually a lot less. the sequences involve expressing how many 0s and 1s are embedded in amongst the XYZWs which gets really interesting. +