diff --git a/src/runtime/sys_darwin_386.s b/src/runtime/sys_darwin_386.s index 9cffe3e424..45658d0ae6 100644 --- a/src/runtime/sys_darwin_386.s +++ b/src/runtime/sys_darwin_386.s @@ -200,7 +200,7 @@ systime: MOVL AX, 4(SP) MOVL $0, 8(SP) // time zone pointer MOVL $0, 12(SP) // required as of Sierra; Issue 16570 - MOVL $116, AX + MOVL $116, AX // SYS_GETTIMEOFDAY INT $0x80 CMPL AX, $0 JNE inreg diff --git a/src/runtime/sys_darwin_amd64.s b/src/runtime/sys_darwin_amd64.s index 8d1b9b11d9..a15ac3e158 100644 --- a/src/runtime/sys_darwin_amd64.s +++ b/src/runtime/sys_darwin_amd64.s @@ -158,7 +158,7 @@ systime: MOVQ SP, DI MOVQ $0, SI MOVQ $0, DX // required as of Sierra; Issue 16570 - MOVL $(0x2000000+116), AX + MOVL $(0x2000000+116), AX // gettimeofday SYSCALL CMPQ AX, $0 JNE inreg diff --git a/src/runtime/sys_dragonfly_amd64.s b/src/runtime/sys_dragonfly_amd64.s index 77fb525aa3..fd960e608a 100644 --- a/src/runtime/sys_dragonfly_amd64.s +++ b/src/runtime/sys_dragonfly_amd64.s @@ -150,7 +150,7 @@ TEXT runtime·setitimer(SB), NOSPLIT, $-8 // func now() (sec int64, nsec int32) TEXT time·now(SB), NOSPLIT, $32 - MOVL $232, AX + MOVL $232, AX // clock_gettime MOVQ $0, DI // CLOCK_REALTIME LEAQ 8(SP), SI SYSCALL diff --git a/src/runtime/sys_freebsd_386.s b/src/runtime/sys_freebsd_386.s index b37abcef95..7f3cd56cad 100644 --- a/src/runtime/sys_freebsd_386.s +++ b/src/runtime/sys_freebsd_386.s @@ -161,7 +161,7 @@ TEXT runtime·setitimer(SB), NOSPLIT, $-4 // func now() (sec int64, nsec int32) TEXT time·now(SB), NOSPLIT, $32 - MOVL $232, AX + MOVL $232, AX // clock_gettime LEAL 12(SP), BX MOVL $0, 4(SP) // CLOCK_REALTIME MOVL BX, 8(SP) diff --git a/src/runtime/sys_freebsd_amd64.s b/src/runtime/sys_freebsd_amd64.s index c3912f7101..118febde47 100644 --- a/src/runtime/sys_freebsd_amd64.s +++ b/src/runtime/sys_freebsd_amd64.s @@ -144,7 +144,7 @@ TEXT runtime·setitimer(SB), NOSPLIT, $-8 // func now() (sec int64, nsec int32) TEXT time·now(SB), NOSPLIT, $32 - MOVL $232, AX + MOVL $232, AX // clock_gettime MOVQ $0, DI // CLOCK_REALTIME LEAQ 8(SP), SI SYSCALL diff --git a/src/runtime/sys_linux_arm64.s b/src/runtime/sys_linux_arm64.s index 3bf2e97972..1b91b4499d 100644 --- a/src/runtime/sys_linux_arm64.s +++ b/src/runtime/sys_linux_arm64.s @@ -184,14 +184,12 @@ TEXT runtime·mincore(SB),NOSPLIT,$-8-28 // func now() (sec int64, nsec int32) TEXT time·now(SB),NOSPLIT,$24-12 - MOVD RSP, R0 - MOVD $0, R1 - MOVD $SYS_gettimeofday, R8 + MOVW $0, R0 // CLOCK_REALTIME + MOVD RSP, R1 + MOVD $SYS_clock_gettime, R8 SVC MOVD 0(RSP), R3 // sec - MOVD 8(RSP), R5 // usec - MOVD $1000, R4 - MUL R4, R5 + MOVD 8(RSP), R5 // nsec MOVD R3, sec+0(FP) MOVW R5, nsec+8(FP) RET diff --git a/src/runtime/sys_linux_mips64x.s b/src/runtime/sys_linux_mips64x.s index 031a089214..5a75bb81ae 100644 --- a/src/runtime/sys_linux_mips64x.s +++ b/src/runtime/sys_linux_mips64x.s @@ -174,15 +174,12 @@ TEXT runtime·mincore(SB),NOSPLIT,$-8-28 // func now() (sec int64, nsec int32) TEXT time·now(SB),NOSPLIT,$16 - MOVV $0(R29), R4 - MOVV $0, R5 - MOVV $SYS_gettimeofday, R2 + MOVW $0, R4 // CLOCK_REALTIME + MOVV $0(R29), R5 + MOVV $SYS_clock_gettime, R2 SYSCALL MOVV 0(R29), R3 // sec - MOVV 8(R29), R5 // usec - MOVV $1000, R4 - MULVU R4, R5 - MOVV LO, R5 + MOVV 8(R29), R5 // nsec MOVV R3, sec+0(FP) MOVW R5, nsec+8(FP) RET