Skip to content

Commit 30b07b1

Browse files
authored
Merge pull request #437 from riscv-software-src/xqci
Xqci 0.6
2 parents 6e05606 + 068a4fd commit 30b07b1

File tree

12 files changed

+139
-12
lines changed

12 files changed

+139
-12
lines changed

arch/ext/Zcd.yaml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# yaml-language-server: $schema=../../schemas/ext_schema.json
2+
3+
$schema: "ext_schema.json#"
4+
kind: extension
5+
name: Zcd
6+
long_name: Compressed instructions for double precision floating point
7+
description: |
8+
Zcd is the existing set of compressed double precision floating point loads and stores:
9+
`c.fld`, `c.fldsp`, `c.fsd`, `c.fsdsp`.
10+
11+
type: unprivileged
12+
company:
13+
name: RISC-V International
14+
url: https://riscv.org
15+
versions:
16+
- version: "1.0.0"
17+
state: ratified
18+
ratification_date: 2023-04
19+
repositories:
20+
- url: https://github.com/riscv/riscv-code-size-reduction
21+
branch: main
22+
contributors:
23+
- name: Tariq Kurd
24+
- name: Ibrahim Abu Kharmeh
25+
- name: Torbjørn Viem Ness
26+
- name: Matteo Perotti
27+
- name: Nidal Faour
28+
- name: Bill Traynor
29+
- name: Rafael Sene
30+
- name: Xinlong Wu
31+
- name: sinan
32+
- name: Jeremy Bennett
33+
- name: Heda Chen
34+
- name: Alasdair Armstrong
35+
- name: Graeme Smecher
36+
- name: Nicolas Brunie
37+
- name: Jiawei
38+
requires:
39+
allOf:
40+
- anyOf:
41+
- { name: Zca, version: "= 1.0.0" }
42+
- { name: C, version: "= 1.0.0" }
43+
- { name: D, version: "~> 2.2.0" }

cfgs/qc_iu/arch_overlay/ext/Xqci.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,40 @@ versions:
136136
requires:
137137
name: Zca
138138
version: ">= 1.0.0"
139+
- version: "0.6.0"
140+
state: frozen
141+
ratification_date: null
142+
contributors:
143+
- name: Albert Yosher
144+
company: Qualcomm Technologies, Inc.
145+
146+
- name: Derek Hower
147+
company: Qualcomm Technologies, Inc.
148+
149+
changes:
150+
- Fix encoding of qc.c.extu instruction
151+
- Fix encoding of qc.swmi instruction
152+
- Rename qc.slasat -> qc.shlsat
153+
- Rename qc.sllsat -> qc.shlusat
154+
implies:
155+
- [Xqcia, "0.4.0"]
156+
- [Xqciac, "0.2.0"]
157+
- [Xqcibi, "0.2.0"]
158+
- [Xqcibm, "0.4.0"]
159+
- [Xqcicli, "0.2.0"]
160+
- [Xqcicm, "0.2.0"]
161+
- [Xqcics, "0.2.0"]
162+
- [Xqcicsr, "0.2.0"]
163+
- [Xqciint, "0.2.0"]
164+
- [Xqcilb, "0.2.0"]
165+
- [Xqcili, "0.2.0"]
166+
- [Xqcilia, "0.2.0"]
167+
- [Xqcilo, "0.2.0"]
168+
- [Xqcilsm, "0.4.0"]
169+
- [Xqcisls, "0.2.0"]
170+
requires:
171+
name: Zca
172+
version: ">= 1.0.0"
139173
description: |
140174
The Xqci extension includes a set of instructions that improve RISC-V code density and
141175
performance in microontrollers. It fills several gaps:
@@ -431,3 +465,4 @@ doc_license:
431465
company:
432466
name: Qualcomm Technologies, Inc.
433467
url: https://qualcomm.com
468+
conflicts: [D]

