Skip to content

Commit 01cf110

Browse files
committed
Xqci (Xqcia) extension: fix wrong mantissa bit selection for qc.norm, qc.normu and qc.normeu instructions
Signed-off-by: Albert Yosher <[email protected]>
1 parent 32dc0ce commit 01cf110

File tree

5 files changed

+17
-4
lines changed

5 files changed

+17
-4
lines changed

arch_overlay/qc_iu/ext/Xqci.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,8 +286,9 @@ versions:
286286
- Fix IDL code and description increasing shift to 6 bit for qc.extdpr and qc.extdprh instructions
287287
- Fix IDL code and description increasing shift to 6 bit for qc.extdupr and qc.extduprh instructions
288288
- Fix IDL code sign extension logic for qc.lieq instruction
289+
- Fix wrong mantissa bit selection in qc.norm, qc.normu and qc.normeu instructions
289290
implies:
290-
- { name: Xqcia, version: "0.5.0" }
291+
- { name: Xqcia, version: "0.6.0" }
291292
- { name: Xqciac, version: "0.3.0" }
292293
- { name: Xqcibi, version: "0.2.0" }
293294
- { name: Xqcibm, version: "0.7.0" }

arch_overlay/qc_iu/ext/Xqcia.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,18 @@ versions:
6767
- Fix typos in description of qc.shlsat and qc.shlusat instructions
6868
- Fix bug in qc.shlsat that caused wrong IDL code result
6969
- Fix clobbering of saturation results in [add|addu|sub]sat instructions
70+
- version: "0.6.0"
71+
state: frozen
72+
ratification_date: null
73+
contributors:
74+
- name: Albert Yosher
75+
company: Qualcomm Technologies, Inc.
76+
77+
- name: Derek Hower
78+
company: Qualcomm Technologies, Inc.
79+
80+
changes:
81+
- Fix wrong mantissa bit selection in qc.norm, qc.normu and qc.normeu instructions
7082
description: |
7183
The Xqcia extension includes eleven instructions to perform integer arithmetic.
7284

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ operation(): |
3535
XReg clo = (xlen() - 1) - $signed(highest_set_bit(~X[rs1]));
3636
XReg mnt = (X[rs1][31] == 1) ? (X[rs1] << (clo - 1)) : (X[rs1] << (clz - 1));
3737
XReg exp = (X[rs1][31] == 1) ? (-(clo - 1)) : (-(clz - 1));
38-
X[rd] = {mnt[23:0],exp[7:0]};
38+
X[rd] = {mnt[31:8],exp[7:0]};

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ operation(): |
3434
XReg clz = ((xlen() - 1) - $signed(highest_set_bit(X[rs1]))) & ~1;
3535
XReg mnt = (X[rs1] << (clz & ~1));
3636
XReg exp = ((-clz) & ~1);
37-
X[rd] = {mnt[23:0],exp[7:0]};
37+
X[rd] = {mnt[31:8],exp[7:0]};

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ operation(): |
3434
XReg clz = (xlen() - 1) - $signed(highest_set_bit(X[rs1]));
3535
XReg mnt = (X[rs1] << clz);
3636
XReg exp = (-clz);
37-
X[rd] = {mnt[23:0],exp[7:0]};
37+
X[rd] = {mnt[31:8],exp[7:0]};

0 commit comments

Comments
 (0)