Skip to content

Commit 77be10f

Browse files
committed
fix(Xqci): xqciv0p13 changes
Xqci/Xqcicsr - add missing code and description in qc.csrrwr instruction Signed-off-by: Albert Yosher <[email protected]>
1 parent 481700b commit 77be10f

File tree

3 files changed

+57
-6
lines changed

3 files changed

+57
-6
lines changed

arch_overlay/qc_iu/ext/Xqci.yaml

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -379,13 +379,13 @@ versions:
379379
- { name: Xqcicm, version: "0.2.0" }
380380
- { name: Xqcics, version: "0.2.0" }
381381
- { name: Xqcicsr, version: "0.3.0" }
382-
- { name: Xqciint, version: "0.8.0" }
382+
- { name: Xqciint, version: "0.9.0" }
383383
- { name: Xqciio, version: "0.1.0" }
384384
- { name: Xqcilb, version: "0.2.0" }
385385
- { name: Xqcili, version: "0.2.0" }
386386
- { name: Xqcilia, version: "0.2.0" }
387387
- { name: Xqcilo, version: "0.3.0" }
388-
- { name: Xqcilsm, version: "0.6.0" }
388+
- { name: Xqcilsm, version: "0.5.0" }
389389
- { name: Xqcisim, version: "0.2.0" }
390390
- { name: Xqcisls, version: "0.2.0" }
391391
- { name: Xqcisync, version: "0.3.0" }
@@ -421,7 +421,42 @@ versions:
421421
- { name: Xqcili, version: "0.2.0" }
422422
- { name: Xqcilia, version: "0.2.0" }
423423
- { name: Xqcilo, version: "0.3.0" }
424-
- { name: Xqcilsm, version: "0.5.0" }
424+
- { name: Xqcilsm, version: "0.6.0" }
425+
- { name: Xqcisim, version: "0.2.0" }
426+
- { name: Xqcisls, version: "0.2.0" }
427+
- { name: Xqcisync, version: "0.3.0" }
428+
requires:
429+
name: Zca
430+
version: ">= 1.0.0"
431+
- version: "0.13.0"
432+
state: frozen
433+
ratification_date: null
434+
contributors:
435+
- name: Albert Yosher
436+
company: Qualcomm Technologies, Inc.
437+
438+
- name: Derek Hower
439+
company: Qualcomm Technologies, Inc.
440+
441+
changes:
442+
- Fix version history of releases v0.11.0 and v0.12.0
443+
- Fix description and IDL code of qc.csrrwr instruction to allow just read CSR
444+
implies:
445+
- { name: Xqcia, version: "0.7.0" }
446+
- { name: Xqciac, version: "0.3.0" }
447+
- { name: Xqcibi, version: "0.2.0" }
448+
- { name: Xqcibm, version: "0.8.0" }
449+
- { name: Xqcicli, version: "0.3.0" }
450+
- { name: Xqcicm, version: "0.2.0" }
451+
- { name: Xqcics, version: "0.2.0" }
452+
- { name: Xqcicsr, version: "0.4.0" }
453+
- { name: Xqciint, version: "0.9.0" }
454+
- { name: Xqciio, version: "0.1.0" }
455+
- { name: Xqcilb, version: "0.2.0" }
456+
- { name: Xqcili, version: "0.2.0" }
457+
- { name: Xqcilia, version: "0.2.0" }
458+
- { name: Xqcilo, version: "0.3.0" }
459+
- { name: Xqcilsm, version: "0.6.0" }
425460
- { name: Xqcisim, version: "0.2.0" }
426461
- { name: Xqcisls, version: "0.2.0" }
427462
- { name: Xqcisync, version: "0.3.0" }

arch_overlay/qc_iu/ext/Xqcicsr.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,18 @@ versions:
4040
4141
changes:
4242
- Remove qc.flags CSR
43+
- version: "0.4.0"
44+
state: frozen
45+
ratification_date: null
46+
contributors:
47+
- name: Albert Yosher
48+
company: Qualcomm Technologies, Inc.
49+
50+
- name: Derek Hower
51+
company: Qualcomm Technologies, Inc.
52+
53+
changes:
54+
- Fix description and IDL code of qc.csrrwr instruction to allow just read CSR
4355
description: |
4456
The Xqcicsr extension contains two instructions to read/write CSR which index is in register and not immediate.
4557

arch_overlay/qc_iu/inst/Xqci/qc.csrrwr.yaml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ description: |
1212
The initial value in `rs1` is written to the CSR.
1313
If `rd`=`x0`, then the instruction shall not read the CSR and shall not
1414
cause any of the side effects that might occur on a CSR read.
15+
If `rs1`=`x0`, then the instruction shall not write to the CSR and shall not
16+
cause any of the side effects that might occur on a CSR write.
1517
Instruction encoded in R instruction format.
1618
definedBy:
1719
anyOf:
@@ -40,6 +42,8 @@ operation(): |
4042
if (rd != 0) {
4143
X[rd] = csr_sw_read(csr);
4244
}
43-
# writes the value in X[rs1] to the CSR,
44-
# performing any WARL transformations first
45-
csr_sw_write(csr, X[rs1]);
45+
if (rs1 != 0) {
46+
# writes the value in X[rs1] to the CSR,
47+
# performing any WARL transformations first
48+
csr_sw_write(csr, X[rs1]);
49+
}

0 commit comments

Comments
 (0)