@@ -218,6 +218,8 @@ TEXT runtime·rt_sigaction(SB),NOSPLIT|NOFRAME,$0-36
218
218
MOVV size + 24 (FP) , R7
219
219
MOVV $ SYS_rt_sigaction , R2
220
220
SYSCALL
221
+ BEQ R7 , 2 (PC)
222
+ SUBVU R2 , R0 , R2 // caller expects negative errno
221
223
MOVW R2 , ret + 32 (FP)
222
224
RET
223
225
@@ -299,6 +301,8 @@ TEXT runtime·futex(SB),NOSPLIT|NOFRAME,$0
299
301
MOVW val3 + 32 (FP) , R9
300
302
MOVV $ SYS_futex , R2
301
303
SYSCALL
304
+ BEQ R7 , 2 (PC)
305
+ SUBVU R2 , R0 , R2 // caller expects negative errno
302
306
MOVW R2 , ret + 40 (FP)
303
307
RET
304
308
@@ -321,6 +325,8 @@ TEXT runtime·clone(SB),NOSPLIT|NOFRAME,$0
321
325
322
326
MOVV $ SYS_clone , R2
323
327
SYSCALL
328
+ BEQ R7 , 2 (PC)
329
+ SUBVU R2 , R0 , R2 // caller expects negative errno
324
330
325
331
// In parent , return.
326
332
BEQ R2 , 3 (PC)
@@ -383,6 +389,8 @@ TEXT runtime·sched_getaffinity(SB),NOSPLIT|NOFRAME,$0
383
389
MOVV buf + 16 (FP) , R6
384
390
MOVV $ SYS_sched_getaffinity , R2
385
391
SYSCALL
392
+ BEQ R7 , 2 (PC)
393
+ SUBVU R2 , R0 , R2 // caller expects negative errno
386
394
MOVW R2 , ret + 24 (FP)
387
395
RET
388
396
@@ -391,6 +399,8 @@ TEXT runtime·epollcreate(SB),NOSPLIT|NOFRAME,$0
391
399
MOVW size + 0 (FP) , R4
392
400
MOVV $ SYS_epoll_create , R2
393
401
SYSCALL
402
+ BEQ R7 , 2 (PC)
403
+ SUBVU R2 , R0 , R2 // caller expects negative errno
394
404
MOVW R2 , ret + 8 (FP)
395
405
RET
396
406
@@ -399,6 +409,8 @@ TEXT runtime·epollcreate1(SB),NOSPLIT|NOFRAME,$0
399
409
MOVW flags + 0 (FP) , R4
400
410
MOVV $ SYS_epoll_create1 , R2
401
411
SYSCALL
412
+ BEQ R7 , 2 (PC)
413
+ SUBVU R2 , R0 , R2 // caller expects negative errno
402
414
MOVW R2 , ret + 8 (FP)
403
415
RET
404
416
@@ -424,6 +436,8 @@ TEXT runtime·epollwait(SB),NOSPLIT|NOFRAME,$0
424
436
MOVV $ 0 , R8
425
437
MOVV $ SYS_epoll_pwait , R2
426
438
SYSCALL
439
+ BEQ R7 , 2 (PC)
440
+ SUBVU R2 , R0 , R2 // caller expects negative errno
427
441
MOVW R2 , ret + 24 (FP)
428
442
RET
429
443
0 commit comments