diff --git a/src/runtime/sys_linux_amd64.s b/src/runtime/sys_linux_amd64.s index c2b1376fa9..bf539aa0da 100644 --- a/src/runtime/sys_linux_amd64.s +++ b/src/runtime/sys_linux_amd64.s @@ -82,15 +82,18 @@ TEXT runtime·usleep(SB),NOSPLIT,$16 MOVL $1000000, CX DIVL CX MOVQ AX, 0(SP) - MOVQ DX, 8(SP) + MOVL $1000, AX // usec to nsec + MULL DX + MOVQ AX, 8(SP) - // select(0, 0, 0, 0, &tv) + // pselect6(0, 0, 0, 0, &ts, 0) MOVL $0, DI MOVL $0, SI MOVL $0, DX MOVL $0, R10 MOVQ SP, R8 - MOVL $23, AX + MOVL $0, R9 + MOVL $270, AX SYSCALL RET diff --git a/src/runtime/sys_linux_arm.s b/src/runtime/sys_linux_arm.s index 0244613e67..64beed8f68 100644 --- a/src/runtime/sys_linux_arm.s +++ b/src/runtime/sys_linux_arm.s @@ -36,7 +36,7 @@ #define SYS_gettid (SYS_BASE + 224) #define SYS_tkill (SYS_BASE + 238) #define SYS_sched_yield (SYS_BASE + 158) -#define SYS_select (SYS_BASE + 142) // newselect +#define SYS_pselect6 (SYS_BASE + 335) #define SYS_ugetrlimit (SYS_BASE + 191) #define SYS_sched_getaffinity (SYS_BASE + 242) #define SYS_clock_gettime (SYS_BASE + 263) @@ -388,13 +388,16 @@ TEXT runtime·usleep(SB),NOSPLIT,$12 MOVW usec+0(FP), R0 CALL runtime·usplitR0(SB) MOVW R0, 4(R13) + MOVW $1000, R0 // usec to nsec + MUL R0, R1 MOVW R1, 8(R13) MOVW $0, R0 MOVW $0, R1 MOVW $0, R2 MOVW $0, R3 MOVW $4(R13), R4 - MOVW $SYS_select, R7 + MOVW $0, R5 + MOVW $SYS_pselect6, R7 SWI $0 RET