this is mostly a reminder for lkcl https://libre-soc.org/irclog/%23libre-soc.2022-08-26.log.html#t2022-08-26T19:52:58
it's more that "setvl." should not *read* XER.so... ahh but... in power_decoder2.py DecodeOE unconditionally reads the dec.OE flag which should *not* be happening, just as it should not be happening for e.g. mulh* rldic* etc. really there are enough exceptions in DecodeOE to justify adding a separate "OE" field - or, better, an RC.RC_NO_OE option. but that is... quite intrusive at the moment as it means dmitry has to update binutils, and the rest of the code which currently checks (and expects) RC.RC would need to check RC.RC_NO_OE. hmmm a separate CSV column would be better
(In reply to Luke Kenneth Casson Leighton from comment #1) > it's more that "setvl." should not *read* XER.so... ahh but... > in power_decoder2.py DecodeOE unconditionally reads the dec.OE > flag which should *not* be happening, just as it should not > be happening for e.g. mulh* rldic* etc. imho the issue is that setvl. should not *write* SO or OV[32]. reading them is fine, since they can be assumed to be rarely modified. this is like how add. will read SO and write that to CR0, but it won't modify SO or OV.
If we introduce OE into binutils, this will take the only bit left in svp64_record structure. We either need to find a clever way to compress the information we have there, or avoid introducing OE as Jacob suggests, or expand svp64_record structure, or introduce OE and never introduce anything else. Choose one. :-)