[libre-riscv-dev] [Bug 278] POWER v3.0B spec ambiguity on EXTS and missing EXTZ

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Sun Apr 5 11:08:39 BST 2020


http://bugs.libre-riscv.org/show_bug.cgi?id=278

--- Comment #2 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #1)

> > EXTS(x) Result of extending x on the left with sign
> >         bits
> >
> > the problem is illustrated by asking the very simple question, "how many
> > bits?"
> 
> 
> Maybe it would work to treat it as a conversion from a bitstring to a
> mathematical integer (like a Python3 int) where it can then be converted
> back to a bitstring when it is assigned to something with a size again?

hmm...

   if AA then NIA <-iea EXTS(LI || 0b00)
   else       NIA <-iea CIA + EXTS(LI || 0b00)

the args to that would be integer-values by that point (not the AST)
so it would in theory be ok...

> You don't need an infinite number of hardware bits to represent the
> mathematical integer, since you know the exact range the values fall in so
> you can calculate exactly how many bits you need, sign/zero-extending as
> needed when converting back to a bitstring.

if it's ok i'd like to go with "EXTS returns bitsize of 256" and see how
that goes, because string-to-int comes with a performance penalty.

yes so do python Longs (to use a python2-ism) however i don't believe it will
be as high.

keep this bug open so we have an alternative idea.

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


More information about the libre-riscv-dev mailing list