diff options
author | Ken Thompson <ken@golang.org> | 2009-05-01 18:07:33 -0700 |
---|---|---|
committer | Ken Thompson <ken@golang.org> | 2009-05-01 18:07:33 -0700 |
commit | ba8d8dc621d588f01851e354f3b7f2a450a6908b (patch) | |
tree | 072a40e16653b63b345251d6aabee3b3535032f3 /src/runtime | |
parent | e9de0e7b7cc7913c45cc47cc77166ddb79b5d5e6 (diff) | |
download | golang-ba8d8dc621d588f01851e354f3b7f2a450a6908b.tar.gz |
code improvement
better calling of morestack
R=r
OCL=28179
CL=28179
Diffstat (limited to 'src/runtime')
-rw-r--r-- | src/runtime/amd64/asm.s | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/runtime/amd64/asm.s b/src/runtime/amd64/asm.s index 4557527b9..5efcac50e 100644 --- a/src/runtime/amd64/asm.s +++ b/src/runtime/amd64/asm.s @@ -87,6 +87,30 @@ TEXT gosave(SB), 7, $0 * support for morestack */ +// morestack trampolines +TEXT sys·morestack00+0(SB),7,$0 + MOVQ $0, AX + MOVQ AX, 8(R14) + MOVQ $sys·morestack+0(SB), AX + JMP AX + +TEXT sys·morestack01+0(SB),7,$0 + SHLQ $32, AX + MOVQ AX, 8(R14) + MOVQ $sys·morestack+0(SB), AX + JMP AX + +TEXT sys·morestack10+0(SB),7,$0 + MOVLQZX AX, AX + MOVQ AX, 8(R14) + MOVQ $sys·morestack+0(SB), AX + JMP AX + +TEXT sys·morestack11+0(SB),7,$0 + MOVQ AX, 8(R14) + MOVQ $sys·morestack+0(SB), AX + JMP AX + // return point when leaving new stack. save AX, jmp to lessstack to switch back TEXT retfromnewstack(SB), 7, $0 MOVQ AX, 16(R14) // save AX in m->cret |