aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/defs1_netbsd_386.go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2019-03-13 18:56:37 -0700
committerIan Lance Taylor <iant@golang.org>2019-03-15 03:37:49 +0000
commit0a7bc8f430e3e4017910780a898a5f20d337895b (patch)
tree05de8f86002d9e9313331d1c917fe88925625b81 /src/runtime/defs1_netbsd_386.go
parent829c140f149dba8933dea0cead3a78de4c83b529 (diff)
downloadgo-0a7bc8f430e3e4017910780a898a5f20d337895b.tar.gz
go-0a7bc8f430e3e4017910780a898a5f20d337895b.zip
runtime: introduce and consistently use setNsec for timespec
The general code for setting a timespec value sometimes used set_nsec and sometimes used a combination of set_sec and set_nsec. Standardize on a setNsec function that takes a number of nanoseconds and splits them up to set the tv_sec and tv_nsec fields. Consistently mark setNsec as go:nosplit, since it has to be that way on some systems including Darwin and GNU/Linux. Consistently use timediv on 32-bit systems to help stay within split-stack limits on processors that don't have a 64-bit division instruction. Change-Id: I6396bb7ddbef171a96876bdeaf7a1c585a6d725b Reviewed-on: https://go-review.googlesource.com/c/go/+/167389 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/runtime/defs1_netbsd_386.go')
-rw-r--r--src/runtime/defs1_netbsd_386.go9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/runtime/defs1_netbsd_386.go b/src/runtime/defs1_netbsd_386.go
index c26f417a02..3eae12eed0 100644
--- a/src/runtime/defs1_netbsd_386.go
+++ b/src/runtime/defs1_netbsd_386.go
@@ -106,12 +106,9 @@ type timespec struct {
tv_nsec int32
}
-func (ts *timespec) set_sec(x int32) {
- ts.tv_sec = int64(x)
-}
-
-func (ts *timespec) set_nsec(x int32) {
- ts.tv_nsec = x
+//go:nosplit
+func (ts *timespec) setNsec(ns int64) {
+ ts.tv_sec = int64(timediv(ns, 1e9, &ts.tv_nsec))
}
type timeval struct {