On Mon, Jun 17, 2019 at 10:25:10AM +0200, Greg Kurz wrote: 65;5603;1c> On Wed, 12 Jun 2019 12:07:23 +1000 > Alexey Kardashevskiy <a...@ozlabs.ru> wrote: > > > At the moment the rtas's Makefile uses generic QEMU rules which means > > that when QEMU is compiled on a little endian system, the spapr-rtas.bin > > is compiled as little endian too which is incorrect as it is always > > executed in big endian mode. > > I'm naively thinking that executing code compiled as little endian > in big endian mode would result in an exception... Can you explain > how/why this ever worked ?
Because basically nobody actually built the rtas blob from the sources, they just used the pre-compiled blob, which is correctly built BE. That said executing LE code in BE mode won't necessarily result in an exception - it'll just execute whatever the instructions are you get when you byte reverse the ones you inteded, which may or may not be valid. It's *likely* to cause an exception fairly soon, but the opcode space is densely populated enough that there's a good chance it won't cause an immediate illegal instruction. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature