From: Guoqi Chen Date: Tue, 28 Mar 2023 21:08:28 +0000 (+0800) Subject: runtime: calculate nanoseconds in usleep on linux/loong64 X-Git-Tag: go1.21rc1~631 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=93897960cb8462f5eefeaffeaa938fb9de5155e7;p=gostls13.git runtime: calculate nanoseconds in usleep on linux/loong64 Change-Id: Ia4cfdea3df8834e6260527ce8e6e894a0547070f Reviewed-on: https://go-review.googlesource.com/c/go/+/425299 Reviewed-by: xiaodong liu Reviewed-by: Ian Lance Taylor Auto-Submit: Ian Lance Taylor Run-TryBot: WANG Xuerui Reviewed-by: Bryan Mills TryBot-Result: Gopher Robot Run-TryBot: Ian Lance Taylor Reviewed-by: WANG Xuerui Reviewed-by: Meidan Li --- diff --git a/src/runtime/sys_linux_loong64.s b/src/runtime/sys_linux_loong64.s index 006c4bf2d5..486a9b1570 100644 --- a/src/runtime/sys_linux_loong64.s +++ b/src/runtime/sys_linux_loong64.s @@ -120,19 +120,19 @@ TEXT runtime·pipe2(SB),NOSPLIT|NOFRAME,$0-20 // func usleep(usec uint32) TEXT runtime·usleep(SB),NOSPLIT,$16-4 - MOVWU usec+0(FP), R6 - MOVV R6, R5 - MOVW $1000000, R4 - DIVVU R4, R6, R6 - MOVV R6, 8(R3) - MOVW $1000, R4 - MULVU R6, R4, R4 - SUBVU R4, R5 - MOVV R5, 16(R3) + MOVWU usec+0(FP), R7 + MOVV $1000, R6 + MULVU R6, R7, R7 + MOVV $1000000000, R6 + + DIVVU R6, R7, R5 // ts->tv_sec + REMVU R6, R7, R4 // ts->tv_nsec + MOVV R5, 8(R3) + MOVV R4, 16(R3) // nanosleep(&ts, 0) ADDV $8, R3, R4 - MOVW $0, R5 + MOVV R0, R5 MOVV $SYS_nanosleep, R11 SYSCALL RET