Commit 30063b54 authored by André Hentschel's avatar André Hentschel Committed by Alexandre Julliard

libwine: Implemented the call_on_stack function for Sparc.

parent 4b028deb
......@@ -182,6 +182,19 @@ __ASM_GLOBAL_FUNC( wine_call_on_stack,
"mov PC, r2\n\t" /* call func */
"mov sp, r4\n\t" /* restore old sp from local var */
"pop {r4,PC}") /* fetch return address into pc */
#elif defined(__sparc__) && defined(__GNUC__)
__ASM_GLOBAL_FUNC( wine_call_on_stack,
"save %sp, -96, %sp\n\t" /* push: change register window */
"mov %sp, %l2\n\t" /* store old sp in local var */
"mov %i0, %l0\n\t" /* func */
"mov %i1, %l1\n\t" /* arg */
"sub %i2, 96, %sp\n\t" /* stack */
"call %l0, 0\n\t" /* call func */
"mov %l1, %o0\n\t" /* delay slot: arg for func */
"mov %l2, %sp\n\t" /* restore old sp from local var */
"mov %o0, %i0\n\t" /* move return value to right register window */
"ret\n\t" /* return */
"restore\n\t") /* delay slot: pop */
#else
#error You must implement wine_switch_to_stack for your platform
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment