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
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
// 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
// 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)
// 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
// 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
// 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