With the way that EXTRA fields are defined and applied to register fields,
future versions of SV may involve 256 or greater registers. Backwards binary compatibility may be achieved with a PCR bit (Program Compatibility Register). Further discussion is out of scope for this version of SVP64.
+--------
+
+\newpage{}
+
# Remapped Encoding (`RM[0:23]`)
To allow relatively easy remapping of which portions of the Prefix Opcode
| 10 | Vector | `CR0-CR112`/16 | BFA 0 | 0b000 |
| 11 | Vector | `CR8-CR120`/16 | BFA 1 | 0b000 |
+--------
+
+\newpage{}
+
# Normal SVP64 Modes, for Arithmetic and Logical Operations
see [[sv/cr_ops]].
For Branch modes, see [[sv/branches]].
-# Rounding, clamp and saturate
+## Rounding, clamp and saturate
-See [[av_opcodes]] for relevant opcodes and use-cases.
-
-To help ensure that audio quality is not compromised by overflow,
+To help ensure for example that audio quality is not compromised by overflow,
"saturation" is provided, as well as a way to detect when saturation
occurred if desired (Rc=1). When Rc=1 there will be a *vector* of CRs,
one CR per element in the result (Note: this is different from VSX which
Note that predication is still respected: predicate zeroing is slightly
different: elements that fail the CR test *or* are masked out are zero'd.
+--------
+
+\newpage{}
+
# SV Load and Store
**Rationale**
* LD/ST Immediate has no Saturated Pack/Unpack (Arithmetic Mode does)
* LD/ST Indexed has no Pack/Unpack (REMAP may be used instead)
-# Format and fields
+## Format and fields
Fields used in tables below:
j++;
```
-# Remapped LD/ST
+## Remapped LD/ST
In the [[sv/remap]] page the concept of "Remapping" is described.
Whilst it is expensive to set up (2 64-bit opcodes minimum) it provides
Structure Packing, at the vec2/vec3/vec4 granularity level. Beyond
that, REMAP will need to be used.
+--------
+
+\newpage{}
+
# Condition Register SVP64 Operations
Condition Register Fields are only 4 bits wide: this presents some
expected to be Micro-coded by most Hardware implementations.
-## SVP64 Branch Conditional behaviour
+--------
+
+\newpage{}
+
+# SVP64 Branch Conditional behaviour
Please note: although similar, SVP64 Branch instructions should be
considered completely separate and distinct from
# which is clearly impossible
if LK then LR <-iea CIA + 4
```
+
+[[!tag standards]]