aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/linux
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2010-02-08 14:32:22 -0800
committerRuss Cox <rsc@golang.org>2010-02-08 14:32:22 -0800
commite4f06812c5c291e21c07bb19cc48f947f0a84060 (patch)
tree41eb3c4e31fa99fb0346ec5be84eaf00be902e44 /src/pkg/runtime/linux
parent49c42569138d027b7c7e68dbbe58fd1864045767 (diff)
downloadgo-e4f06812c5c291e21c07bb19cc48f947f0a84060.tar.xz
runtime: instrument malloc + garbage collector.
add simple garbage collection benchmark. R=iant CC=golang-dev https://golang.org/cl/204053
Diffstat (limited to 'src/pkg/runtime/linux')
-rw-r--r--src/pkg/runtime/linux/386/sys.s17
-rw-r--r--src/pkg/runtime/linux/amd64/sys.s15
2 files changed, 32 insertions, 0 deletions
diff --git a/src/pkg/runtime/linux/386/sys.s b/src/pkg/runtime/linux/386/sys.s
index 7f644cbf3f..ed7c155f1f 100644
--- a/src/pkg/runtime/linux/386/sys.s
+++ b/src/pkg/runtime/linux/386/sys.s
@@ -30,6 +30,23 @@ TEXT write(SB),7,$0
INT $0x80
RET
+TEXT gettime(SB), 7, $32
+ MOVL $78, AX // syscall - gettimeofday
+ LEAL 8(SP), BX
+ MOVL $0, CX
+ MOVL $0, DX
+ INT $0x80
+
+ MOVL 8(SP), BX // sec
+ MOVL sec+0(FP), DI
+ MOVL BX, (DI)
+ MOVL $0, 4(DI) // zero extend 32 -> 64 bits
+
+ MOVL 12(SP), BX // usec
+ MOVL usec+4(FP), DI
+ MOVL BX, (DI)
+ RET
+
TEXT rt_sigaction(SB),7,$0
MOVL $174, AX // syscall - rt_sigaction
MOVL 4(SP), BX
diff --git a/src/pkg/runtime/linux/amd64/sys.s b/src/pkg/runtime/linux/amd64/sys.s
index 8e0905ee15..18bf5b5092 100644
--- a/src/pkg/runtime/linux/amd64/sys.s
+++ b/src/pkg/runtime/linux/amd64/sys.s
@@ -44,6 +44,21 @@ TEXT ·write(SB),7,$0-24
SYSCALL
RET
+TEXT gettime(SB), 7, $32
+ LEAQ 8(SP), DI
+ MOVQ $0, SI
+ MOVQ $0xffffffffff600000, AX
+ CALL AX
+
+ MOVQ 8(SP), BX // sec
+ MOVQ sec+0(FP), DI
+ MOVQ BX, (DI)
+
+ MOVL 16(SP), BX // usec
+ MOVQ usec+8(FP), DI
+ MOVL BX, (DI)
+ RET
+
TEXT rt_sigaction(SB),7,$0-32
MOVL 8(SP), DI
MOVQ 16(SP), SI