From: Dave Cheney Date: Tue, 1 Jan 2013 10:47:42 +0000 (+1100) Subject: runtime: fix freebsd/arm instruction cache flush X-Git-Tag: go1.1rc2~1510 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c2d2bfcc4908ca7ab94abf5479f28694b2d1efa8;p=gostls13.git runtime: fix freebsd/arm instruction cache flush sysarch requires arguments to be passed on the stack, not in registers. Credit to Shenghou Ma (minux) for the fix. R=minux.ma, devon.odell CC=golang-dev https://golang.org/cl/7037043 --- diff --git a/src/pkg/runtime/sys_freebsd_arm.s b/src/pkg/runtime/sys_freebsd_arm.s index 0c30d44957..2c90a7ea52 100644 --- a/src/pkg/runtime/sys_freebsd_arm.s +++ b/src/pkg/runtime/sys_freebsd_arm.s @@ -244,11 +244,16 @@ TEXT runtime·sigprocmask(SB),7,$0 MOVW.CS R9, (R9) RET -TEXT runtime·cacheflush(SB),7,$0 +TEXT runtime·cacheflush(SB),7,$8 + MOVW $1, R0 // drain_writebuf + SWI $165 // sysarch MOVW $0, R0 // icacheflush MOVW 0(FP), R1 // start + MOVW R1, 4(R13) MOVW 4(FP), R2 // end SUB R1, R2 // R2 = length + MOVW R2, 8(R13) + MOVW $4(R13), R1 SWI $165 // sysarch RET