File tree Expand file tree Collapse file tree 9 files changed +87
-87
lines changed
backends/instructions_appendix Expand file tree Collapse file tree 9 files changed +87
-87
lines changed Original file line number Diff line number Diff line change @@ -5,10 +5,10 @@ kind: instruction
5
5
name : c.fld
6
6
long_name : Load double-precision
7
7
description : |
8
- Loads a double precision floating-point value from memory into register rd .
8
+ Loads a double precision floating-point value from memory into register fd .
9
9
It computes an effective address by adding the zero-extended offset, scaled by 8,
10
- to the base address in register rs1 .
11
- It expands to `fld` `rd , offset(rs1 )`.
10
+ to the base address in register xs1 .
11
+ It expands to `fld` `fd , offset(xs1 )`.
12
12
definedBy :
13
13
anyOf :
14
14
- allOf :
@@ -22,9 +22,9 @@ encoding:
22
22
- name : imm
23
23
location : 6-5|12-10
24
24
left_shift : 3
25
- - name : rd
25
+ - name : fd
26
26
location : 4-2
27
- - name : rs1
27
+ - name : xs1
28
28
location : 9-7
29
29
access :
30
30
s : always
@@ -36,6 +36,6 @@ operation(): |
36
36
raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
37
37
}
38
38
39
- XReg virtual_address = X[creg2reg(rs1 )] + imm;
39
+ XReg virtual_address = X[creg2reg(xs1 )] + imm;
40
40
41
- X[creg2reg(rd) ] = sext(read_memory<64>(virtual_address, $encoding), 64);
41
+ f[fd ] = sext(read_memory<64>(virtual_address, $encoding), 64);
Original file line number Diff line number Diff line change @@ -5,10 +5,10 @@ kind: instruction
5
5
name : c.fldsp
6
6
long_name : Load doubleword into floating-point register from stack
7
7
description : |
8
- Loads a double-precision floating-point value from memory into floating-point register rd .
8
+ Loads a double-precision floating-point value from memory into floating-point register fd .
9
9
It computes its effective address by adding the zero-extended offset, scaled by 8,
10
10
to the stack pointer, x2.
11
- It expands to `fld` `rd , offset(x2)`.
11
+ It expands to `fld` `fd , offset(x2)`.
12
12
definedBy :
13
13
anyOf :
14
14
- allOf :
@@ -22,7 +22,7 @@ encoding:
22
22
- name : imm
23
23
location : 4-2|12|6-5
24
24
left_shift : 3
25
- - name : rd
25
+ - name : fd
26
26
location : 11-7
27
27
access :
28
28
s : always
@@ -39,4 +39,4 @@ operation(): |
39
39
40
40
XReg virtual_address = X[2] + imm;
41
41
42
- f[rd ] = read_memory<64>(virtual_address, $encoding);
42
+ f[fd ] = read_memory<64>(virtual_address, $encoding);
Original file line number Diff line number Diff line change @@ -5,10 +5,10 @@ kind: instruction
5
5
name : c.fsd
6
6
long_name : Store double-precision
7
7
description : |
8
- Stores a double precision floating-point value in register rs2 to memory.
8
+ Stores a double precision floating-point value in register fs2 to memory.
9
9
It computes an effective address by adding the zero-extended offset, scaled by 8,
10
- to the base address in register rs1 .
11
- It expands to `fsd` `rs2 , offset(rs1 )`.
10
+ to the base address in register xs1 .
11
+ It expands to `fsd` `fs2 , offset(xs1 )`.
12
12
definedBy :
13
13
anyOf :
14
14
- allOf :
@@ -22,9 +22,9 @@ encoding:
22
22
- name : imm
23
23
location : 6-5|12-10
24
24
left_shift : 3
25
- - name : rs2
25
+ - name : fs2
26
26
location : 4-2
27
- - name : rs1
27
+ - name : xs1
28
28
location : 9-7
29
29
access :
30
30
s : always
@@ -36,6 +36,6 @@ operation(): |
36
36
raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
37
37
}
38
38
39
- XReg virtual_address = X[creg2reg(rs1 )] + imm;
39
+ XReg virtual_address = X[creg2reg(xs1 )] + imm;
40
40
41
- write_memory<64>(virtual_address, X[creg2reg(rs2 )], $encoding);
41
+ write_memory<64>(virtual_address, X[creg2reg(fs2 )], $encoding);
Original file line number Diff line number Diff line change @@ -5,10 +5,10 @@ kind: instruction
5
5
name : c.fsdsp
6
6
long_name : Store double-precision value to stack
7
7
description : |
8
- Stores a double-precision floating-point value in floating-point register rs2 to memory.
8
+ Stores a double-precision floating-point value in floating-point register fs2 to memory.
9
9
It computes an effective address by adding the zero-extended offset, scaled by 8,
10
10
to the stack pointer, x2.
11
- It expands to `fsd` `rs2 , offset(x2)`.
11
+ It expands to `fsd` `fs2 , offset(x2)`.
12
12
definedBy :
13
13
anyOf :
14
14
- allOf :
@@ -22,7 +22,7 @@ encoding:
22
22
- name : imm
23
23
location : 9-7|12-10
24
24
left_shift : 3
25
- - name : rs2
25
+ - name : fs2
26
26
location : 6-2
27
27
access :
28
28
s : always
@@ -39,4 +39,4 @@ operation(): |
39
39
40
40
XReg virtual_address = X[2] + imm;
41
41
42
- write_memory<64>(virtual_address, f[rs2 ][63:0], $encoding);
42
+ write_memory<64>(virtual_address, f[fs2 ][63:0], $encoding);
Original file line number Diff line number Diff line change @@ -5,27 +5,27 @@ kind: instruction
5
5
name : c.flw
6
6
long_name : Load single-precision
7
7
description : |
8
- Loads a single precision floating-point value from memory into register rd .
8
+ Loads a single precision floating-point value from memory into register fd .
9
9
It computes an effective address by adding the zero-extended offset, scaled by 4,
10
- to the base address in register rs1 .
11
- It expands to `flw` `rd , offset(rs1 )`.
10
+ to the base address in register xs1 .
11
+ It expands to `flw` `fd , offset(xs1 )`.
12
12
definedBy :
13
13
anyOf :
14
14
- allOf :
15
15
- C
16
16
- F
17
17
- Zcf
18
- assembly : xd , imm(xs1)
18
+ assembly : fd , imm(xs1)
19
19
base : 32
20
20
encoding :
21
21
match : 011-----------00
22
22
variables :
23
23
- name : imm
24
24
location : 5|12-10|6
25
25
left_shift : 2
26
- - name : rd
26
+ - name : fd
27
27
location : 4-2
28
- - name : rs1
28
+ - name : xs1
29
29
location : 9-7
30
30
access :
31
31
s : always
@@ -37,6 +37,6 @@ operation(): |
37
37
raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
38
38
}
39
39
40
- XReg virtual_address = X[creg2reg(rs1 )] + imm;
40
+ XReg virtual_address = X[creg2reg(xs1 )] + imm;
41
41
42
- X[creg2reg(rd )] = sext(read_memory<32>(virtual_address, $encoding), 32);
42
+ X[creg2reg(fd )] = sext(read_memory<32>(virtual_address, $encoding), 32);
Original file line number Diff line number Diff line change @@ -5,10 +5,10 @@ kind: instruction
5
5
name : c.flwsp
6
6
long_name : Load word into floating-point register from stack
7
7
description : |
8
- Loads a single-precision floating-point value from memory into floating-point register rd .
8
+ Loads a single-precision floating-point value from memory into floating-point register fd .
9
9
It computes its effective address by adding the zero-extended offset, scaled by 4,
10
10
to the stack pointer, x2.
11
- It expands to `flw` `rd , offset(x2)`.
11
+ It expands to `flw` `fd , offset(x2)`.
12
12
definedBy :
13
13
anyOf :
14
14
- allOf :
@@ -23,7 +23,7 @@ encoding:
23
23
- name : imm
24
24
location : 3-2|12|6-4
25
25
left_shift : 2
26
- - name : rd
26
+ - name : fd
27
27
location : 11-7
28
28
access :
29
29
s : always
@@ -40,4 +40,4 @@ operation(): |
40
40
41
41
XReg virtual_address = X[2] + imm;
42
42
43
- f[rd ] = read_memory<32>(virtual_address, $encoding);
43
+ f[fd ] = read_memory<32>(virtual_address, $encoding);
Original file line number Diff line number Diff line change @@ -5,27 +5,27 @@ kind: instruction
5
5
name : c.fsw
6
6
long_name : Store single-precision
7
7
description : |
8
- Stores a single precision floating-point value in register rs2 to memory.
8
+ Stores a single precision floating-point value in register fs2 to memory.
9
9
It computes an effective address by adding the zero-extended offset, scaled by 4,
10
- to the base address in register rs1 .
11
- It expands to `fsw` `rs2 , offset(rs1 )`.
10
+ to the base address in register xs1 .
11
+ It expands to `fsw` `fs2 , offset(xs1 )`.
12
12
definedBy :
13
13
anyOf :
14
14
- allOf :
15
15
- C
16
16
- F
17
17
- Zcf
18
18
base : 32
19
- assembly : xs2 , imm(xs1)
19
+ assembly : fs2 , imm(xs1)
20
20
encoding :
21
21
match : 111-----------00
22
22
variables :
23
23
- name : imm
24
24
location : 5|12-10|6
25
25
left_shift : 2
26
- - name : rs2
26
+ - name : fs2
27
27
location : 4-2
28
- - name : rs1
28
+ - name : xs1
29
29
location : 9-7
30
30
access :
31
31
s : always
@@ -37,6 +37,6 @@ operation(): |
37
37
raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
38
38
}
39
39
40
- XReg virtual_address = X[creg2reg(rs1 )] + imm;
40
+ XReg virtual_address = X[creg2reg(xs1 )] + imm;
41
41
42
- write_memory<32>(virtual_address, X[creg2reg(rs2 )][31:0], $encoding);
42
+ write_memory<32>(virtual_address, X[creg2reg(fs2 )][31:0], $encoding);
Original file line number Diff line number Diff line change @@ -5,10 +5,10 @@ kind: instruction
5
5
name : c.fswsp
6
6
long_name : Store single-precision value to stack
7
7
description : |
8
- Stores a single-precision floating-point value in floating-point register rs2 to memory.
8
+ Stores a single-precision floating-point value in floating-point register fs2 to memory.
9
9
It computes an effective address by adding the zero-extended offset, scaled by 4,
10
10
to the stack pointer, x2.
11
- It expands to `fsw` `rs2 , offset(x2)`.
11
+ It expands to `fsw` `fs2 , offset(x2)`.
12
12
definedBy :
13
13
anyOf :
14
14
- allOf :
@@ -23,7 +23,7 @@ encoding:
23
23
- name : imm
24
24
location : 8-7|12-9
25
25
left_shift : 2
26
- - name : rs2
26
+ - name : fs2
27
27
location : 6-2
28
28
access :
29
29
s : always
@@ -40,4 +40,4 @@ operation(): |
40
40
41
41
XReg virtual_address = X[2] + imm;
42
42
43
- write_memory<32>(virtual_address, f[rs2 ][31:0], $encoding);
43
+ write_memory<32>(virtual_address, f[fs2 ][31:0], $encoding);
You can’t perform that action at this time.
0 commit comments