...

Source file src/runtime/os_netbsd_arm64.go

     1	// Copyright 2019 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	package runtime
     6	
     7	import "unsafe"
     8	
     9	func lwp_mcontext_init(mc *mcontextt, stk unsafe.Pointer, mp *m, gp *g, fn uintptr) {
    10		// Machine dependent mcontext initialisation for LWP.
    11		mc.__gregs[_REG_ELR] = uint64(funcPC(lwp_tramp))
    12		mc.__gregs[_REG_X31] = uint64(uintptr(stk))
    13		mc.__gregs[_REG_X0] = uint64(uintptr(unsafe.Pointer(mp)))
    14		mc.__gregs[_REG_X1] = uint64(uintptr(unsafe.Pointer(mp.g0)))
    15		mc.__gregs[_REG_X2] = uint64(fn)
    16	}
    17	
    18	//go:nosplit
    19	func cputicks() int64 {
    20		// Currently cputicks() is used in blocking profiler and to seed runtime·fastrand().
    21		// runtime·nanotime() is a poor approximation of CPU ticks that is enough for the profiler.
    22		// TODO: need more entropy to better seed fastrand.
    23		return nanotime()
    24	}
    25	

View as plain text