aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/linux
diff options
context:
space:
mode:
authorHector Chu <hectorchu@gmail.com>2010-01-06 17:58:55 -0800
committerRuss Cox <rsc@golang.org>2010-01-06 17:58:55 -0800
commit6bfe5f55f4dc110ca43a202a6a5eb70ee477916b (patch)
tree3ef0b1e03a660d7e220471a0ae9485cc16756632 /src/pkg/runtime/linux
parent5c07e0c17ce6a0627a2fe4bbc4254b322ec879ce (diff)
downloadgo-6bfe5f55f4dc110ca43a202a6a5eb70ee477916b.tar.xz
Ported runtime to Windows.
R=rsc CC=golang-dev https://golang.org/cl/176066
Diffstat (limited to 'src/pkg/runtime/linux')
-rw-r--r--src/pkg/runtime/linux/386/sys.s15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/pkg/runtime/linux/386/sys.s b/src/pkg/runtime/linux/386/sys.s
index 72882cb9dc..f734a68338 100644
--- a/src/pkg/runtime/linux/386/sys.s
+++ b/src/pkg/runtime/linux/386/sys.s
@@ -40,9 +40,10 @@ TEXT rt_sigaction(SB),7,$0
RET
TEXT sigtramp(SB),7,$0
- MOVL m, BP
+ get_tls(CX)
+ MOVL m(CX), BP
MOVL m_gsignal(BP), AX
- MOVL AX, g
+ MOVL AX, g(CX)
JMP sighandler(SB)
TEXT sigignore(SB),7,$0
@@ -50,9 +51,10 @@ TEXT sigignore(SB),7,$0
TEXT sigreturn(SB),7,$0
// g = m->curg
- MOVL m, BP
+ get_tls(CX)
+ MOVL m(CX), BP
MOVL m_curg(BP), BP
- MOVL BP, g
+ MOVL BP, g(CX)
MOVL $173, AX // rt_sigreturn
INT $0x80
INT $3 // not reached
@@ -149,8 +151,9 @@ TEXT clone(SB),7,$0
MOVW DI, GS
// Now segment is established. Initialize m, g.
- MOVL DX, g
- MOVL BX, m
+ get_tls(AX)
+ MOVL DX, g(AX)
+ MOVL BX, m(AX)
CALL stackcheck(SB) // smashes AX
MOVL 0(DX), DX // paranoia; check they are not nil