// func now() (sec int64, nsec int32)
TEXT time·now(SB),NOSPLIT,$16
- MOVD $0(R15), R2
- MOVD $0, R3
- MOVW $SYS_gettimeofday, R1
- SYSCALL
- MOVD 0(R15), R2 // sec
- MOVD 8(R15), R4 // usec
- MOVD $1000, R3
- MULLD R3, R4
+ MOVW $0, R2 // CLOCK_REALTIME
+ MOVD $tp-16(SP), R3
+ MOVW $SYS_clock_gettime, R1
+ SYSCALL
+ LMG tp-16(SP), R2, R3
+ // sec is in R2, nsec in R3
MOVD R2, sec+0(FP)
- MOVW R4, nsec+8(FP)
+ MOVW R3, nsec+8(FP)
RET
TEXT runtime·nanotime(SB),NOSPLIT,$16
MOVW $1, R2 // CLOCK_MONOTONIC
- MOVD $0(R15), R3
+ MOVD $tp-16(SP), R3
MOVW $SYS_clock_gettime, R1
SYSCALL
- MOVD 0(R15), R2 // sec
- MOVD 8(R15), R4 // nsec
- // sec is in R2, nsec in R4
+ LMG tp-16(SP), R2, R3
+ // sec is in R2, nsec in R3
// return nsec in R2
- MOVD $1000000000, R3
- MULLD R3, R2
- ADD R4, R2
+ MULLD $1000000000, R2
+ ADD R3, R2
MOVD R2, ret+0(FP)
RET