aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/asm_mipsx.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/asm_mipsx.s')
-rw-r--r--src/runtime/asm_mipsx.s5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/runtime/asm_mipsx.s b/src/runtime/asm_mipsx.s
index 87a1344e8f..1b550719d1 100644
--- a/src/runtime/asm_mipsx.s
+++ b/src/runtime/asm_mipsx.s
@@ -413,8 +413,11 @@ TEXT ·asmcgocall(SB),NOSPLIT,$0-12
// Figure out if we need to switch to m->g0 stack.
// We get called to create new OS threads too, and those
- // come in on the m->g0 stack already.
+ // come in on the m->g0 stack already. Or we might already
+ // be on the m->gsignal stack.
MOVW g_m(g), R5
+ MOVW m_gsignal(R5), R6
+ BEQ R6, g, g0
MOVW m_g0(R5), R6
BEQ R6, g, g0