aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/runtime/sys_linux_loong64.s20
1 files changed, 10 insertions, 10 deletions
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