Skip to content

Commit 21fd4f1

Browse files
committed
Add support for Zhinxmin extension
1 parent e72c501 commit 21fd4f1

File tree

4 files changed

+9
-2
lines changed

4 files changed

+9
-2
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ Supported RISC-V ISA features
107107
- F and D extensions for single and double-precision floating-point, v2.2
108108
- Zfh and Zfhmin extensions for half-precision floating-point, v1.0
109109
- Zfa extension for additional floating-point instructions, v1.0
110-
- Zfinx, Zdinx, and Zhinx extensions for floating-point in integer registers, v1.0
110+
- Zfinx, Zdinx, Zhinx, and Zhinxmin extensions for floating-point in integer registers, v1.0
111111
- C extension for compressed instructions, v2.0
112112
- Zca, Zcf, Zcd, and Zcb extensions for code size reduction, v1.0
113113
- Zcmop extension for compressed May-Be-Operations, v1.0

config/default.json

+3
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,9 @@
164164
"Zhinx" : {
165165
"supported" : false
166166
},
167+
"Zhinxmin" : {
168+
"supported" : false
169+
},
167170
"Zvbb" : {
168171
"supported" : true
169172
},

model/riscv_extensions.sail

+3
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,9 @@ function clause hartSupports(Ext_Zksh) = config extensions.Zksh.supported
169169
// Floating-Point in Integer Registers (half precision)
170170
enum clause extension = Ext_Zhinx
171171
function clause hartSupports(Ext_Zhinx) = config extensions.Zhinx.supported
172+
// Floating-Point in Integer Registers (minimal half precision)
173+
enum clause extension = Ext_Zhinxmin
174+
function clause hartSupports(Ext_Zhinxmin) = config extensions.Zhinxmin.supported
172175

173176
// Vector Basic Bit-manipulation
174177
enum clause extension = Ext_Zvbb

model/riscv_insts_zfh.sail

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
/*=======================================================================================*/
88

99
function clause currentlyEnabled(Ext_Zhinx) = hartSupports(Ext_Zhinx) & currentlyEnabled(Ext_Zfinx)
10+
function clause currentlyEnabled(Ext_Zhinxmin) = (hartSupports(Ext_Zhinxmin) & currentlyEnabled(Ext_Zfinx))| currentlyEnabled(Ext_Zhinx)
1011

1112
/* **************************************************************** */
1213
/* This file specifies the instructions in the Zfh extension */
@@ -167,7 +168,7 @@ function fle_H (v1, v2, is_quiet) = {
167168
function haveHalfFPU() -> bool = currentlyEnabled(Ext_Zfh) | currentlyEnabled(Ext_Zhinx)
168169
// Support for conversion of halves to/from single & double, but no actual
169170
// calculations with halves.
170-
function haveHalfMin() -> bool = haveHalfFPU() | currentlyEnabled(Ext_Zfhmin)
171+
function haveHalfMin() -> bool = haveHalfFPU() | currentlyEnabled(Ext_Zfhmin) | currentlyEnabled(Ext_Zhinxmin)
171172

172173
/* ****************************************************************** */
173174
/* Floating-point loads */

0 commit comments

Comments
 (0)