mirror of
https://github.com/golang/go
synced 2024-11-12 09:50:21 -07:00
runtime: fix cgo_topofstack to save clobbered registers
Fixes #8816 At least, I hope it does. TBR=rsc CC=golang-codereviews https://golang.org/cl/153730043
This commit is contained in:
parent
f6fc14094a
commit
e1364a6d0e
@ -1303,9 +1303,17 @@ yieldloop:
|
||||
|
||||
// Called from cgo wrappers, this function returns g->m->curg.stack.hi.
|
||||
// Must obey the gcc calling convention.
|
||||
TEXT _cgo_topofstack(SB),NOSPLIT,$0
|
||||
TEXT _cgo_topofstack(SB),NOSPLIT,$8
|
||||
// R11 and g register are clobbered by load_g. They are
|
||||
// callee-save in the gcc calling convention, so save them here.
|
||||
MOVW R11, saveR11-4(SP)
|
||||
MOVW g, saveG-8(SP)
|
||||
|
||||
BL runtime·load_g(SB)
|
||||
MOVW g_m(g), R0
|
||||
MOVW m_curg(R0), R0
|
||||
MOVW (g_stack+stack_hi)(R0), R0
|
||||
|
||||
MOVW saveG-8(SP), g
|
||||
MOVW saveR11-4(SP), R11
|
||||
RET
|
||||
|
Loading…
Reference in New Issue
Block a user