cfgs/qc_iu/arch_overlay/ext/Xqcia.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,19 @@ versions:
4040
4141
changes:
4242
- Fix description and functionality of qc.wrapi instruction
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+
- Rename qc.slasat -> qc.shlsat
55+
- Rename qc.sllsat -> qc.shlusat
4356
description: |
4457
The Xqcia extension includes eleven instructions to perform integer arithmetic.
4558

cfgs/qc_iu/arch_overlay/ext/Xqciac.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ versions:
4747
description: |
4848
The Xqciac extension includes three instructions to accelerate common
4949
address calculations.
50-
50+
conflicts: [D]
5151
doc_license:
5252
name: Creative Commons Attribution 4.0 International License
5353
url: https://creativecommons.org/licenses/by/4.0/

cfgs/qc_iu/arch_overlay/ext/Xqcibm.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,19 @@ versions:
4343
changes:
4444
- Fix description and functionality of qc.c.extu instruction
4545
requires: { name: Zca, version: ">= 1.0.0" }
46+
- version: "0.4.0"
47+
state: frozen
48+
ratification_date: null
49+
contributors:
50+
- name: Albert Yosher
51+
company: Qualcomm Technologies, Inc.
52+
53+
- name: Derek Hower
54+
company: Qualcomm Technologies, Inc.
55+
56+
changes:
57+
- Fix encoding for qc.c.extu
58+
requires: { name: Zca, version: ">= 1.0.0" }
4659
description: |
4760
The Xqcibm extension includes thirty eight instructions that perform bit manipulation,
4861
include insertion and extraction.

cfgs/qc_iu/arch_overlay/ext/Xqcilsm.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,18 @@ versions:
4040
4141
changes:
4242
- Fix description of qc.swmi, qc.lwmi and qc.setwmi instructions
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 encoding of qc.swmi
4355
description: |
4456
The Xqcilsm extension includes six instructions that transfer multiple values
4557
between registers and memory.

cfgs/qc_iu/arch_overlay/inst/Xqci/qc.c.extu.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ encoding:
2222
not: [0, 1, 2, 3, 4]
2323
- name: rd
2424
location: 11-7
25+
not: 0
2526
access:
2627
s: always
2728
u: always

cfgs/qc_iu/arch_overlay/inst/Xqci/qc.c.muliadd.yaml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,14 @@ description: |
88
Increments `rd` by the multiplication of `rs1` and an unsigned immediate
99
Instruction encoded in CL instruction format.
1010
definedBy:
11-
anyOf:
12-
- Xqci
13-
- Xqciac
11+
allOf:
12+
- not:
13+
anyOf:
14+
- allOf: [C, D]
15+
- Zcd
16+
- anyOf:
17+
- Xqci
18+
- Xqciac
1419
base: 32
1520
encoding:
1621
match: 001-----------10

cfgs/qc_iu/arch_overlay/inst/Xqci/qc.c.mveqz.yaml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,14 @@ description: |
88
Move `rs1` to `rd` if `rd` == 0, keep `rd` value otherwise
99
Instruction encoded in CL instruction format.
1010
definedBy:
11-
anyOf:
12-
- Xqci
13-
- Xqcicm
11+
allOf:
12+
- anyOf:
13+
- Xqci
14+
- Xqcicm
15+
- not:
16+
anyOf:
17+
- allOf: [C, D]
18+
- Zcd
1419
base: 32
1520
encoding:
1621
match: 101011---00---10

cfgs/qc_iu/arch_overlay/inst/Xqci/qc.slasat.yaml renamed to cfgs/qc_iu/arch_overlay/inst/Xqci/qc.shlsat.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
$schema: inst_schema.json#
44
kind: instruction
5-
name: qc.slasat
6-
long_name: Saturating arithmetic left shift
5+
name: qc.shlsat
6+
long_name: Saturating signed left shift
77
description: |
88
Left shift `rs1` by the value of `rs2`, and saturate the signed result.
99
The number of words is in `length`.

0 commit comments

Comments
 (0)