projects
/
libreriscv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some more progress in GCC.
[libreriscv.git]
/
rv_major_opcode_1010011.mdwn
diff --git
a/rv_major_opcode_1010011.mdwn
b/rv_major_opcode_1010011.mdwn
index 5e2f48d8890b8055b13908a75812bb4e9c38956b..6383cf0c48f21b9b91aecbffef51b4da553e6847 100644
(file)
--- a/
rv_major_opcode_1010011.mdwn
+++ b/
rv_major_opcode_1010011.mdwn
@@
-1,3
+1,5
@@
+**OBSOLETE**, superceded by [[openpower/transcendentals]]
+
# Summary FP Opcodes
This page aids and assists in the development of FP proposals,
# Summary FP Opcodes
This page aids and assists in the development of FP proposals,
@@
-11,9
+13,12
@@
Publicly-known FP proposals:
* Zfrsqrt - Reciprocal SQRT <http://bugs.libre-riscv.org/show_bug.cgi?id=110>
* Zftrans - see [[ztrans_proposal]]: Transcendentals
* Zfrsqrt - Reciprocal SQRT <http://bugs.libre-riscv.org/show_bug.cgi?id=110>
* Zftrans - see [[ztrans_proposal]]: Transcendentals
- (F
SIN, FCOS, FATAN, FPOW, FEXP, FLOG, FRCP
)
+ (F
POW, FEXP, FLOG, FCBRT
)
<http://bugs.libre-riscv.org/show_bug.cgi?id=127>
<http://bugs.libre-riscv.org/show_bug.cgi?id=127>
+* Ztrig\* - see [[ztrans_proposal]]: Trigonometriics
+ (FSIN, FCOS, FTAN, arc-variants, hypotenuse-variants)
* Extension of formats to cover FP16 (RISC-V ISA Manual Table 11.3 "fmt field")
* Extension of formats to cover FP16 (RISC-V ISA Manual Table 11.3 "fmt field")
+ <https://groups.google.com/a/groups.riscv.org/d/msg/isa-dev/8knne5BtlvM>
* HI-half FP MV - <https://github.com/riscv/riscv-isa-manual/pull/301>
<https://groups.google.com/a/groups.riscv.org/forum/m/#!topic/isa-dev/kXgfFqgBv-c>
* (Add new entries here: Zextname - Description and URL)
* HI-half FP MV - <https://github.com/riscv/riscv-isa-manual/pull/301>
<https://groups.google.com/a/groups.riscv.org/forum/m/#!topic/isa-dev/kXgfFqgBv-c>
* (Add new entries here: Zextname - Description and URL)
@@
-60,9
+65,9
@@
funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name |
01101 | xx | rs2 | rs1 | rm | rd | 1010011 | **FATAN2.xx** |
01110 | xx | rs2 | rs1 | rm | rd | 1010011 | **FATAN2PI.xx**|
01111 | xx | rs2 | rs1 | rm | rd | 1010011 | **FPOW.xx** |
01101 | xx | rs2 | rs1 | rm | rd | 1010011 | **FATAN2.xx** |
01110 | xx | rs2 | rs1 | rm | rd | 1010011 | **FATAN2PI.xx**|
01111 | xx | rs2 | rs1 | rm | rd | 1010011 | **FPOW.xx** |
-10000 | xx | rs2 | rs1 | yyy | rd | 1010011 | **FROOT
.xx**
|
-10001 | xx | rs2 | rs1 | yyy | rd | 1010011 |
?
|
-10010 | xx | rs2 | rs1 | yyy | rd | 1010011 |
?
|
+10000 | xx | rs2 | rs1 | yyy | rd | 1010011 | **FROOT
N.xx**
|
+10001 | xx | rs2 | rs1 | yyy | rd | 1010011 |
**FPOWN.xx**
|
+10010 | xx | rs2 | rs1 | yyy | rd | 1010011 |
**FPOWR.xx**
|
10011 | xx | rs2 | rs1 | yyy | rd | 1010011 | ? |
10100 | xx | rs2 | rs1 | yyy | rd | 1010011 | tb=10100 |
10101 | xx | rs2 | rs1 | yyy | rd | 1010011 | ? |
10011 | xx | rs2 | rs1 | yyy | rd | 1010011 | ? |
10100 | xx | rs2 | rs1 | yyy | rd | 1010011 | tb=10100 |
10101 | xx | rs2 | rs1 | yyy | rd | 1010011 | ? |
@@
-206,7
+211,7
@@
funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name |
5 | 2 | 5 | 5 | 3 | 5 | 7 | |
01011 | xx | 00000 | rs1 | rm | rd | 1010011 | FSQRT.xx |
01011 | xx | 00001 | rs1 | rm | rd | 1010011 | **FRSQRT.xx** |
5 | 2 | 5 | 5 | 3 | 5 | 7 | |
01011 | xx | 00000 | rs1 | rm | rd | 1010011 | FSQRT.xx |
01011 | xx | 00001 | rs1 | rm | rd | 1010011 | **FRSQRT.xx** |
-01011 | xx | 00010 | rs1 | rm | rd | 1010011 |
?
|
+01011 | xx | 00010 | rs1 | rm | rd | 1010011 |
**FRECIP.xx**
|
01011 | xx | 00011 | rs1 | rm | rd | 1010011 | **FCBRT.xx** |
01011 | xx | 00100 | rs1 | rm | rd | 1010011 | **FEXP2.xx** |
01011 | xx | 00101 | rs1 | rm | rd | 1010011 | **FLOG2.xx** |
01011 | xx | 00011 | rs1 | rm | rd | 1010011 | **FCBRT.xx** |
01011 | xx | 00100 | rs1 | rm | rd | 1010011 | **FEXP2.xx** |
01011 | xx | 00101 | rs1 | rm | rd | 1010011 | **FLOG2.xx** |
@@
-230,8
+235,8
@@
funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name |
01011 | xx | 10111 | rs1 | rm | rd | 1010011 | **FACOSPI.xx**|
01011 | xx | 11000 | rs1 | rm | rd | 1010011 | **FTAN.xx** |
01011 | xx | 11001 | rs1 | rm | rd | 1010011 | **FTANPI.xx** |
01011 | xx | 10111 | rs1 | rm | rd | 1010011 | **FACOSPI.xx**|
01011 | xx | 11000 | rs1 | rm | rd | 1010011 | **FTAN.xx** |
01011 | xx | 11001 | rs1 | rm | rd | 1010011 | **FTANPI.xx** |
-01011 | xx | 11010 | rs1 | rm | rd | 1010011 |
?
|
-01011 | xx | 11011 | rs1 | rm | rd | 1010011 |
?
|
+01011 | xx | 11010 | rs1 | rm | rd | 1010011 |
**FATAN.xx**
|
+01011 | xx | 11011 | rs1 | rm | rd | 1010011 |
**FATANPI.xx**
|
01011 | xx | 11100 | rs1 | rm | rd | 1010011 | **FSINH.xx** |
01011 | xx | 11101 | rs1 | rm | rd | 1010011 | **FCOSH.xx** |
01011 | xx | 11110 | rs1 | rm | rd | 1010011 | **FTANH.xx** |
01011 | xx | 11100 | rs1 | rm | rd | 1010011 | **FSINH.xx** |
01011 | xx | 11101 | rs1 | rm | rd | 1010011 | **FCOSH.xx** |
01011 | xx | 11110 | rs1 | rm | rd | 1010011 | **FTANH.xx** |
@@
-255,17
+260,20
@@
Rationale: Gives better accuracy than if using FMUL with the constant, PI.
Proposed for ZftransAdv - FPOW: "FP rs1 to the power of rs2"
Proposed for ZftransAdv - FPOW: "FP rs1 to the power of rs2"
-## funct5 = 10000 - **FROOT**
+## funct5 = 10000 - **FROOT
N
**
-Proposed for ZftransAdv - FPROOT: "FP rs1 to the power of (1/rs2)"
+Proposed for ZftransAdv - FPROOTN: "FP rs1 to the power of (1/rs2)".
+rs1 is FP, rs2 is **integer**.
-## funct5 = 10000 -
unused
+## funct5 = 10000 -
**FPOWN**
-Brownfield encodings available.
+Proposed for ZftransAdv - FPOW: "FP rs1 to the power of rs2"
+rs1 is FP, rs2 is **integer**.
-## funct5 = 10001 -
unused
+## funct5 = 10001 -
**FPOW**
-Brownfield encodings available.
+Proposed for ZftransAdv - FPOWN: "FP rs1 to the power of rs2, rs1 +ve"
+rs1 and rs2 are FP, rs1 must be +ve. Equivalent to "exp(rs2 * log(rs1))"
## funct5 = 10010 - unused
## funct5 = 10010 - unused