From 74930d75e7d4db2fda0fc6c6d0c033eb04e6f0de Mon Sep 17 00:00:00 2001 From: Joel Dice Date: Thu, 24 Jun 2010 19:35:07 -0600 Subject: [PATCH] update PowerPC assembly Thread field offsets The new Thread::defaultHeap declaration has increased the offset of all the fields following it. This commit also makes vmInvoke_returnAddress global so it can be refered to from compile.cpp. --- src/compile-powerpc.S | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/compile-powerpc.S b/src/compile-powerpc.S index e967a3dfd7..b732f893ea 100644 --- a/src/compile-powerpc.S +++ b/src/compile-powerpc.S @@ -24,12 +24,12 @@ # define GLOBAL(x) x #endif -#define THREAD_STACK 108 -#define THREAD_CONTINUATION 112 +#define THREAD_STACK 2152 +#define THREAD_CONTINUATION 2156 #define THREAD_EXCEPTION 44 -#define THREAD_EXCEPTION_STACK_ADJUSTMENT 116 -#define THREAD_EXCEPTION_OFFSET 120 -#define THREAD_EXCEPTION_HANDLER 124 +#define THREAD_EXCEPTION_STACK_ADJUSTMENT 2160 +#define THREAD_EXCEPTION_OFFSET 2164 +#define THREAD_EXCEPTION_HANDLER 2168 #define CONTINUATION_NEXT 4 #define CONTINUATION_ADDRESS 16 @@ -104,7 +104,8 @@ LOCAL(vmInvoke_argumentTest): mtctr r4 bctrl -LOCAL(vmInvoke_returnAddress): +.globl GLOBAL(vmInvoke_returnAddress) +GLOBAL(vmInvoke_returnAddress): // restore stack pointer lwz r1,0(r1) @@ -150,7 +151,7 @@ LOCAL(vmInvoke_continuationTest): LOCAL(vmInvoke_getPC): mflr r10 - la r10,lo16(LOCAL(vmInvoke_returnAddress)-LOCAL(vmInvoke_getPC))(r10) + la r10,lo16(GLOBAL(vmInvoke_returnAddress)-LOCAL(vmInvoke_getPC))(r10) stwx r10,r1,r7 lwz r7,CONTINUATION_FRAME_POINTER_OFFSET(r5) @@ -283,7 +284,7 @@ LOCAL(vmJumpAndInvoke_argumentTest): LOCAL(vmJumpAndInvoke_getPC): mflr r10 - la r10,lo16(LOCAL(vmInvoke_returnAddress)-LOCAL(vmJumpAndInvoke_getPC))(r10) + la r10,lo16(GLOBAL(vmInvoke_returnAddress)-LOCAL(vmJumpAndInvoke_getPC))(r10) mtlr r10 mtctr r4