]> Cypherpunks repositories - gostls13.git/commitdiff
all: delete ARM64 non-register ABI fallback path
authorCherry Mui <cherryyz@google.com>
Fri, 18 Mar 2022 17:04:08 +0000 (13:04 -0400)
committerCherry Mui <cherryyz@google.com>
Fri, 18 Mar 2022 18:26:13 +0000 (18:26 +0000)
Change-Id: I3996fb31789a1f8559348e059cf371774e548a8d
Reviewed-on: https://go-review.googlesource.com/c/go/+/393875
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
src/internal/bytealg/compare_arm64.s
src/internal/bytealg/equal_arm64.s
src/reflect/asm_arm64.s
src/runtime/asm_arm64.s
src/runtime/memclr_arm64.s
src/runtime/memmove_arm64.s
src/runtime/race_arm64.s

index 5a80207258313dbb984be319d5818aa74498fcea..cc02c464e8b2741ed4402209890975d8175ea809 100644 (file)
@@ -6,7 +6,6 @@
 #include "textflag.h"
 
 TEXT ·Compare<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-56
-#ifdef GOEXPERIMENT_regabiargs
        // R0 = a_base (want in R0)
        // R1 = a_len  (want in R1)
        // R2 = a_cap  (unused)
@@ -15,28 +14,13 @@ TEXT ·Compare<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-56
        // R5 = b_cap  (unused)
        MOVD    R3, R2
        MOVD    R4, R3
-#else
-       MOVD    a_base+0(FP), R0
-       MOVD    a_len+8(FP), R1
-       MOVD    b_base+24(FP), R2
-       MOVD    b_len+32(FP), R3
-       MOVD    $ret+48(FP), R7
-#endif
        B       cmpbody<>(SB)
 
 TEXT runtime·cmpstring<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-40
-#ifdef GOEXPERIMENT_regabiargs
        // R0 = a_base
        // R1 = a_len
        // R2 = b_base
        // R3 = b_len
-#else
-       MOVD    a_base+0(FP), R0
-       MOVD    a_len+8(FP), R1
-       MOVD    b_base+16(FP), R2
-       MOVD    b_len+24(FP), R3
-       MOVD    $ret+32(FP), R7
-#endif
        B       cmpbody<>(SB)
 
 // On entry:
@@ -44,14 +28,9 @@ TEXT runtime·cmpstring<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-40
 // R1 is the length of a
 // R2 points to the start of b
 // R3 is the length of b
-#ifndef GOEXPERIMENT_regabiargs
-// R7 points to return value (-1/0/1 will be written here)
-#endif
 //
 // On exit:
-#ifdef GOEXPERIMENT_regabiargs
 // R0 is the result
-#endif
 // R4, R5, R6, R8, R9 and R10 are clobbered
 TEXT cmpbody<>(SB),NOSPLIT|NOFRAME,$0-0
        CMP     R0, R2
@@ -96,9 +75,6 @@ cmp:
 ret:
        MOVD    $1, R0
        CNEG    HI, R0, R0
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    R0, (R7)
-#endif
        RET
 small:
        TBZ     $3, R6, lt_8
@@ -141,9 +117,6 @@ samebytes:
        CMP     R3, R1
        CSET    NE, R0
        CNEG    LO, R0, R0
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    R0, (R7)
-#endif
        RET
 cmpnext:
        REV     R8, R4
index cf5cf54e5971a33223f909696503c1bace31baea..d3aabba5871eedf52d848decc3bf3838a10a7ae4 100644 (file)
@@ -7,55 +7,29 @@
 
 // memequal(a, b unsafe.Pointer, size uintptr) bool
 TEXT runtime·memequal<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-25
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    size+16(FP), R2
-#endif
        // short path to handle 0-byte case
        CBZ     R2, equal
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    a+0(FP), R0
-       MOVD    b+8(FP), R1
-       MOVD    $ret+24(FP), R8
-#endif
        B       memeqbody<>(SB)
 equal:
        MOVD    $1, R0
