Skip to content

Commit 1bae44e

Browse files
committed
Merged F extension instructions. Some fields are not populated
Signed-off-by: Afonso Oliveira <[email protected]>
1 parent e1e595b commit 1bae44e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1321
-6
lines changed

arch/inst/F/fabs.s.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# yaml-language-server: $schema=../../../schemas/inst_schema.json
2+
3+
fabs.s:
4+
long_name: No synopsis available.
5+
description: |
6+
No description available.
7+
definedBy: F
8+
assembly: xd, xs1, xs2=xs1
9+
encoding:
10+
match: 0010000----------010-----1010011
11+
variables:
12+
- name: rs2=rs1
13+
location: 24-20
14+
- name: rs1
15+
location: 19-15
16+
- name: rd
17+
location: 11-7
18+
access:
19+
s: always
20+
u: always
21+
vs: always
22+
vu: always
23+
data_independent_timing: true
24+
operation(): |
25+

arch/inst/F/fadd.s.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# yaml-language-server: $schema=../../../schemas/inst_schema.json
2+
3+
fadd.s:
4+
long_name: No synopsis available.
5+
description: |
6+
No description available.
7+
definedBy: F
8+
assembly: xd, xs1, xs2, rm
9+
encoding:
10+
match: 0000000------------------1010011
11+
variables:
12+
- name: rs2
13+
location: 24-20
14+
- name: rs1
15+
location: 19-15
16+
- name: rm
17+
location: 14-12
18+
- name: rd
19+
location: 11-7
20+
access:
21+
s: always
22+
u: always
23+
vs: always
24+
vu: always
25+
data_independent_timing: true
26+
operation(): |
27+

arch/inst/F/fclass.s.yaml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# yaml-language-server: $schema=../../../schemas/inst_schema.json
2+
3+
fclass.s:
4+
long_name: Single-precision floating-point classify.
5+
description: |
6+
The `fclass.s` instruction examines the value in floating-point register
7+
_fs1_ and writes to integer register _rd_ a 10-bit mask that indicates
8+
the class of the floating-point number.
9+
The format of the mask is described in the table below.
10+
The corresponding bit in _rd_ will be set if the property is true and
11+
clear otherwise.
12+
All other bits in _rd_ are cleared.
13+
Note that exactly one bit in rd will be set.
14+
`fclass.s` does not set the floating-point exception flags.
15+
16+
.Format of result of `fclass` instruction.
17+
[%autowidth,float="center",align="center",cols="^,<",options="header",]
18+
|===
19+
|_rd_ bit |Meaning
20+
|0 |_rs1_ is latexmath:[$-\infty$].
21+
|1 |_rs1_ is a negative normal number.
22+
|2 |_rs1_ is a negative subnormal number.
23+
|3 |_rs1_ is latexmath:[$-0$].
24+
|4 |_rs1_ is latexmath:[$+0$].
25+
|5 |_rs1_ is a positive subnormal number.
26+
|6 |_rs1_ is a positive normal number.
27+
|7 |_rs1_ is latexmath:[$+\infty$].
28+
|8 |_rs1_ is a signaling NaN.
29+
|9 |_rs1_ is a quiet NaN.
30+
|===
31+
32+
definedBy: F
33+
assembly: xd, fs1
34+
encoding:
35+
match: 111000000000-----001-----1010011
36+
variables:
37+
- name: fs1
38+
location: 19-15
39+
- name: rd
40+
location: 11-7
41+
access:
42+
s: always
43+
u: always
44+
vs: always
45+
vu: always
46+
data_independent_timing: false
47+
operation(): |
48+

arch/inst/F/fcvt.l.s.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# yaml-language-server: $schema=../../../schemas/inst_schema.json
2+
3+
fcvt.l.s:
4+
long_name: No synopsis available.
5+
description: |
6+
No description available.
7+
definedBy: F
8+
base: 64
9+
assembly: xd, xs1, rm
10+
encoding:
11+
match: 110000000010-------------1010011
12+
variables:
13+
- name: rs1
14+
location: 19-15
15+
- name: rm
16+
location: 14-12
17+
- name: rd
18+
location: 11-7
19+
access:
20+
s: always
21+
u: always
22+
vs: always
23+
vu: always
24+
data_independent_timing: true
25+
operation(): |
26+

arch/inst/F/fcvt.lu.s.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# yaml-language-server: $schema=../../../schemas/inst_schema.json
2+
3+
fcvt.lu.s:
4+
long_name: No synopsis available.
5+
description: |
6+
No description available.
7+
definedBy: F
8+
base: 64
9+
assembly: xd, xs1, rm
10+
encoding:
11+
match: 110000000011-------------1010011
12+
variables:
13+
- name: rs1
14+
location: 19-15
15+
- name: rm
16+
location: 14-12
17+
- name: rd
18+
location: 11-7
19+
access:
20+
s: always
21+
u: always
22+
vs: always
23+
vu: always
24+
data_independent_timing: true
25+
operation(): |
26+

