[Libre-soc-dev] mfocr and mtocrf v3.0B spec ambiguity
    Luke Kenneth Casson Leighton 
    lkcl at lkcl.net
       
    Fri Aug 28 09:43:17 BST 2020
    
    
  
On Friday, August 28, 2020, Paul Mackerras <paulus at ozlabs.org> wrote:
>
> > otherwise, applications are guaranteed to break.
>
> Well, only if compilers or assembly language programmers use mfocrf
> with more than one bit set in FXM, which would be a perverse thing to
> do...
:)
they aren't likely to, i would agree, if they don't know it's possible.
still, clarifying the spec here to take into account bit 20 is.. sensible.
it would mean back at section 1.6 to add a field in XFX-Form (please not
"L"!  or if it is, only "L" if there are no other fields named "L" in
XFX-Form)
then referencing that in the text for mfocr and mtocrf.
fascinatingly the design of the CR regfile in libresoc is unary encoded
with an 8 bit mask that could, in fact, use FXM directly, both as read or
write.
as in the FXM field literally wired bit-for-bit gets the CR value needed,
making the CR pipeline for mfocr etc trivial.  no read modify write needed,
no mask needed.
having to do the one-hot picking is ironically a "nuisance" (not really),
it is quite trivial to put FXM through a one-hot (or not) depending on
whether bit 20 is set.
i can see how this instruction evolved, it is quite fascinating.
l.
-- 
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
    
    
More information about the Libre-soc-dev
mailing list