runtime: fix wrong time calculation in semasleep

tv_nsec is added twice when calculating the sleep end time.

Issue golang/go#19200

Change-Id: Iec14565ac7ae2833750ac48fa431a97fe94256db
Reviewed-on: https://go-review.googlesource.com/41855
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/libgo/go/runtime/os_aix.go b/libgo/go/runtime/os_aix.go
index dfcd602..246b9c3 100644
--- a/libgo/go/runtime/os_aix.go
+++ b/libgo/go/runtime/os_aix.go
@@ -62,7 +62,7 @@
 			throw("clock_gettime")
 		}
 		ts.tv_sec += timespec_sec_t(ns / 1000000000)
-		ts.tv_nsec += timespec_nsec_t((int64(ts.tv_nsec) + ns) % 1000000000)
+		ts.tv_nsec += timespec_nsec_t(ns % 1000000000)
 		if ts.tv_nsec >= 1000000000 {
 			ts.tv_sec += timespec_sec_t(1)
 			ts.tv_nsec -= timespec_nsec_t(1000000000)