From: Shenghou Ma Date: Wed, 13 Aug 2014 03:57:42 +0000 (-0400) Subject: [dev.power64] runtime: fix morestack X-Git-Tag: go1.5beta1~2684^2~25^2~53 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=268d90119947d88063964211c0f3b122fffc96a3;p=gostls13.git [dev.power64] runtime: fix morestack Must not save LR. LGTM=rsc R=rsc, iant CC=golang-codereviews https://golang.org/cl/129040044 --- diff --git a/src/pkg/runtime/asm_power64x.s b/src/pkg/runtime/asm_power64x.s index 5c67e19485..2fbaf5a53e 100644 --- a/src/pkg/runtime/asm_power64x.s +++ b/src/pkg/runtime/asm_power64x.s @@ -208,7 +208,7 @@ onm: // the top of a stack (for example, morestack calling newstack // calling the scheduler calling newm calling gc), so we must // record an argument size. For that purpose, it has no arguments. -TEXT runtime·morestack(SB),NOSPLIT,$0-0 +TEXT runtime·morestack(SB),NOSPLIT,$-8-0 // Cannot grow scheduler stack (m->g0). MOVD g_m(g), R7 MOVD m_g0(R7), R8 @@ -244,7 +244,7 @@ TEXT runtime·morestack(SB),NOSPLIT,$0-0 // is still in this function, and not the beginning of the next. UNDEF -TEXT runtime·morestack_noctxt(SB),NOSPLIT,$0-0 +TEXT runtime·morestack_noctxt(SB),NOSPLIT,$-8-0 MOVD R0, R11 BR runtime·morestack(SB) @@ -306,7 +306,7 @@ TEXT runtime·newstackcall(SB), NOSPLIT, $-8-20 BR (CTR) // Note: can't just "BR runtime·NAME(SB)" - bad inlining results. -TEXT reflect·call(SB), NOSPLIT, $0-24 +TEXT reflect·call(SB), NOSPLIT, $-8-24 MOVW argsize+16(FP), R3 DISPATCH(call16, 16) DISPATCH(call32, 32)