arch/inst/F/fcvt.s.l.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# yaml-language-server: $schema=../../../schemas/inst_schema.json
2+
3+
fcvt.s.l:
4+
long_name: No synopsis available.
5+
description: |
6+
No description available.
7+
definedBy: F
8+
base: 64
9+
assembly: xd, xs1, rm
10+
encoding:
11+
match: 110100000010-------------1010011
12+
variables:
13+
- name: rs1
14+
location: 19-15
15+
- name: rm
16+
location: 14-12
17+
- name: rd
18+
location: 11-7
19+
access:
20+
s: always
21+
u: always
22+
vs: always
23+
vu: always
24+
data_independent_timing: true
25+
operation(): |
26+

arch/inst/F/fcvt.s.lu.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# yaml-language-server: $schema=../../../schemas/inst_schema.json
2+
3+
fcvt.s.lu:
4+
long_name: No synopsis available.
5+
description: |
6+
No description available.
7+
definedBy: F
8+
base: 64
9+
assembly: xd, xs1, rm
10+
encoding:
11+
match: 110100000011-------------1010011
12+
variables:
13+
- name: rs1
14+
location: 19-15
15+
- name: rm
16+
location: 14-12
17+
- name: rd
18+
location: 11-7
19+
access:
20+
s: always
21+
u: always
22+
vs: always
23+
vu: always
24+
data_independent_timing: true
25+
operation(): |
26+

arch/inst/F/fcvt.s.w.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# yaml-language-server: $schema=../../../schemas/inst_schema.json
2+
3+
fcvt.s.w:
4+
long_name: Convert signed 32-bit integer to single-precision float
5+
description: |
6+
Converts a 32-bit signed integer in integer register _rs1_ into a floating-point number in
7+
floating-point register _fd_.
8+
9+
All floating-point to integer and integer to floating-point conversion instructions round
10+
according to the _rm_ field.
11+
A floating-point register can be initialized to floating-point positive zero using
12+
`fcvt.s.w rd, x0`, which will never set any exception flags.
13+
14+
All floating-point conversion instructions set the Inexact exception flag if the rounded
15+
result differs from the operand value and the Invalid exception flag is not set.
16+
definedBy: F
17+
assembly: fd, xs1
18+
encoding:
19+
match: 110100000000-------------1010011
20+
variables:
21+
- name: rs1
22+
location: 19-15
23+
- name: rm
24+
location: 14-12
25+
- name: rd
26+
location: 11-7
27+
access:
28+
s: always
29+
u: always
30+
vs: always
31+
vu: always
32+
data_independent_timing: false
33+
operation(): |
34+
35+

arch/inst/F/fcvt.s.wu.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# yaml-language-server: $schema=../../../schemas/inst_schema.json
2+
3+
fcvt.s.wu:
4+
long_name: No synopsis available.
5+
description: |
6+
No description available.
7+
definedBy: F
8+
assembly: xd, xs1, rm
9+
encoding:
10+
match: 110100000001-------------1010011
11+
variables:
12+
- name: rs1
13+
location: 19-15
14+
- name: rm
15+
location: 14-12
16+
- name: rd
17+
location: 11-7
18+
access:
19+
s: always
20+
u: always
21+
vs: always
22+
vu: always
23+
data_independent_timing: true
24+
operation(): |
25+

arch/inst/F/fcvt.w.s.yaml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# yaml-language-server: $schema=../../../schemas/inst_schema.json
2+
3+
fcvt.w.s:
4+
long_name: Convert single-precision float to integer word to signed 32-bit integer.
5+
description: |
6+
Converts a floating-point number in floating-point register _fs1_ to a signed 32-bit integer indicates
7+
integer register _rd_.
8+
9+
For XLEN &gt;32, `fcvt.w.s` sign-extends the 32-bit result to the destination register width.
10+
11+
If the rounded result is not representable as a 32-bit signed integer, it is clipped to the
12+
nearest value and the invalid flag is set.
13+
14+
The range of valid inputs and behavior for invalid inputs are:
15+
16+
[separator="!"]
17+
!===
18+
! ! Value
19+
20+
h! Minimum valid input (after rounding) ! `-2^31`
21+
h! Maximum valid input (after rounding) ! `2^31 - 1`
22+
h! Output for out-of-range negative input ! `-2^31`
23+
h! Output for `-&infin;` ! `-2^31`
24+
h! Output for out-of-range positive input ! `2^31 - 1`
25+
h! Output for `+&infin;` for `NaN` ! `2^31 - 1`
26+
!===
27+
28+
All floating-point to integer and integer to floating-point conversion instructions round
29+
according to the _rm_ field.
30+
A floating-point register can be initialized to floating-point positive zero using
31+
`fcvt.s.w rd, x0`, which will never set any exception flags.
32+
33+
All floating-point conversion instructions set the Inexact exception flag if the rounded
34+
result differs from the operand value and the Invalid exception flag is not set.
35+
36+
definedBy: F
37+
assembly: xd, fs1
38+
encoding:
39+
match: 110000000000-------------1010011
40+
variables:
41+
- name: fs1
42+
location: 19-15
43+
- name: rm
44+
location: 14-12
45+
- name: rd
46+
location: 11-7
47+
access:
48+
s: always
49+
u: always
50+
vs: always
51+
vu: always
52+
data_independent_timing: true
53+
operation(): |
54+

0 commit comments

Comments
 (0)