You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/zc.adoc
+20-20Lines changed: 20 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -272,7 +272,7 @@ The PUSH/POP assembly syntax uses several variables, the meaning of which are:
272
272
[#Zcmt]
273
273
=== Zcmt
274
274
275
-
Zcmt adds the table jump instructions and also adds the JVT CSR. The JVT CSR requires a
275
+
Zcmt adds the table jump instructions and also adds the jvt CSR. The jvt CSR requires a
276
276
state enable if Smstateen is implemented. See <<csrs-jvt>> for details.
277
277
278
278
This extension reuses some encodings from _c.fsdsp_. Therefore it is _incompatible_ with <<Zcd>>,
@@ -2356,9 +2356,9 @@ Table jump allows the linker to replace the following instruction sequences with
2356
2356
2357
2357
If a return address stack is implemented, then as _cm.jalt_ is equivalent to _jal ra_, it pushes to the stack.
2358
2358
2359
-
==== JVT
2359
+
==== jvt
2360
2360
2361
-
The base of the table is in the JVT CSR (see <<csrs-jvt>>), each table entry is XLEN bits.
2361
+
The base of the table is in the jvt CSR (see <<csrs-jvt>>), each table entry is XLEN bits.
2362
2362
2363
2363
If the same function is called with and without linking then it must have two entries in the table.
2364
2364
This is typically caused by the same function being called with and without tail calling.
@@ -2379,8 +2379,8 @@ if the tables have not been updated in memory since the last _fence.i_.
2379
2379
If an exception occurs on either instruction fetch, xEPC is set to the PC of the table jump instruction, xCAUSE is set as expected for the type of fault and xTVAL (if not set to zero) contains the fetch address which caused the fault.
2380
2380
2381
2381
<<<
2382
-
[#csrs-jvt,reftext="JVT CSR, table jump base vector and control register"]
2383
-
==== JVT CSR
2382
+
[#csrs-jvt,reftext="jvt CSR, table jump base vector and control register"]
2383
+
==== jvt CSR
2384
2384
2385
2385
Synopsis:
2386
2386
@@ -2416,24 +2416,24 @@ Format (RV64):
2416
2416
2417
2417
Description:
2418
2418
2419
-
The _JVT_ register is an XLEN-bit *WARL* read/write register that holds the jump table configuration, consisting of the jump table base address (BASE) and the jump table mode (MODE).
2419
+
The _jvt_ register is an XLEN-bit *WARL* read/write register that holds the jump table configuration, consisting of the jump table base address (BASE) and the jump table mode (MODE).
2420
2420
2421
-
If <<Zcmt>> is implemented then _JVT_ must also be implemented, but can contain a read-only value. If _JVT_ is writable, the set of values the register may hold can vary by implementation. The value in the BASE field must always be aligned on a 64-byte boundary.
2421
+
If <<Zcmt>> is implemented then _jvt_ must also be implemented, but can contain a read-only value. If _jvt_ is writable, the set of values the register may hold can vary by implementation. The value in the BASE field must always be aligned on a 64-byte boundary.
2422
2422
2423
-
_JVT.base_ is a virtual address, whenever virtual memory is enabled.
2423
+
_jvt.base_ is a virtual address, whenever virtual memory is enabled.
2424
2424
2425
-
The memory pointed to by _JVT.base_ is treated as instruction memory for the purpose of executing table jump instructions, implying execute access permission.
2425
+
The memory pointed to by _jvt.base_ is treated as instruction memory for the purpose of executing table jump instructions, implying execute access permission.
_JVT.mode_ is a *WARL* field, so can only be programmed to modes which are implemented. Therefore the discovery mechanism is to
2436
+
_jvt.mode_ is a *WARL* field, so can only be programmed to modes which are implemented. Therefore the discovery mechanism is to
2437
2437
attempt to program different modes and read back the values to see which are available. Jump table mode _must_ be implemented.
2438
2438
2439
2439
[NOTE]
@@ -2443,11 +2443,11 @@ in future the RISC-V Unified Discovery method will report the available modes.
2443
2443
2444
2444
Architectural State:
2445
2445
2446
-
_JVT_ adds architectural state to the system software context (such as an OS process), therefore must be saved/restored on context switches.
2446
+
_jvt_ CSR adds architectural state to the system software context (such as an OS process), therefore must be saved/restored on context switches.
2447
2447
2448
2448
State Enable:
2449
2449
2450
-
If the Smstateen extension is implemented, then bit 2 in _mstateen0_, _sstateen0_, and _hstateen0_ is implemented. If bit 2 of a controlling _stateen0_ CSR is zero, then access to the _JVT_ CSR and execution of a _cm.jalt_ or _cm.jt_ instruction by a lower privilege level results in an Illegal Instruction trap (or, if appropriate, a Virtual Instruction trap).
2450
+
If the Smstateen extension is implemented, then bit 2 in _mstateen0_, _sstateen0_, and _hstateen0_ is implemented. If bit 2 of a controlling _stateen0_ CSR is zero, then access to the _jvt_ CSR and execution of a _cm.jalt_ or _cm.jt_ instruction by a lower privilege level results in an Illegal Instruction trap (or, if appropriate, a Virtual Instruction trap).
2451
2451
2452
2452
<<<
2453
2453
[#insns-cm_jt,reftext="Jump via table"]
@@ -2480,7 +2480,7 @@ For this encoding to decode as _cm.jt_, _index<32_, otherwise it decodes as _cm.
2480
2480
2481
2481
[NOTE]
2482
2482
====
2483
-
If JVT.mode = 0 (Jump Table Mode) then _cm.jt_ behaves as specified here. If JVT.mode is a reserved value, then _cm.jt_ is also reserved. In the future other defined values of JVT.mode may change the behaviour of _cm.jt_.
2483
+
If jvt.mode = 0 (Jump Table Mode) then _cm.jt_ behaves as specified here. If jvt.mode is a reserved value, then _cm.jt_ is also reserved. In the future other defined values of jvt.mode may change the behaviour of _cm.jt_.
@@ -2559,7 +2559,7 @@ For this encoding to decode as _cm.jalt_, _index>=32_, otherwise it decodes as _
2559
2559
2560
2560
[NOTE]
2561
2561
====
2562
-
If JVT.mode = 0 (Jump Table Mode) then _cm.jalt_ behaves as specified here. If JVT.mode is a reserved value, then _cm.jalt_ is also reserved. In the future other defined values of JVT.mode may change the behaviour of _cm.jalt_.
2562
+
If jvt.mode = 0 (Jump Table Mode) then _cm.jalt_ behaves as specified here. If jvt.mode is a reserved value, then _cm.jalt_ is also reserved. In the future other defined values of jvt.mode may change the behaviour of _cm.jalt_.
0 commit comments