From: Luke Kenneth Casson Leighton Date: Fri, 28 Jun 2019 08:56:49 +0000 (+0100) Subject: whitespace X-Git-Tag: convert-csv-opcode-to-binary~4365 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b73fa1fd2a0ec7f65d8b0c5956a30fce99124daa;p=libreriscv.git whitespace --- diff --git a/simple_v_extension/specification.mdwn b/simple_v_extension/specification.mdwn index b811c25ce..bb41ae81d 100644 --- a/simple_v_extension/specification.mdwn +++ b/simple_v_extension/specification.mdwn @@ -133,12 +133,15 @@ And likewise for M-Mode: * meSTATE The u/m/s CSRs are treated and handled exactly like their (x)epc -equivalents. On entry to or exit from a privilege level, the contents of its (x)eSTATE are swapped with STATE. +equivalents. On entry to or exit from a privilege level, the contents +of its (x)eSTATE are swapped with STATE. Thus for example, a User Mode trap will end up swapping STATE and ueSTATE (on both entry and exit), allowing User Mode traps to have their own Vectorisation Context set up, separated from and unaffected by normal -user applications. If an M Mode trap occurs in the middle of the U Mode trap, STATE is swapped with meSTATE, and restored on exit: the U Mode trap continues unaware that the M Mode trap even occurred. +user applications. If an M Mode trap occurs in the middle of the U Mode +trap, STATE is swapped with meSTATE, and restored on exit: the U Mode +trap continues unaware that the M Mode trap even occurred. Likewise, Supervisor Mode may perform context-switches, safe in the knowledge that its Vectorisation State is unaffected by User Mode. @@ -154,15 +157,13 @@ same pattern for other CSRs that have M-Mode and S-Mode "mirrors": * In U-Mode, accessing and changing of the S-Mode and U-Mode CSRs is prohibited. -An interesting side effect of SV STATE being -separate and distinct in S Mode -is that -Vectorised saving of an entire register file to the stack is a single -instruction (through accidental provision of LOAD-MULTI semantics). If the -SVPrefix P64-LD-type format is used, LOAD-MULTI may even be done with a -single standalone 64 bit opcode (P64 may set up SUBVL, VL and MVL from an -immediate field, to cover the full regfile). It can even be predicated, which opens up some very -interesting possibilities. +An interesting side effect of SV STATE being separate and distinct in S +Mode is that Vectorised saving of an entire register file to the stack +is a single instruction (through accidental provision of LOAD-MULTI +semantics). If the SVPrefix P64-LD-type format is used, LOAD-MULTI may +even be done with a single standalone 64 bit opcode (P64 may set up SUBVL, +VL and MVL from an immediate field, to cover the full regfile). It can +even be predicated, which opens up some very interesting possibilities. (x)EPCVBLK CSRs must be treated exactly like their corresponding (x)epc equivalents. See VBLOCK section for details.