-#ifndef GOEXPERIMENT_regabiargs
-       MOVB    R0, ret+24(FP)
-#endif
        RET
 
 // memequal_varlen(a, b unsafe.Pointer) bool
 TEXT runtime·memequal_varlen<ABIInternal>(SB),NOSPLIT,$0-17
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    a+0(FP), R0
-       MOVD    b+8(FP), R1
-#endif
        CMP     R0, R1
        BEQ     eq
        MOVD    8(R26), R2    // compiler stores size at offset 8 in the closure
        CBZ     R2, eq
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    $ret+16(FP), R8
-#endif
        B       memeqbody<>(SB)
 eq:
        MOVD    $1, R0
-#ifndef GOEXPERIMENT_regabiargs
-       MOVB    R0, ret+16(FP)
-#endif
        RET
 
 // input:
 // R0: pointer a
 // R1: pointer b
 // R2: data len
-#ifdef GOEXPERIMENT_regabiargs
 // at return: result in R0
-#else
-// R8: address to put result
-#endif
-
 TEXT memeqbody<>(SB),NOSPLIT,$0
        CMP     $1, R2
        // handle 1-byte special case for better performance
@@ -141,14 +115,7 @@ one:
        BNE     not_equal
 equal:
        MOVD    $1, R0
-#ifndef GOEXPERIMENT_regabiargs
-       MOVB    R0, (R8)
-#endif
        RET
 not_equal:
-#ifdef GOEXPERIMENT_regabiargs
        MOVB    ZR, R0
-#else
-       MOVB    ZR, (R8)
-#endif
        RET
index 812b8a02c3708e37206fd735397020fc8ac09a44..5e91e62aa145251afc8058150ef64b9f1508f265 100644 (file)
@@ -33,13 +33,8 @@ TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$432
        ADD     $LOCAL_REGARGS, RSP, R20
        CALL    runtime·spillArgs(SB)
        MOVD    R26, 32(RSP) // outside of moveMakeFuncArgPtrs's arg area
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R26, R0
        MOVD    R20, R1
-#else
-       MOVD    R26, 8(RSP)
-       MOVD    R20, 16(RSP)
-#endif
        CALL    ·moveMakeFuncArgPtrs<ABIInternal>(SB)
        MOVD    32(RSP), R26
        MOVD    R26, 8(RSP)
@@ -66,13 +61,8 @@ TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$432
        ADD     $LOCAL_REGARGS, RSP, R20
        CALL    runtime·spillArgs(SB)
        MOVD    R26, 32(RSP) // outside of moveMakeFuncArgPtrs's arg area
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R26, R0
        MOVD    R20, R1
-#else
-       MOVD    R26, 8(RSP)
-       MOVD    R20, 16(RSP)
-#endif
        CALL    ·moveMakeFuncArgPtrs<ABIInternal>(SB)
        MOVD    32(RSP), R26
        MOVD    R26, 8(RSP)
index 46ffaaa9b3fe83d25a06ceef3f1ff311212c843b..62deb070aa2c8e340827c1f1fb8fab864fa7ff8e 100644 (file)
@@ -150,11 +150,7 @@ TEXT gogo<>(SB), NOSPLIT|NOFRAME, $0
 // Fn must never return. It should gogo(&g->sched)
 // to keep running g.
 TEXT runtime·mcall<ABIInternal>(SB), NOSPLIT|NOFRAME, $0-8
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R0, R26                         // context
-#else
-       MOVD    fn+0(FP), R26                   // context
-#endif
 
        // Save caller state in g->sched
        MOVD    RSP, R0
@@ -175,11 +171,7 @@ TEXT runtime·mcall<ABIInternal>(SB), NOSPLIT|NOFRAME, $0-8
        MOVD    (g_sched+gobuf_sp)(g), R0
        MOVD    R0, RSP // sp = m->g0->sched.sp
        MOVD    (g_sched+gobuf_bp)(g), R29
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R3, R0                          // arg = g
-#else
-       MOVD    R3, -8(RSP)                     // arg = g
-#endif
        MOVD    $0, -16(RSP)                    // dummy LR
        SUB     $16, RSP
        MOVD    0(R26), R4                      // code pointer
@@ -317,7 +309,6 @@ TEXT runtime·morestack_noctxt(SB),NOSPLIT|NOFRAME,$0-0
        MOVW    $0, R26
        B runtime·morestack(SB)
 
-#ifdef GOEXPERIMENT_regabiargs
 // spillArgs stores return values from registers to a *internal/abi.RegArgs in R20.
 TEXT ·spillArgs(SB),NOSPLIT,$0-0
        MOVD    R0, (0*8)(R20)
@@ -389,13 +380,6 @@ TEXT ·unspillArgs(SB),NOSPLIT,$0-0
        FMOVD   (30*8)(R20), F14
        FMOVD   (31*8)(R20), F15
        RET
-#else
-TEXT ·spillArgs(SB),NOSPLIT,$0-0
-       RET
-
-TEXT ·unspillArgs(SB),NOSPLIT,$0-0
-       RET
-#endif
 
 // reflectcall: call a function with the given argument list
 // func call(stackArgsType *_type, f *FuncVal, stackArgs *byte, stackArgsSize, stackRetOffset, frameSize uint32, regArgs *abi.RegArgs).
@@ -536,11 +520,6 @@ CALLFN(·call1073741824, 1073741824)
 TEXT runtime·memhash32<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-24
        MOVB    runtime·useAeshash(SB), R10
        CBZ     R10, noaes
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    p+0(FP), R0
-       MOVD    h+8(FP), R1
-       MOVD    $ret+16(FP), R2
-#endif
        MOVD    $runtime·aeskeysched+0(SB), R3
 
        VEOR    V0.B16, V0.B16, V0.B16
@@ -554,11 +533,7 @@ TEXT runtime·memhash32<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-24
        AESMC   V0.B16, V0.B16
        AESE    V2.B16, V0.B16
 
-#ifdef GOEXPERIMENT_regabiargs
        VMOV    V0.D[0], R0
-#else
-       VST1    [V0.D1], (R2)
-#endif
        RET
 noaes:
        B       runtime·memhash32Fallback<ABIInternal>(SB)
@@ -567,11 +542,6 @@ noaes:
 TEXT runtime·memhash64<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-24
        MOVB    runtime·useAeshash(SB), R10
        CBZ     R10, noaes
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    p+0(FP), R0
-       MOVD    h+8(FP), R1
-       MOVD    $ret+16(FP), R2
-#endif
        MOVD    $runtime·aeskeysched+0(SB), R3
 
        VEOR    V0.B16, V0.B16, V0.B16
@@ -585,11 +555,7 @@ TEXT runtime·memhash64<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-24
        AESMC   V0.B16, V0.B16
        AESE    V2.B16, V0.B16
 
-#ifdef GOEXPERIMENT_regabiargs
        VMOV    V0.D[0], R0
-#else
-       VST1    [V0.D1], (R2)
-#endif
        RET
 noaes:
        B       runtime·memhash64Fallback<ABIInternal>(SB)
@@ -598,12 +564,6 @@ noaes:
 TEXT runtime·memhash<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-32
        MOVB    runtime·useAeshash(SB), R10
        CBZ     R10, noaes
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    p+0(FP), R0
-       MOVD    h+8(FP), R1
-       MOVD    s+16(FP), R2
-       MOVD    $ret+24(FP), R8
-#endif
        B       aeshashbody<>(SB)
 noaes:
        B       runtime·memhashFallback<ABIInternal>(SB)
@@ -612,14 +572,7 @@ noaes:
 TEXT runtime·strhash<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-24
        MOVB    runtime·useAeshash(SB), R10
        CBZ     R10, noaes
-#ifdef GOEXPERIMENT_regabiargs
        LDP     (R0), (R0, R2)  // string data / length
-#else
-       MOVD    p+0(FP), R10    // string pointer
-       LDP     (R10), (R0, R2) // string data / length
-       MOVD    h+8(FP), R1
-       MOVD    $ret+16(FP), R8 // return adddress
-#endif
        B       aeshashbody<>(SB)
 noaes:
        B       runtime·strhashFallback<ABIInternal>(SB)
@@ -627,11 +580,7 @@ noaes:
 // R0: data
 // R1: seed data
 // R2: length
-#ifdef GOEXPERIMENT_regabiargs
 // At return, R0 = return value
-#else
-// R8: address to put return value
-#endif
 TEXT aeshashbody<>(SB),NOSPLIT|NOFRAME,$0
        VEOR    V30.B16, V30.B16, V30.B16
        VMOV    R1, V30.D[0]
@@ -676,19 +625,11 @@ done:
        AESMC   V2.B16, V2.B16
        AESE    V0.B16, V2.B16
 
-#ifdef GOEXPERIMENT_regabiargs
        VMOV    V2.D[0], R0
-#else
-       VST1    [V2.D1], (R8)
-#endif
        RET
 
 aes0:
-#ifdef GOEXPERIMENT_regabiargs
        VMOV    V0.D[0], R0
-#else
-       VST1    [V0.D1], (R8)
-#endif
        RET
 
 aes16:
@@ -718,11 +659,8 @@ aes17to32:
        AESE    V1.B16, V3.B16
 
        VEOR    V3.B16, V2.B16, V2.B16
-#ifdef GOEXPERIMENT_regabiargs
+
        VMOV    V2.D[0], R0
-#else
-       VST1    [V2.D1], (R8)
-#endif
        RET
 
 aes33to64:
@@ -765,11 +703,7 @@ aes33to64:
        VEOR    V7.B16, V5.B16, V5.B16
        VEOR    V5.B16, V4.B16, V4.B16
 
-#ifdef GOEXPERIMENT_regabiargs
        VMOV    V4.D[0], R0
-#else
-       VST1    [V4.D1], (R8)
-#endif
        RET
 
 aes65to128:
@@ -844,11 +778,7 @@ aes65to128:
        VEOR    V11.B16, V9.B16, V9.B16
        VEOR    V9.B16, V8.B16, V8.B16
 
-#ifdef GOEXPERIMENT_regabiargs
        VMOV    V8.D[0], R0
-#else
-       VST1    [V8.D1], (R8)
-#endif
        RET
 
 aes129plus:
@@ -967,11 +897,7 @@ aesloop:
        VEOR    V4.B16, V6.B16, V4.B16
        VEOR    V4.B16, V0.B16, V0.B16
 
-#ifdef GOEXPERIMENT_regabiargs
        VMOV    V0.D[0], R0
-#else
-       VST1    [V0.D1], (R8)
-#endif
        RET
 
 TEXT runtime·procyield(SB),NOSPLIT,$0-0
@@ -1383,137 +1309,58 @@ flush:
 // Defined as ABIInternal since the compiler generates ABIInternal
 // calls to it directly and it does not use the stack-based Go ABI.
 TEXT runtime·panicIndex<ABIInternal>(SB),NOSPLIT,$0-16
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    R0, x+0(FP)
-       MOVD    R1, y+8(FP)
-#endif
        JMP     runtime·goPanicIndex<ABIInternal>(SB)
 TEXT runtime·panicIndexU<ABIInternal>(SB),NOSPLIT,$0-16
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    R0, x+0(FP)
-       MOVD    R1, y+8(FP)
-#endif
        JMP     runtime·goPanicIndexU<ABIInternal>(SB)
 TEXT runtime·panicSliceAlen<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R1, R0
        MOVD    R2, R1
-#else
-       MOVD    R1, x+0(FP)
-       MOVD    R2, y+8(FP)
-#endif
        JMP     runtime·goPanicSliceAlen<ABIInternal>(SB)
 TEXT runtime·panicSliceAlenU<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R1, R0
        MOVD    R2, R1
-#else
-       MOVD    R1, x+0(FP)
-       MOVD    R2, y+8(FP)
-#endif
        JMP     runtime·goPanicSliceAlenU<ABIInternal>(SB)
 TEXT runtime·panicSliceAcap<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R1, R0
        MOVD    R2, R1
-#else
-       MOVD    R1, x+0(FP)
-       MOVD    R2, y+8(FP)
-#endif
        JMP     runtime·goPanicSliceAcap<ABIInternal>(SB)
 TEXT runtime·panicSliceAcapU<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R1, R0
        MOVD    R2, R1
-#else
-       MOVD    R1, x+0(FP)
-       MOVD    R2, y+8(FP)
-#endif
        JMP     runtime·goPanicSliceAcapU<ABIInternal>(SB)
 TEXT runtime·panicSliceB<ABIInternal>(SB),NOSPLIT,$0-16
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    R0, x+0(FP)
-       MOVD    R1, y+8(FP)
-#endif
        JMP     runtime·goPanicSliceB<ABIInternal>(SB)
 TEXT runtime·panicSliceBU<ABIInternal>(SB),NOSPLIT,$0-16
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    R0, x+0(FP)
-       MOVD    R1, y+8(FP)
-#endif
        JMP     runtime·goPanicSliceBU<ABIInternal>(SB)
 TEXT runtime·panicSlice3Alen<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R2, R0
        MOVD    R3, R1
-#else
-       MOVD    R2, x+0(FP)
-       MOVD    R3, y+8(FP)
-#endif
        JMP     runtime·goPanicSlice3Alen<ABIInternal>(SB)
 TEXT runtime·panicSlice3AlenU<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R2, R0
        MOVD    R3, R1
-#else
-       MOVD    R2, x+0(FP)
-       MOVD    R3, y+8(FP)
-#endif
        JMP     runtime·goPanicSlice3AlenU<ABIInternal>(SB)
 TEXT runtime·panicSlice3Acap<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R2, R0
        MOVD    R3, R1
-#else
-       MOVD    R2, x+0(FP)
-       MOVD    R3, y+8(FP)
-#endif
        JMP     runtime·goPanicSlice3Acap<ABIInternal>(SB)
 TEXT runtime·panicSlice3AcapU<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R2, R0
        MOVD    R3, R1
-#else
-       MOVD    R2, x+0(FP)
-       MOVD    R3, y+8(FP)
-#endif
        JMP     runtime·goPanicSlice3AcapU<ABIInternal>(SB)
 TEXT runtime·panicSlice3B<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R1, R0
        MOVD    R2, R1
-#else
-       MOVD    R1, x+0(FP)
-       MOVD    R2, y+8(FP)
-#endif
        JMP     runtime·goPanicSlice3B<ABIInternal>(SB)
 TEXT runtime·panicSlice3BU<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R1, R0
        MOVD    R2, R1
-#else
-       MOVD    R1, x+0(FP)
-       MOVD    R2, y+8(FP)
-#endif
        JMP     runtime·goPanicSlice3BU<ABIInternal>(SB)
 TEXT runtime·panicSlice3C<ABIInternal>(SB),NOSPLIT,$0-16
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    R0, x+0(FP)
-       MOVD    R1, y+8(FP)
-#endif
        JMP     runtime·goPanicSlice3C<ABIInternal>(SB)
 TEXT runtime·panicSlice3CU<ABIInternal>(SB),NOSPLIT,$0-16
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    R0, x+0(FP)
-       MOVD    R1, y+8(FP)
-#endif
        JMP     runtime·goPanicSlice3CU<ABIInternal>(SB)
 TEXT runtime·panicSliceConvert<ABIInternal>(SB),NOSPLIT,$0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R2, R0
        MOVD    R3, R1
-#else
-       MOVD    R2, x+0(FP)
-       MOVD    R3, y+8(FP)
-#endif
        JMP     runtime·goPanicSliceConvert<ABIInternal>(SB)
