runtime: debugging help on 386

R=r
CC=golang-dev
https://golang.org/cl/3502041
diff --git a/src/pkg/runtime/386/asm.s b/src/pkg/runtime/386/asm.s
index deb7b12..84f5367 100644
--- a/src/pkg/runtime/386/asm.s
+++ b/src/pkg/runtime/386/asm.s
@@ -177,7 +177,9 @@
 	// Call newstack on m's scheduling stack.
 	MOVL	m_g0(BX), BP
 	MOVL	BP, g(CX)
-	MOVL	(m_sched+gobuf_sp)(BX), SP
+	MOVL	(m_sched+gobuf_sp)(BX), AX
+	MOVL	-4(AX), BX	// fault if CALL would, before smashing SP
+	MOVL	AX, SP
 	CALL	runtime·newstack(SB)
 	MOVL	$0, 0x1003	// crash if newstack returns
 	RET