1 # Example demonstration instruction modified to SVP64 (better)
4 Background: <https://bugs.libre-soc.org/show_bug.cgi?id=1056#c56>
7 The idea here is to review a modified version of a Power ISA 3
8 instruction definition, to add SVP64 in a completely non-disruptive
11 The proposal is therefore to add a clear alternative "Operand namespace",
12 which already has precedent from EXT1xx-Prefixed instructions.
15 # SVP64-annotated addi instruction (prototype)
17 **Add Immediate** D-Form
22 Defined Word-instruction:
24 | 0 | 6 | 11 | 16 31 |
27 * pseudocode.RA <- `D-Form.RA`
28 * pseudocode.RT <- `D-Form.RT`
29 * pseudocode.SI <- `D-Form.SI`
31 **Prefixed Add Immediate** MLS:D-form
37 | 1 | 2 | 0 | // | R | // | si0 |
38 | 0 | 6 | 8 | 9 | 11 | 12 | 14 31 |
41 | 14 | RT | RA | si1 |
42 | 0 | 6 | 11 | 16 31 |
46 * pseudocode.RA <- `D-Form.RA`
47 * pseudocode.RT <- `D-Form.RT`
48 * pseudocode.SI <- `MLS.si0 || MLS.si1`
50 **Vectorized Add Immediate** SVP64-RM-1S1D/EXTRA3/Normal:D-form
56 | 9 | .. | Stuff | EXTRA | MODEBITS |
57 | 0 | 6 | 8 | 17 26 | 27 31 |
58 Defined Word-instruction:
60 | 0 | 6 | 11 | 16 31 |
65 * pseudocode.RA <- `SVP64_EXTRA3_DECODE(D-Form.RA, SVP64.RM.EXTRA[0:2])`
66 * pseudocode.RT <- `SVP64_EXTRA3_DECODE(D-Form.RT, SVP64.RM.EXTRA[3:5])`
67 * pseudocode.SI <- `D-Form.SI`
73 RT <- (RA|0) + EXTS64(SI)
75 RT <- (RA|0) + EXTS64(si0||si1)
77 RT <- CIA + EXTS64(si0||si1)
81 Special Registers Altered: