]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: use indexed load/store in ARM64 assembly
authorCherry Zhang <cherryyz@google.com>
Sat, 31 Oct 2020 21:21:40 +0000 (17:21 -0400)
committerCherry Zhang <cherryyz@google.com>
Mon, 2 Nov 2020 15:40:28 +0000 (15:40 +0000)
Minor optimization. Spotted while working on that code.

Change-Id: Ia02dee10d74bce79a0bef1eaba7fac1bfc27df38
Reviewed-on: https://go-review.googlesource.com/c/go/+/266899
Trust: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: fannie zhang <Fannie.Zhang@arm.com>
Reviewed-by: David Chase <drchase@google.com>
src/runtime/race_arm64.s
src/runtime/tls_arm64.s

index 5b1a1cb89a1dcaed53171a3a1d5eaab4bc43669f..6bc389f69f4c61aedf4568e41f01c00839081570 100644 (file)
@@ -38,8 +38,7 @@
        MRS_TPIDR_R0 \
        TP_ALIGN \
        MOVD    runtime·tls_g(SB), R11 \
-       ADD     R11, R0 \
-       MOVD    0(R0), g
+       MOVD    (R0)(R11), g
 
 // func runtime·raceread(addr uintptr)
 // Called from instrumented code.
index 701abae105de302a119e38eff361205685523be5..3f02974d5b7e6f1eef82e8cd4f35648f486f6bc8 100644 (file)
@@ -20,8 +20,7 @@ TEXT runtime·load_g(SB),NOSPLIT,$0
        AND     $0xfffffffffffffff8, R0
 #endif
        MOVD    runtime·tls_g(SB), R27
-       ADD     R27, R0
-       MOVD    0(R0), g
+       MOVD    (R0)(R27), g
 
 nocgo:
        RET
@@ -38,8 +37,7 @@ TEXT runtime·save_g(SB),NOSPLIT,$0
        AND     $0xfffffffffffffff8, R0
 #endif
        MOVD    runtime·tls_g(SB), R27
-       ADD     R27, R0
-       MOVD    g, 0(R0)
+       MOVD    g, (R0)(R27)
 
 nocgo:
        RET