https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71917
--- Comment #8 from Matthew Fortune <matthew.fortune at imgtec dot com> --- (In reply to Eric Botcazou from comment #7) > > 2016-07-13 Matthew Fortune <matthew.fort...@imgtec.com> > > > > * interpret-run.cc: Use ffi_arg for FFI integer return types. > > so we now have a double adjustment on 64-bit big-endian and this breaks. > Maybe there is something missing for little-endian MIPS in java_raw_api.c. 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. The layers involved in this have however exceeded what I can fit in my head so I'll have to draw things out to try and understand what was/should-be/is happening. Is there any definition for the raw API? I've seen some reference to arguments being passed 'in the way a java stack works' but am not sure how that relates to FFI return values passed in registers.