index b80cca6a1cd0bb8469a94173fc2fb74111b32282..1c35dfe0cf258bb3737fed3767d2460d7d686aaf 100644 (file)
@@ -9,11 +9,6 @@
 // func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr)
 // Also called from assembly in sys_windows_arm64.s without g (but using Go stack convention).
 TEXT runtime·memclrNoHeapPointers<ABIInternal>(SB),NOSPLIT,$0-16
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    ptr+0(FP), R0
-       MOVD    n+8(FP), R1
-#endif
-
        CMP     $16, R1
        // If n is equal to 16 bytes, use zero_exact_16 to zero
        BEQ     zero_exact_16
index bee3b00c47d81c2cefeb9a2e9df14c458d574014..8ec3ed86b9b9f6faf7ffe6cf68d796d8cb164cc8 100644 (file)
 
 // func memmove(to, from unsafe.Pointer, n uintptr)
 TEXT runtime·memmove<ABIInternal>(SB), NOSPLIT|NOFRAME, $0-24
-#ifndef GOEXPERIMENT_regabiargs
-       MOVD    to+0(FP), R0
-       MOVD    from+8(FP), R1
-       MOVD    n+16(FP), R2
-#endif
        CBZ     R2, copy0
 
        // Small copies: 1..16 bytes
index 95fec0b9c63d58ba51c89cdeb0f2c4333f296756..8c0dd25f0bab5077d02ffad6677183e6cb8de73c 100644 (file)
 // Defined as ABIInternal so as to avoid introducing a wrapper,
 // which would make caller's PC ineffective.
 TEXT   runtime·raceread<ABIInternal>(SB), NOSPLIT, $0-8
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R0, R1  // addr
-#else
-       MOVD    addr+0(FP), R1
-#endif
        MOVD    LR, R2
        // void __tsan_read(ThreadState *thr, void *addr, void *pc);
        MOVD    $__tsan_read(SB), R9
@@ -74,11 +70,7 @@ TEXT runtime·racereadpc(SB), NOSPLIT, $0-24
 // Defined as ABIInternal so as to avoid introducing a wrapper,
 // which would make caller's PC ineffective.
 TEXT   runtime·racewrite<ABIInternal>(SB), NOSPLIT, $0-8
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R0, R1  // addr
-#else
-       MOVD    addr+0(FP), R1
-#endif
        MOVD    LR, R2
        // void __tsan_write(ThreadState *thr, void *addr, void *pc);
        MOVD    $__tsan_write(SB), R9
@@ -103,13 +95,8 @@ TEXT        runtime·racewritepc(SB), NOSPLIT, $0-24
 // Defined as ABIInternal so as to avoid introducing a wrapper,
 // which would make caller's PC ineffective.
 TEXT   runtime·racereadrange<ABIInternal>(SB), NOSPLIT, $0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R1, R2  // size
        MOVD    R0, R1  // addr
-#else
-       MOVD    addr+0(FP), R1
-       MOVD    size+8(FP), R2
-#endif
        MOVD    LR, R3
        // void __tsan_read_range(ThreadState *thr, void *addr, uintptr size, void *pc);
        MOVD    $__tsan_read_range(SB), R9
@@ -135,13 +122,8 @@ TEXT       runtime·racereadrangepc1(SB), NOSPLIT, $0-24
 // Defined as ABIInternal so as to avoid introducing a wrapper,
 // which would make caller's PC ineffective.
 TEXT   runtime·racewriterange<ABIInternal>(SB), NOSPLIT, $0-16
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R1, R2  // size
        MOVD    R0, R1  // addr
-#else
-       MOVD    addr+0(FP), R1
-       MOVD    size+8(FP), R2
-#endif
        MOVD    LR, R3
        // void __tsan_write_range(ThreadState *thr, void *addr, uintptr size, void *pc);
        MOVD    $__tsan_write_range(SB), R9
@@ -189,11 +171,7 @@ ret:
 // func runtime·racefuncenter(pc uintptr)
 // Called from instrumented code.
 TEXT   runtime·racefuncenter<ABIInternal>(SB), NOSPLIT, $0-8
-#ifdef GOEXPERIMENT_regabiargs
        MOVD    R0, R9  // callpc
-#else
-       MOVD    callpc+0(FP), R9
-#endif
        JMP     racefuncenter<>(SB)
 
 // Common code for racefuncenter