From: lkcl Date: Thu, 7 Jul 2022 11:00:39 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~1302 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=94d04f67398be43173c138d09dfe459b502dac27;p=libreriscv.git --- diff --git a/openpower/power_trans_ops.mdwn b/openpower/power_trans_ops.mdwn new file mode 100644 index 000000000..ddea00a92 --- /dev/null +++ b/openpower/power_trans_ops.mdwn @@ -0,0 +1,53 @@ +## List of 2-arg opcodes + +[[!table data=""" +opcode | Description | pseudocode | Extension | +FATAN2 | atan2 arc tangent | rd = atan2(rs2, rs1) | Zarctrignpi | +FATAN2PI | atan2 arc tangent / pi | rd = atan2(rs2, rs1) / pi | Zarctrigpi | +FPOW | x power of y | rd = pow(rs1, rs2) | ZftransAdv | +FPOWN | x power of n (n int) | rd = pow(rs1, rs2) | ZftransAdv | +FPOWR | x power of y (x +ve) | rd = exp(rs1 log(rs2)) | ZftransAdv | +FROOTN | x power 1/n (n integer)| rd = pow(rs1, 1/rs2) | ZftransAdv | +FHYPOT | hypotenuse | rd = sqrt(rs1^2 + rs2^2) | ZftransAdv | +"""]] + +## List of 1-arg transcendental opcodes + +[[!table data=""" +opcode | Description | pseudocode | Extension | +FRSQRT | Reciprocal Square-root | rd = sqrt(rs1) | Zfrsqrt | +FCBRT | Cube Root | rd = pow(rs1, 1.0 / 3) | ZftransAdv | +FRECIP | Reciprocal | rd = 1.0 / rs1 | Zftrans | +FEXP2 | power-of-2 | rd = pow(2, rs1) | Zftrans | +FLOG2 | log2 | rd = log(2. rs1) | Zftrans | +FEXPM1 | exponential minus 1 | rd = pow(e, rs1) - 1.0 | ZftransExt | +FLOG1P | log plus 1 | rd = log(e, 1 + rs1) | ZftransExt | +FEXP | exponential | rd = pow(e, rs1) | ZftransExt | +FLOG | natural log (base e) | rd = log(e, rs1) | ZftransExt | +FEXP10 | power-of-10 | rd = pow(10, rs1) | ZftransExt | +FLOG10 | log base 10 | rd = log(10, rs1) | ZftransExt | +"""]] + +## List of 1-arg trigonometric opcodes + +[[!table data=""" +opcode | Description | pseudo-code | Extension | +FSIN | sin (radians) | rd = sin(rs1) | Ztrignpi | +FCOS | cos (radians) | rd = cos(rs1) | Ztrignpi | +FTAN | tan (radians) | rd = tan(rs1) | Ztrignpi | +FASIN | arcsin (radians) | rd = asin(rs1) | Zarctrignpi | +FACOS | arccos (radians) | rd = acos(rs1) | Zarctrignpi | +FATAN | arctan (radians) | rd = atan(rs1) | Zarctrignpi | +FSINPI | sin times pi | rd = sin(pi * rs1) | Ztrigpi | +FCOSPI | cos times pi | rd = cos(pi * rs1) | Ztrigpi | +FTANPI | tan times pi | rd = tan(pi * rs1) | Ztrigpi | +FASINPI | arcsin / pi | rd = asin(rs1) / pi | Zarctrigpi | +FACOSPI | arccos / pi | rd = acos(rs1) / pi | Zarctrigpi | +FATANPI | arctan / pi | rd = atan(rs1) / pi | Zarctrigpi | +FSINH | hyperbolic sin (radians) | rd = sinh(rs1) | Zfhyp | +FCOSH | hyperbolic cos (radians) | rd = cosh(rs1) | Zfhyp | +FTANH | hyperbolic tan (radians) | rd = tanh(rs1) | Zfhyp | +FASINH | inverse hyperbolic sin | rd = asinh(rs1) | Zfhyp | +FACOSH | inverse hyperbolic cos | rd = acosh(rs1) | Zfhyp | +FATANH | inverse hyperbolic tan | rd = atanh(rs1) | Zfhyp | +"""]]