Source file
src/runtime/os_netbsd_arm.go
1
2
3
4
5 package runtime
6
7 import (
8 "internal/abi"
9 "unsafe"
10 )
11
12 func lwp_mcontext_init(mc *mcontextt, stk unsafe.Pointer, mp *m, gp *g, fn uintptr) {
13
14 mc.__gregs[_REG_R15] = uint32(abi.FuncPCABI0(lwp_tramp))
15 mc.__gregs[_REG_R13] = uint32(uintptr(stk))
16 mc.__gregs[_REG_R0] = uint32(uintptr(unsafe.Pointer(mp)))
17 mc.__gregs[_REG_R1] = uint32(uintptr(unsafe.Pointer(gp)))
18 mc.__gregs[_REG_R2] = uint32(fn)
19 }
20
21 func checkgoarm() {
22
23
24
25 if getncpu() > 1 && goarm < 7 {
26 print("runtime: this system has multiple CPUs and must use\n")
27 print("atomic synchronization instructions. Recompile using GOARM=7.\n")
28 exit(1)
29 }
30 }
31
32
33 func cputicks() int64 {
34
35
36 return nanotime()
37 }
38
View as plain text