Michael Kerrisk writes:

> Thanks for taking the time time to provide all that detail.  Is that
> otherwise documented somewhere?

The little-endian mode is documented in the Power Architecture
specification, available from the page at:

http://www.power.org/resources/downloads/

Most of what I wrote was just expanding on the consequences of both
instructions and data changing endianness.

> And by the way, what do you call this system call?

endian_switch(), I guess.

> So I'm not quite comprehending something in the example program.  It's
> changing from big-endian to little-endian, right?  So what happens
> when do_le_switch() returns?  (Or is this function simply inlined
> code?)  Above, you just said the stack frames will no longer make
> sense...  (I suppose more generally, I'm wondering: given that the
> endianess of instructions changes dynamically after this call, it
> sounds to me like compiled C code would no longer execute after the
> switch.  Clearly, I'm missing something.)

The ".long 0x02000044" is a system call instruction in little-endian
format.  So the "sc" (system call) in the asm switches from big-endian
to little-endian, and the ".long 0x02000044" immediately switches back
to big-endian (since the syscall doesn't alter the syscall number in
r0, it's still valid for the second syscall).

If the endianness doesn't get change to little-endian, then since
0x02000044 is an illegal instruction in big-endian mode, the program
will get a SIGILL, which it catches and reports failure.

Paul.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to