From: lkcl Date: Wed, 14 Aug 2019 21:06:17 +0000 (+0100) Subject: (no commit message) X-Git-Tag: convert-csv-opcode-to-binary~4203 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b453295cfbbb4e49f0906f5ffc69730c8b4d185b;p=libreriscv.git --- diff --git a/ztrans_proposal.mdwn b/ztrans_proposal.mdwn index f3ae0c357..615d0eab4 100644 --- a/ztrans_proposal.mdwn +++ b/ztrans_proposal.mdwn @@ -97,13 +97,11 @@ FATAN2PI | atan2pi | NONE | NONE | NONE | FPOW | pow | NONE | NONE | NONE | FROOT | rootn | NONE | NONE | NONE | FHYPOT | hypot | NONE | NONE | NONE | -NONE (4) | NONE | half\_recip | native\_recip | NONE | +FRECIP | NONE | half\_recip | native\_recip | NONE | """]] Note (1) FSINCOS is macro-op fused (see below). -Note (4) FCRECIP is a sythesised alias, below. - # List of 2-arg opcodes [[!table data=""" @@ -121,6 +119,7 @@ FHYPOT | hypotenuse | rd = sqrt(rs1^2 + rs2^2) | Zftrans | opcode | Description | pseudo-code | Extension | FRSQRT | Reciprocal Square-root | rd = sqrt(rs1) | Zfrsqrt | FCBRT | Cube Root | rd = pow(rs1, 3) | Zftrans | +FRECIP | Reciprocal | rd = 1.0 / rs1 | Zftrans | FEXP2 | power-of-2 | rd = pow(2, rs1) | Zftrans | FLOG2 | log2 | rd = log2(rs1) | Zftrans | FEXPM1 | exponential minus 1 | rd = pow(e, rs1) - 1.0 | Zftrans | @@ -162,7 +161,6 @@ pseudo-ops, by allocating one scalar FP register for use as a constant (loop invariant) set to "1.0" at the beginning of a function or other suitable code block. -* FRCP rd, rs1 - pseudo-code alias for rd = 1.0 / rs1 * FSINCOS - fused macro-op between FSIN and FCOS (issued in that order). * FSINCOSPI - fused macro-op between FSINPI and FCOSPI (issued in that order). @@ -177,6 +175,10 @@ high-performance or correctly-rounding): ASINH( x ) = ln( x + SQRT(x**2+1)) +# Reciprocal + +Used to be an alias. Some imolementors may wish to implement divide as y times recip(x) + # To evaluate: should LOG be replaced with LOG1P (and EXP with EXPM1)? RISC principle says "exclude LOG because it's covered by LOGP1 plus an ADD".