From 5d59fa143ae1d0d8fdcc677297ce58bbfc592111 Mon Sep 17 00:00:00 2001 From: Wayne Zuo Date: Mon, 17 Oct 2022 21:58:56 +0800 Subject: all: delete riscv64 non-register ABI fallback path Change-Id: I9e997b59ffb868575b780b9660df1f5ac322b79a Reviewed-on: https://go-review.googlesource.com/c/go/+/443556 Reviewed-by: Cherry Mui TryBot-Result: Gopher Robot Run-TryBot: Wayne Zuo Reviewed-by: David Chase --- src/runtime/asm_riscv64.s | 97 ------------------------------------------- src/runtime/memclr_riscv64.s | 6 +-- src/runtime/memmove_riscv64.s | 8 ++-- 3 files changed, 5 insertions(+), 106 deletions(-) (limited to 'src/runtime') diff --git a/src/runtime/asm_riscv64.s b/src/runtime/asm_riscv64.s index 389851beb9..31b81aea12 100644 --- a/src/runtime/asm_riscv64.s +++ b/src/runtime/asm_riscv64.s @@ -268,11 +268,7 @@ TEXT runtime·procyield(SB),NOSPLIT,$0-0 // func mcall(fn func(*g)) TEXT runtime·mcall(SB), NOSPLIT|NOFRAME, $0-8 -#ifdef GOEXPERIMENT_regabiargs MOV X10, CTXT -#else - MOV fn+0(FP), CTXT -#endif // Save caller state in g->sched MOV X2, (g_sched+gobuf_sp)(g) @@ -644,7 +640,6 @@ TEXT ·checkASM(SB),NOSPLIT,$0-1 MOV T0, ret+0(FP) RET -#ifdef GOEXPERIMENT_regabiargs // spillArgs stores return values from registers to a *internal/abi.RegArgs in X25. TEXT ·spillArgs(SB),NOSPLIT,$0-0 MOV X10, (0*8)(X25) @@ -716,13 +711,6 @@ TEXT ·unspillArgs(SB),NOSPLIT,$0-0 MOVD (30*8)(X25), F22 MOVD (31*8)(X25), F23 RET -#else -TEXT ·spillArgs(SB),NOSPLIT,$0-0 - RET - -TEXT ·unspillArgs(SB),NOSPLIT,$0-0 - RET -#endif // gcWriteBarrier performs a heap pointer write and informs the GC. // @@ -832,157 +820,72 @@ flush: // corresponding runtime handler. // The tail call makes these stubs disappear in backtraces. TEXT runtime·panicIndex(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T0, X10 MOV T1, X11 -#else - MOV T0, x+0(FP) - MOV T1, y+8(FP) -#endif JMP runtime·goPanicIndex(SB) TEXT runtime·panicIndexU(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T0, X10 MOV T1, X11 -#else - MOV T0, x+0(FP) - MOV T1, y+8(FP) -#endif JMP runtime·goPanicIndexU(SB) TEXT runtime·panicSliceAlen(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T1, X10 MOV T2, X11 -#else - MOV T1, x+0(FP) - MOV T2, y+8(FP) -#endif JMP runtime·goPanicSliceAlen(SB) TEXT runtime·panicSliceAlenU(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T1, X10 MOV T2, X11 -#else - MOV T1, x+0(FP) - MOV T2, y+8(FP) -#endif JMP runtime·goPanicSliceAlenU(SB) TEXT runtime·panicSliceAcap(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T1, X10 MOV T2, X11 -#else - MOV T1, x+0(FP) - MOV T2, y+8(FP) -#endif JMP runtime·goPanicSliceAcap(SB) TEXT runtime·panicSliceAcapU(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T1, X10 MOV T2, X11 -#else - MOV T1, x+0(FP) - MOV T2, y+8(FP) -#endif JMP runtime·goPanicSliceAcapU(SB) TEXT runtime·panicSliceB(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T0, X10 MOV T1, X11 -#else - MOV T0, x+0(FP) - MOV T1, y+8(FP) -#endif JMP runtime·goPanicSliceB(SB) TEXT runtime·panicSliceBU(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T0, X10 MOV T1, X11 -#else - MOV T0, x+0(FP) - MOV T1, y+8(FP) -#endif JMP runtime·goPanicSliceBU(SB) TEXT runtime·panicSlice3Alen(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T2, X10 MOV T3, X11 -#else - MOV T2, x+0(FP) - MOV T3, y+8(FP) -#endif JMP runtime·goPanicSlice3Alen(SB) TEXT runtime·panicSlice3AlenU(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T2, X10 MOV T3, X11 -#else - MOV T2, x+0(FP) - MOV T3, y+8(FP) -#endif JMP runtime·goPanicSlice3AlenU(SB) TEXT runtime·panicSlice3Acap(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T2, X10 MOV T3, X11 -#else - MOV T2, x+0(FP) - MOV T3, y+8(FP) -#endif JMP runtime·goPanicSlice3Acap(SB) TEXT runtime·panicSlice3AcapU(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T2, X10 MOV T3, X11 -#else - MOV T2, x+0(FP) - MOV T3, y+8(FP) -#endif JMP runtime·goPanicSlice3AcapU(SB) TEXT runtime·panicSlice3B(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T1, X10 MOV T2, X11 -#else - MOV T1, x+0(FP) - MOV T2, y+8(FP) -#endif JMP runtime·goPanicSlice3B(SB) TEXT runtime·panicSlice3BU(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T1, X10 MOV T2, X11 -#else - MOV T1, x+0(FP) - MOV T2, y+8(FP) -#endif JMP runtime·goPanicSlice3BU(SB) TEXT runtime·panicSlice3C(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T0, X10 MOV T1, X11 -#else - MOV T0, x+0(FP) - MOV T1, y+8(FP) -#endif JMP runtime·goPanicSlice3C(SB) TEXT runtime·panicSlice3CU(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T0, X10 MOV T1, X11 -#else - MOV T0, x+0(FP) - MOV T1, y+8(FP) -#endif JMP runtime·goPanicSlice3CU(SB) TEXT runtime·panicSliceConvert(SB),NOSPLIT,$0-16 -#ifdef GOEXPERIMENT_regabiargs MOV T2, X10 MOV T3, X11 -#else - MOV T2, x+0(FP) - MOV T3, y+8(FP) -#endif JMP runtime·goPanicSliceConvert(SB) DATA runtime·mainPC+0(SB)/8,$runtime·main(SB) diff --git a/src/runtime/memclr_riscv64.s b/src/runtime/memclr_riscv64.s index 4cf0f5488f..d12b545b1e 100644 --- a/src/runtime/memclr_riscv64.s +++ b/src/runtime/memclr_riscv64.s @@ -8,10 +8,8 @@ // void runtime·memclrNoHeapPointers(void*, uintptr) TEXT runtime·memclrNoHeapPointers(SB),NOSPLIT,$0-16 -#ifndef GOEXPERIMENT_regabiargs - MOV ptr+0(FP), X10 - MOV n+8(FP), X11 -#endif + // X10 = ptr + // X11 = n // If less than 8 bytes, do single byte zeroing. MOV $8, X9 diff --git a/src/runtime/memmove_riscv64.s b/src/runtime/memmove_riscv64.s index 538aee3642..79d90c1adb 100644 --- a/src/runtime/memmove_riscv64.s +++ b/src/runtime/memmove_riscv64.s @@ -8,11 +8,9 @@ // void runtime·memmove(void*, void*, uintptr) TEXT runtime·memmove(SB),NOSPLIT,$-0-24 -#ifndef GOEXPERIMENT_regabiargs - MOV to+0(FP), A0 - MOV from+8(FP), A1 - MOV n+16(FP), A2 -#endif + // A0 = to + // A1 = from + // A2 = n ADD A1, A2, T5 // If the destination is ahead of the source, start at the end of the -- cgit v1.3