[Libre-soc-bugs] [Bug 324] create POWER9 DIV pipeline

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Fri Jun 19 15:00:40 BST 2020


--- Comment #16 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #13)
> The spec pseudo-code doesn't contain all the required information to
> implement any of the div or mod operations since only the prose states the
> conditions for overflow (which *DO* show up in the overflow flags when div*o
> is used).

answered this one.

> All divisions are truncating division, not floor division, so we should
> translate them to function calls to custom trunc_div and trunc_rem functions
> rather than python's // and % operators (since the mod* instructions
> implement the mathematical remainder of truncating division operation rather
> than the mathematical modulo operation).

urk. yuk.  that's going to be a bad hack (based on the name of the variables
involved - what is being assigned to).  it's doable - just not pretty.

> Code not tested:
> def trunc_div(n, d):
> def trunc_rem(n, d):

ok i've put both of these into soc.decoder.helpers will commit shortly.

btw a trick, jacob: open a copy of decoder/isa/all.py in vim, run
"pywriter.py fixedarith" then *overwrite* all.py restoring the former

this will save several minutes when re-running pywriter.py.  it would be
nice for this process to be more efficient (all.py not to be statically
written but to be dynamic instead).

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

More information about the libre-soc-bugs mailing list