From: Luke Kenneth Casson Leighton Date: Wed, 26 Apr 2023 11:04:57 +0000 (+0100) Subject: get ls013 table down in size X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9198678d49275cede9655a04acf06c7ab69ff359;p=libreriscv.git get ls013 table down in size --- diff --git a/openpower/sv/rfc/ls013.mdwn b/openpower/sv/rfc/ls013.mdwn index 9211dd6ae..a0c115f7c 100644 --- a/openpower/sv/rfc/ls013.mdwn +++ b/openpower/sv/rfc/ls013.mdwn @@ -99,34 +99,33 @@ to 2019 there are now subtle differences. These are selectable with a Mode Field - -| `FMM` | Extended Mnemonic | Origin | Semantics | -| --- |---------------------------------| ------------------- |---------------------------------------------------| -| 0000 | fminnum08[s] FRT, FRA, FRB | IEEE 754-2008 | minNum(FRA, FRB) (1) | -| 0001 | fmin19[s] FRT, FRA, FRB | IEEE 754-2019 | minimum(FRA, FRB) | -| 0010 | fminnum19[s] FRT, FRA, FRB | IEEE 754-2019 | minimumNumber(FRA, FRB) | -| 0011 | fminc[s] FRT, FRA, FRB | x86 minss or
Win32's min macro | FRA \< FRB ? FRA : FRB | -| 0100 | fminmagnum08[s] FRT, FRA, FRB | IEEE 754-2008
(TODO: (3)) | minmaxmag(FRA, FRB, False, fminnum08) (2) | -| 0101 | fminmag19[s] FRT, FRA, FRB | IEEE 754-2019 | minmaxmag(FRA, FRB, False, fmin19) (2) | -| 0110 | fminmagnum19[s] FRT, FRA, FRB | IEEE 754-2019 | minmaxmag(FRA, FRB, False, fminnum19) (2) | -| 0111 | fminmagc[s] FRT, FRA, FRB | - | minmaxmag(FRA, FRB, False, fminc) (2) | -| 1000 | fmaxnum08[s] FRT, FRA, FRB | IEEE 754-2008 | maxNum(FRA, FRB) (1) | -| 1001 | fmax19[s] FRT, FRA, FRB | IEEE 754-2019 | maximum(FRA, FRB) | -| 1010 | fmaxnum19[s] FRT, FRA, FRB | IEEE 754-2019 | maximumNumber(FRA, FRB) | -| 1011 | fmaxc[s] FRT, FRA, FRB | x86 maxss or
Win32's max macro | FRA > FRB ? FRA : FRB | -| 1100 | fmaxmagnum08[s] FRT, FRA, FRB | IEEE 754-2008
(TODO: (3)) | minmaxmag(FRA, FRB, True, fmaxnum08) (2) | -| 1101 | fmaxmag19[s] FRT, FRA, FRB | IEEE 754-2019 | minmaxmag(FRA, FRB, True, fmax19) (2) | -| 1110 | fmaxmagnum19[s] FRT, FRA, FRB | IEEE 754-2019 | minmaxmag(FRA, FRB, True, fmaxnum19) (2) | -| 1111 | fmaxmagc[s] FRT, FRA, FRB | - | minmaxmag(FRA, FRB, True, fmaxc) (2) | + +| `FMM`| Extended Mnemonic | Origin | Semantics | +|------|-------------------------------|--------------------|--------------------------------------------| +| 0000 | fminnum08[s] FRT,FRA,FRB | IEEE 754-2008 | minNum(FRA,FRB) (1) | +| 0001 | fmin19[s] FRT,FRA,FRB | IEEE 754-2019 | minimum(FRA,FRB) | +| 0010 | fminnum19[s] FRT,FRA,FRB | IEEE 754-2019 | minimumNumber(FRA,FRB) | +| 0011 | fminc[s] FRT,FRA,FRB | x86 minss (4) | FRA\FRB ? FRA:FRB | +| 1100 | fmaxmagnum08[s] FRT,FRA,FRB | IEEE 754-2008 (3) | mmmag(FRA,FRB,True,fmaxnum08) (2) | +| 1101 | fmaxmag19[s] FRT,FRA,FRB | IEEE 754-2019 | mmmag(FRA,FRB,True,fmax19) (2) | +| 1110 | fmaxmagnum19[s] FRT,FRA,FRB | IEEE 754-2019 | mmmag(FRA,FRB,True,fmaxnum19) (2) | +| 1111 | fmaxmagc[s] FRT,FRA,FRB | - | mmmag(FRA,FRB,True,fmaxc) (2) | Note (1): for the purposes of minNum/maxNum, -0.0 is defined to be less than +0.0. This is left unspecified in IEEE 754-2008. -Note (2): minmaxmag(x, y, cmp, fallback) is defined as: +Note (2): mmmag(x, y, cmp, fallback) is defined as: ```python -def minmaxmag(x, y, is_max, fallback): +def mmmag(x, y, is_max, fallback): a = abs(x) < abs(y) b = abs(x) > abs(y) if is_max: @@ -142,6 +141,8 @@ def minmaxmag(x, y, is_max, fallback): Note (3): TODO: icr if IEEE 754-2008 has min/maxMagNum like IEEE 754-2019's minimum/maximumMagnitudeNumber +Note (4) or Win32's min macro + ---------------- \newpage{}