From: Meng Zhuo Date: Thu, 17 Oct 2024 06:25:20 +0000 (+0800) Subject: runtime: using ABIInternal on syscall for riscv64 X-Git-Tag: go1.24rc1~81 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=733df2bc0af0f73d7bc9ee49a0d805b010293212;p=gostls13.git runtime: using ABIInternal on syscall for riscv64 Change-Id: I550e6b9682df3a3ef75fba6da95c92a30da7bb22 Reviewed-on: https://go-review.googlesource.com/c/go/+/620755 Reviewed-by: Michael Pratt Reviewed-by: Michael Knyszek LUCI-TryBot-Result: Go LUCI --- diff --git a/src/runtime/sys_linux_riscv64.s b/src/runtime/sys_linux_riscv64.s index ffec2b5b75..0d4fb3b5d9 100644 --- a/src/runtime/sys_linux_riscv64.s +++ b/src/runtime/sys_linux_riscv64.s @@ -51,8 +51,7 @@ #define SYS_write 64 // func exit(code int32) -TEXT runtime·exit(SB),NOSPLIT|NOFRAME,$0-4 - MOVW code+0(FP), A0 +TEXT runtime·exit(SB),NOSPLIT,$0 MOV $SYS_exit_group, A7 ECALL RET @@ -95,23 +94,15 @@ TEXT runtime·closefd(SB),NOSPLIT|NOFRAME,$0-12 RET // func write1(fd uintptr, p unsafe.Pointer, n int32) int32 -TEXT runtime·write1(SB),NOSPLIT|NOFRAME,$0-28 - MOV fd+0(FP), A0 - MOV p+8(FP), A1 - MOVW n+16(FP), A2 +TEXT runtime·write1(SB),NOSPLIT,$0 MOV $SYS_write, A7 ECALL - MOVW A0, ret+24(FP) RET // func read(fd int32, p unsafe.Pointer, n int32) int32 -TEXT runtime·read(SB),NOSPLIT|NOFRAME,$0-28 - MOVW fd+0(FP), A0 - MOV p+8(FP), A1 - MOVW n+16(FP), A2 +TEXT runtime·read(SB),NOSPLIT,$0 MOV $SYS_read, A7 ECALL - MOVW A0, ret+24(FP) RET // func pipe2(flags int32) (r, w int32, errno int32) @@ -140,10 +131,9 @@ TEXT runtime·usleep(SB),NOSPLIT,$24-4 RET // func gettid() uint32 -TEXT runtime·gettid(SB),NOSPLIT,$0-4 +TEXT runtime·gettid(SB),NOSPLIT,$0 MOV $SYS_gettid, A7 ECALL - MOVW A0, ret+0(FP) RET // func raise(sig uint32) @@ -167,67 +157,45 @@ TEXT runtime·raiseproc(SB),NOSPLIT|NOFRAME,$0 RET // func getpid() int -TEXT ·getpid(SB),NOSPLIT|NOFRAME,$0-8 +TEXT ·getpid(SB),NOSPLIT,$0 MOV $SYS_getpid, A7 ECALL - MOV A0, ret+0(FP) RET // func tgkill(tgid, tid, sig int) -TEXT ·tgkill(SB),NOSPLIT|NOFRAME,$0-24 - MOV tgid+0(FP), A0 - MOV tid+8(FP), A1 - MOV sig+16(FP), A2 +TEXT ·tgkill(SB),NOSPLIT,$0 MOV $SYS_tgkill, A7 ECALL RET // func setitimer(mode int32, new, old *itimerval) -TEXT runtime·setitimer(SB),NOSPLIT|NOFRAME,$0-24 - MOVW mode+0(FP), A0 - MOV new+8(FP), A1 - MOV old+16(FP), A2 +TEXT runtime·setitimer(SB),NOSPLIT,$0 MOV $SYS_setitimer, A7 ECALL RET // func timer_create(clockid int32, sevp *sigevent, timerid *int32) int32 -TEXT runtime·timer_create(SB),NOSPLIT,$0-28 - MOVW clockid+0(FP), A0 - MOV sevp+8(FP), A1 - MOV timerid+16(FP), A2 +TEXT runtime·timer_create(SB),NOSPLIT,$0 MOV $SYS_timer_create, A7 ECALL - MOVW A0, ret+24(FP) RET // func timer_settime(timerid int32, flags int32, new, old *itimerspec) int32 -TEXT runtime·timer_settime(SB),NOSPLIT,$0-28 - MOVW timerid+0(FP), A0 - MOVW flags+4(FP), A1 - MOV new+8(FP), A2 - MOV old+16(FP), A3 +TEXT runtime·timer_settime(SB),NOSPLIT,$0 MOV $SYS_timer_settime, A7 ECALL - MOVW A0, ret+24(FP) RET // func timer_delete(timerid int32) int32 -TEXT runtime·timer_delete(SB),NOSPLIT,$0-12 - MOVW timerid+0(FP), A0 +TEXT runtime·timer_delete(SB),NOSPLIT,$0 MOV $SYS_timer_delete, A7 ECALL - MOVW A0, ret+8(FP) RET // func mincore(addr unsafe.Pointer, n uintptr, dst *byte) int32 -TEXT runtime·mincore(SB),NOSPLIT|NOFRAME,$0-28 - MOV addr+0(FP), A0 - MOV n+8(FP), A1 - MOV dst+16(FP), A2 +TEXT runtime·mincore(SB),NOSPLIT,$0 MOV $SYS_mincore, A7 ECALL - MOVW A0, ret+24(FP) RET // func walltime() (sec int64, nsec int32) @@ -393,14 +361,9 @@ TEXT runtime·rtsigprocmask(SB),NOSPLIT|NOFRAME,$0-28 RET // func rt_sigaction(sig uintptr, new, old *sigactiont, size uintptr) int32 -TEXT runtime·rt_sigaction(SB),NOSPLIT|NOFRAME,$0-36 - MOV sig+0(FP), A0 - MOV new+8(FP), A1 - MOV old+16(FP), A2 - MOV size+24(FP), A3 +TEXT runtime·rt_sigaction(SB),NOSPLIT,$0 MOV $SYS_rt_sigaction, A7 ECALL - MOVW A0, ret+32(FP) RET // func sigfwd(fn uintptr, sig uint32, info *siginfo, ctx unsafe.Pointer) @@ -466,26 +429,15 @@ TEXT runtime·munmap(SB),NOSPLIT|NOFRAME,$0 RET // func madvise(addr unsafe.Pointer, n uintptr, flags int32) -TEXT runtime·madvise(SB),NOSPLIT|NOFRAME,$0 - MOV addr+0(FP), A0 - MOV n+8(FP), A1 - MOVW flags+16(FP), A2 +TEXT runtime·madvise(SB),NOSPLIT,$0 MOV $SYS_madvise, A7 ECALL - MOVW A0, ret+24(FP) RET // func futex(addr unsafe.Pointer, op int32, val uint32, ts, addr2 unsafe.Pointer, val3 uint32) int32 -TEXT runtime·futex(SB),NOSPLIT|NOFRAME,$0 - MOV addr+0(FP), A0 - MOVW op+8(FP), A1 - MOVW val+12(FP), A2 - MOV ts+16(FP), A3 - MOV addr2+24(FP), A4 - MOVW val3+32(FP), A5 +TEXT runtime·futex(SB),NOSPLIT,$0 MOV $SYS_futex, A7 ECALL - MOVW A0, ret+40(FP) RET // func clone(flags int32, stk, mp, gp, fn unsafe.Pointer) int32 @@ -559,26 +511,21 @@ TEXT runtime·sigaltstack(SB),NOSPLIT|NOFRAME,$0 RET // func osyield() -TEXT runtime·osyield(SB),NOSPLIT|NOFRAME,$0 +TEXT runtime·osyield(SB),NOSPLIT,$0 MOV $SYS_sched_yield, A7 ECALL RET // func sched_getaffinity(pid, len uintptr, buf *uintptr) int32 -TEXT runtime·sched_getaffinity(SB),NOSPLIT|NOFRAME,$0 - MOV pid+0(FP), A0 - MOV len+8(FP), A1 - MOV buf+16(FP), A2 +TEXT runtime·sched_getaffinity(SB),NOSPLIT,$0 MOV $SYS_sched_getaffinity, A7 ECALL - MOV A0, ret+24(FP) RET // func sbrk0() uintptr -TEXT runtime·sbrk0(SB),NOSPLIT,$0-8 +TEXT runtime·sbrk0(SB),NOSPLIT,$0 // Implemented as brk(NULL). - MOV $0, A0 + MOV ZERO, A0 MOV $SYS_brk, A7 ECALL - MOVW A0, ret+0(FP) RET