[OpenBIOS] [PATCH] sparc64: fix registers dealing with client

Igor Kovalenko igor.v.kovalenko at gmail.com
Mon Jul 6 06:54:32 CEST 2009


Hi!

This patch improves previous proposal and adds:

- save/restore global registers across client interface calls.
Since OS kernel generally has it's own idea of what
the ABI is we have to follow this requirement.

- adjust stack to allow using unoptimized openbios
build with linux kernel. Linux provides only 128 bytes
on stack which is not enough to save arguments by
code generated with gcc -O0

- fix switch_to so it actually could be used to switch
to client image. context pointer must be volatile to
prevent gcc optimizing out stores to it.

Signed-off-by: igor.v.kovalenko at gmail.com

-- 
Kind regards,
Igor V. Kovalenko
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sparc64-call-client-preserve-stack-globals
Type: application/octet-stream
Size: 8594 bytes
Desc: not available
URL: <http://lists.openbios.org/pipermail/openbios/attachments/20090706/73f9ee58/attachment-0001.dmg>


More information about the OpenBIOS mailing list