aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/linux/arm/sys.s
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2010-09-07 09:57:22 -0400
committerRuss Cox <rsc@golang.org>2010-09-07 09:57:22 -0400
commitd4cc557b0d61ac02d0ff153ecd643867e803ed1f (patch)
treec8301a638fd5010bb90b6a6d415ec371c74ba3ce /src/pkg/runtime/linux/arm/sys.s
parent6f5f558c101a5948f1d90007fe93159804743bb6 (diff)
downloadgo-d4cc557b0d61ac02d0ff153ecd643867e803ed1f.tar.xz
runtime: use manual stack for garbage collection
Old code was using recursion to traverse object graph. New code uses an explicit stack, cutting the per-pointer footprint to two words during the recursion and avoiding the standard allocator and stack splitting code. in test/garbage: Reduces parser runtime by 2-3% Reduces Peano runtime by 40% Increases tree runtime by 4-5% R=r CC=golang-dev https://golang.org/cl/2150042
Diffstat (limited to 'src/pkg/runtime/linux/arm/sys.s')
-rw-r--r--src/pkg/runtime/linux/arm/sys.s8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/pkg/runtime/linux/arm/sys.s b/src/pkg/runtime/linux/arm/sys.s
index f30aed0012..6824e29e85 100644
--- a/src/pkg/runtime/linux/arm/sys.s
+++ b/src/pkg/runtime/linux/arm/sys.s
@@ -25,6 +25,7 @@
#define SYS_gettid (SYS_BASE + 224)
#define SYS_futex (SYS_BASE + 240)
#define SYS_exit_group (SYS_BASE + 248)
+#define SYS_munmap (SYS_BASE + 91)
#define ARM_BASE (SYS_BASE + 0x0f0000)
#define SYS_ARM_cacheflush (ARM_BASE + 2)
@@ -64,6 +65,13 @@ TEXT ·mmap(SB),7,$0
SWI $0
RET
+TEXT ·mmap(SB),7,$0
+ MOVW 0(FP), R0
+ MOVW 4(FP), R1
+ MOVW $SYS_munmap, R7
+ SWI $0
+ RET
+
TEXT gettime(SB),7,$32
/* dummy version - return 0,0 */
MOVW $0, R1