https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71917
--- Comment #10 from Matthew Fortune <matthew.fortune at imgtec dot com> --- (In reply to Eric Botcazou from comment #9) > > I'll certainly check on this but I did run the fix on both big and little > > endian MIPS which seems to suggest there isn't a double adjustment overall. > > So this was broken in 64-bit big-endian too before your fix? Ah, I did BE/LE 32-bit and LE 64-bit. The bug was seen on LE 64-bit. I'm getting my head around this now! The conversion functions will need to perform the 32-bit to 64-bit sign extension but do nothing for the reverse. I think this means that only the raw-to-rvalue needs updating based on the function names. I'll give it a go.