Skip to content

Commit 3595412

Browse files
feat: add floating-point register file
Signed-off-by: Animesh Agarwal <[email protected]>
1 parent dcdbb5c commit 3595412

File tree

2 files changed

+166
-1
lines changed

2 files changed

+166
-1
lines changed

spec/schemas/schema_defs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
{
5454
"type": "string",
5555
"minLength": 1,
56-
"enum": ["MXLEN"]
56+
"enum": ["MXLEN", "FLEN"]
5757
}
5858
]
5959
},

spec/std/isa/register_file/F.yaml

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
# Copyright (c) Animesh Agarwal
2+
# SPDX-License-Identifier: BSD-3-Clause-Clear
3+
4+
# yaml-language-server: $schema=../../../../schemas/register_file_schema.json
5+
6+
$schema: register_file_schema.json#
7+
kind: register_file
8+
name: F
9+
long_name: Floating-Point Registers
10+
description: |
11+
The 'F' register file contains the 32 floating-point registers used by
12+
RISC-V floating-point extensions. Each register stores FLEN bits of state and
13+
participates in the standard calling convention defined by the RISC-V ABI spec.
14+
definedBy: F
15+
register_class: floating_point
16+
register_length: FLEN
17+
registers:
18+
- name: f0
19+
abi_mnemonics: [ft0]
20+
caller_saved: true
21+
roles: [temporary]
22+
description: Caller-saved temporary register.
23+
- name: f1
24+
abi_mnemonics: [ft1]
25+
caller_saved: true
26+
roles: [temporary]
27+
description: Caller-saved temporary register.
28+
- name: f2
29+
abi_mnemonics: [ft2]
30+
caller_saved: true
31+
roles: [temporary]
32+
description: Caller-saved temporary register.
33+
- name: f3
34+
abi_mnemonics: [ft3]
35+
caller_saved: true
36+
roles: [temporary]
37+
description: Caller-saved temporary register.
38+
- name: f4
39+
abi_mnemonics: [ft4]
40+
caller_saved: true
41+
roles: [temporary]
42+
description: Caller-saved temporary register.
43+
- name: f5
44+
abi_mnemonics: [ft5]
45+
caller_saved: true
46+
roles: [temporary]
47+
description: Caller-saved temporary register.
48+
- name: f6
49+
abi_mnemonics: [ft6]
50+
caller_saved: true
51+
roles: [temporary]
52+
description: Caller-saved temporary register.
53+
- name: f7
54+
abi_mnemonics: [ft7]
55+
caller_saved: true
56+
roles: [temporary]
57+
description: Caller-saved temporary register.
58+
- name: f8
59+
abi_mnemonics: [fs0]
60+
callee_saved: true
61+
description: Callee-saved floating-point register.
62+
- name: f9
63+
abi_mnemonics: [fs1]
64+
callee_saved: true
65+
description: Callee-saved floating-point register.
66+
- name: f10
67+
abi_mnemonics: [fa0]
68+
caller_saved: true
69+
roles: [argument, return_value]
70+
description: Floating-point argument / return value register 0.
71+
- name: f11
72+
abi_mnemonics: [fa1]
73+
caller_saved: true
74+
roles: [argument, return_value]
75+
description: Floating-point argument / return value register 1.
76+
- name: f12
77+
abi_mnemonics: [fa2]
78+
caller_saved: true
79+
roles: [argument]
80+
description: Floating-point argument register 2.
81+
- name: f13
82+
abi_mnemonics: [fa3]
83+
caller_saved: true
84+
roles: [argument]
85+
description: Floating-point argument register 3.
86+
- name: f14
87+
abi_mnemonics: [fa4]
88+
caller_saved: true
89+
roles: [argument]
90+
description: Floating-point argument register 4.
91+
- name: f15
92+
abi_mnemonics: [fa5]
93+
caller_saved: true
94+
roles: [argument]
95+
description: Floating-point argument register 5.
96+
- name: f16
97+
abi_mnemonics: [fa6]
98+
caller_saved: true
99+
roles: [argument]
100+
description: Floating-point argument register 6.
101+
- name: f17
102+
abi_mnemonics: [fa7]
103+
caller_saved: true
104+
roles: [argument]
105+
description: Floating-point argument register 7.
106+
- name: f18
107+
abi_mnemonics: [fs2]
108+
callee_saved: true
109+
description: Callee-saved floating-point register.
110+
- name: f19
111+
abi_mnemonics: [fs3]
112+
callee_saved: true
113+
description: Callee-saved floating-point register.
114+
- name: f20
115+
abi_mnemonics: [fs4]
116+
callee_saved: true
117+
description: Callee-saved floating-point register.
118+
- name: f21
119+
abi_mnemonics: [fs5]
120+
callee_saved: true
121+
description: Callee-saved floating-point register.
122+
- name: f22
123+
abi_mnemonics: [fs6]
124+
callee_saved: true
125+
description: Callee-saved floating-point register.
126+
- name: f23
127+
abi_mnemonics: [fs7]
128+
callee_saved: true
129+
description: Callee-saved floating-point register.
130+
- name: f24
131+
abi_mnemonics: [fs8]
132+
callee_saved: true
133+
description: Callee-saved floating-point register.
134+
- name: f25
135+
abi_mnemonics: [fs9]
136+
callee_saved: true
137+
description: Callee-saved floating-point register.
138+
- name: f26
139+
abi_mnemonics: [fs10]
140+
callee_saved: true
141+
description: Callee-saved floating-point register.
142+
- name: f27
143+
abi_mnemonics: [fs11]
144+
callee_saved: true
145+
description: Callee-saved floating-point register.
146+
- name: f28
147+
abi_mnemonics: [ft8]
148+
caller_saved: true
149+
roles: [temporary]
150+
description: Caller-saved temporary register.
151+
- name: f29
152+
abi_mnemonics: [ft9]
153+
caller_saved: true
154+
roles: [temporary]
155+
description: Caller-saved temporary register.
156+
- name: f30
157+
abi_mnemonics: [ft10]
158+
caller_saved: true
159+
roles: [temporary]
160+
description: Caller-saved temporary register.
161+
- name: f31
162+
abi_mnemonics: [ft11]
163+
caller_saved: true
164+
roles: [temporary]
165+
description: Caller-saved temporary register.

0 commit comments

Comments
 (0)