[Libre-soc-isa] [Bug 1087] change ISACaller and correct bug introduced in parser.py where it bypasses FPSCR as a local parameter and a return result

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun May 21 21:16:00 BST 2023


https://bugs.libre-soc.org/show_bug.cgi?id=1087

--- Comment #13 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Jacob Lifshay from comment #12)
> e.g. fatan2s needs to be changed to something like:
> https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=openpower/isa/
> fptrans.mdwn;h=e6799bb1a72767793330bfae70e5a17b6c6d6af5;
> hb=371d91b299c0e4bd7b23e660b9936ed40debb824#l14
> 
> result <- DOUBLE(bfp32_ATAN2(SINGLE((FRA)), SINGLE((FRB))))
> if FPSCR.FEX = 0 then # computed as vex_flag in fcvt*

actually, rather than testing FEX, we need to test if *this instruction* sets
FEX (hence vex_flag), since FEX can be 1 on entry to the instruction (if MSR
exceptions are disabled or in non-precise exception modes)

>     FRT <- result
> else
>     # don't write FRT
>     # do other trap setup -- TBD
> 
> ops like fmv don't need to change since they never cause fp traps.
> 
> additionally, fcvt* might change to always write [F]RT (since that
> simplifies hardware and can't overwrite the input, unlike basically all
> other fp ops) but that change isn't technically necessary.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Libre-SOC-ISA mailing list