aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorWayne Zuo <wdvxdr@golangcn.org>2022-10-17 21:58:56 +0800
committerWayne Zuo <wdvxdr@golangcn.org>2022-10-26 00:52:05 +0000
commit5d59fa143ae1d0d8fdcc677297ce58bbfc592111 (patch)
treed2a14ba8bd1f336905d7080aa3682f3d4e8f25c1 /src/runtime
parent3dc13023c1d20ec48e2d0c69908b0a1cc3681462 (diff)
downloadgo-5d59fa143ae1d0d8fdcc677297ce58bbfc592111.tar.xz
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 <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Wayne Zuo <wdvxdr@golangcn.org> Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/asm_riscv64.s97
-rw-r--r--src/runtime/memclr_riscv64.s6
-rw-r--r--src/runtime/memmove_riscv64.s8
3 files changed, 5 insertions, 106 deletions
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<ABIInternal>(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<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicIndexU<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSliceAlen<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSliceAlenU<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSliceAcap<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSliceAcapU<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSliceB<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSliceBU<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSlice3Alen<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSlice3AlenU<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSlice3Acap<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSlice3AcapU<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSlice3B<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSlice3BU<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSlice3C<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSlice3CU<ABIInternal>(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<ABIInternal>(SB)
TEXT runtime·panicSliceConvert<ABIInternal>(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<ABIInternal>(SB)
DATA runtime·mainPC+0(SB)/8,$runtime·main<ABIInternal>(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<ABIInternal>(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<ABIInternal>(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