From 978cfa8e46d71992395d67382e96036596520cb6 Mon Sep 17 00:00:00 2001 From: "Fangming.Fang" Date: Wed, 20 Jun 2018 09:09:03 +0000 Subject: [PATCH] cmd,runtime: enable race detector on arm64 Changes include: 1. enable compiler option -race for arm64 2. add runtime/race_arm64.s to manage the calls from Go to the compiler-rt runtime 3. change racewalk.go to call racefuncenterfp instead of racefuncenter on arm64 to allow the caller pc to be obtained in the asm code before calling the tsan version 4. race_linux_arm64.syso comes from compiler-rt which just supports 48bit VA, compiler-rt is fetched from master branch which latest commit is 3aa2b775d08f903f804246af10b Fixes #25682 Change-Id: I04364c580b8157fd117deecae74a4656ba16e005 Reviewed-on: https://go-review.googlesource.com/c/138675 Run-TryBot: Cherry Zhang TryBot-Result: Gobot Gobot Reviewed-by: Cherry Zhang --- src/cmd/compile/internal/gc/racewalk.go | 4 +- src/cmd/go/internal/work/init.go | 2 +- src/cmd/internal/sys/supported.go | 2 +- src/cmd/link/internal/ld/config.go | 4 +- src/race.bash | 4 +- src/runtime/asm_arm64.s | 3 +- src/runtime/race/README | 1 + src/runtime/race/race.go | 2 +- src/runtime/race/race_linux_arm64.syso | Bin 0 -> 418080 bytes src/runtime/race_arm64.s | 445 ++++++++++++++++++++++++ 10 files changed, 457 insertions(+), 10 deletions(-) create mode 100644 src/runtime/race/race_linux_arm64.syso create mode 100644 src/runtime/race_arm64.s diff --git a/src/cmd/compile/internal/gc/racewalk.go b/src/cmd/compile/internal/gc/racewalk.go index 8a8b436a23..6f251377c9 100644 --- a/src/cmd/compile/internal/gc/racewalk.go +++ b/src/cmd/compile/internal/gc/racewalk.go @@ -71,14 +71,14 @@ func instrument(fn *Node) { lno := lineno lineno = src.NoXPos - if thearch.LinkArch.Arch == sys.ArchPPC64LE { + if thearch.LinkArch.Arch.Family != sys.AMD64 { fn.Func.Enter.Prepend(mkcall("racefuncenterfp", nil, nil)) fn.Func.Exit.Append(mkcall("racefuncexit", nil, nil)) } else { // nodpc is the PC of the caller as extracted by // getcallerpc. We use -widthptr(FP) for x86. - // BUG: This only works for amd64. This will not + // This only works for amd64. This will not // work on arm or others that might support // race in the future. nodpc := nodfp.copy() diff --git a/src/cmd/go/internal/work/init.go b/src/cmd/go/internal/work/init.go index 3f6252ed84..8d2fd10524 100644 --- a/src/cmd/go/internal/work/init.go +++ b/src/cmd/go/internal/work/init.go @@ -49,7 +49,7 @@ func instrumentInit() { } if cfg.BuildRace { if !sys.RaceDetectorSupported(cfg.Goos, cfg.Goarch) { - fmt.Fprintf(os.Stderr, "go %s: -race is only supported on linux/amd64, linux/ppc64le, freebsd/amd64, netbsd/amd64, darwin/amd64 and windows/amd64\n", flag.Args()[0]) + fmt.Fprintf(os.Stderr, "go %s: -race is only supported on linux/amd64, linux/ppc64le, linux/arm64, freebsd/amd64, netbsd/amd64, darwin/amd64 and windows/amd64\n", flag.Args()[0]) os.Exit(2) } } diff --git a/src/cmd/internal/sys/supported.go b/src/cmd/internal/sys/supported.go index 22dec702a5..a53da6ed2c 100644 --- a/src/cmd/internal/sys/supported.go +++ b/src/cmd/internal/sys/supported.go @@ -9,7 +9,7 @@ package sys func RaceDetectorSupported(goos, goarch string) bool { switch goos { case "linux": - return goarch == "amd64" || goarch == "ppc64le" + return goarch == "amd64" || goarch == "ppc64le" || goarch == "arm64" case "darwin", "freebsd", "netbsd", "windows": return goarch == "amd64" default: diff --git a/src/cmd/link/internal/ld/config.go b/src/cmd/link/internal/ld/config.go index 77b03b67f9..2f6dd7a7e2 100644 --- a/src/cmd/link/internal/ld/config.go +++ b/src/cmd/link/internal/ld/config.go @@ -199,8 +199,8 @@ func mustLinkExternal(ctxt *Link) (res bool, reason string) { // When the race flag is set, the LLVM tsan relocatable file is linked // into the final binary, which means external linking is required because // internal linking does not support it. - if *flagRace && ctxt.Arch.InFamily(sys.PPC64) { - return true, "race on ppc64le" + if *flagRace && ctxt.Arch.InFamily(sys.PPC64, sys.ARM64) { + return true, "race on " + objabi.GOARCH } // Some build modes require work the internal linker cannot do (yet). diff --git a/src/race.bash b/src/race.bash index d673f503a9..e83c175df3 100755 --- a/src/race.bash +++ b/src/race.bash @@ -9,7 +9,7 @@ set -e function usage { - echo 'race detector is only supported on linux/amd64, linux/ppc64le, freebsd/amd64, netbsd/amd64 and darwin/amd64' 1>&2 + echo 'race detector is only supported on linux/amd64, linux/ppc64le, linux/arm64, freebsd/amd64, netbsd/amd64 and darwin/amd64' 1>&2 exit 1 } @@ -21,7 +21,7 @@ case $(uname) in fi ;; "Linux") - if [ $(uname -m) != "x86_64" ] && [ $(uname -m) != "ppc64le" ]; then + if [ $(uname -m) != "x86_64" ] && [ $(uname -m) != "ppc64le" ] && [ $(uname -m) != "aarch64" ]; then usage fi ;; diff --git a/src/runtime/asm_arm64.s b/src/runtime/asm_arm64.s index 2248cec132..28d3077b9d 100644 --- a/src/runtime/asm_arm64.s +++ b/src/runtime/asm_arm64.s @@ -18,7 +18,8 @@ TEXT runtime·rt0_go(SB),NOSPLIT,$0 // create istack out of the given (operating system) stack. // _cgo_init may update stackguard. MOVD $runtime·g0(SB), g - MOVD RSP, R7 + BL runtime·save_g(SB) + MOVD RSP, R7 MOVD $(-64*1024)(R7), R0 MOVD R0, g_stackguard0(g) MOVD R0, g_stackguard1(g) diff --git a/src/runtime/race/README b/src/runtime/race/README index 1c66c63695..be53b4c37c 100644 --- a/src/runtime/race/README +++ b/src/runtime/race/README @@ -10,3 +10,4 @@ race_linux_amd64.syso built with LLVM fe2c72c59aa7f4afa45e3f65a5d16a374b6cce26 a race_linux_ppc64le.syso built with LLVM fe2c72c59aa7f4afa45e3f65a5d16a374b6cce26 and Go 323c85862a7afbde66a3bba0776bf4ba6cd7c030. race_netbsd_amd64.syso built with LLVM fe2c72c59aa7f4afa45e3f65a5d16a374b6cce26 and Go 323c85862a7afbde66a3bba0776bf4ba6cd7c030. race_windows_amd64.syso built with LLVM ae08a22cc215448aa3ad5a6fb099f6df77e9fa01 and Go 323c85862a7afbde66a3bba0776bf4ba6cd7c030. +race_linux_arm64.syso built with LLVM 3aa2b775d08f903f804246af10b80a439c16b436 and Go ef2c48659880c7e8a989e6721a21f018790f7793. diff --git a/src/runtime/race/race.go b/src/runtime/race/race.go index 95e965411b..d298e805cf 100644 --- a/src/runtime/race/race.go +++ b/src/runtime/race/race.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build race,linux,amd64 race,freebsd,amd64 race,netbsd,amd64 race,darwin,amd64 race,windows,amd64 race,linux,ppc64le +// +build race,linux,amd64 race,freebsd,amd64 race,netbsd,amd64 race,darwin,amd64 race,windows,amd64 race,linux,ppc64le race,linux,arm64 package race diff --git a/src/runtime/race/race_linux_arm64.syso b/src/runtime/race/race_linux_arm64.syso new file mode 100644 index 0000000000000000000000000000000000000000..65bc1ececa5a7cef882b63a37ab3a53b46952aae GIT binary patch literal 418080 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%0AA4>)PE{UyWno}D*KfRU%S*&& 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

PeoLOwcfKuA&x8B$LVlh-@lENK;+LMz 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

EGNdg-#u~LbNup~fK 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 d|2X?fpMQz#&n`c8(SB) + +// func runtime·RaceRead(addr uintptr) +TEXT runtime·RaceRead(SB), NOSPLIT, $0-8 + // This needs to be a tail call, because raceread reads caller pc. + JMP runtime·raceread(SB) + +// func runtime·racereadpc(void *addr, void *callpc, void *pc) +TEXT runtime·racereadpc(SB), NOSPLIT, $0-24 + MOVD addr+0(FP), R1 + MOVD callpc+8(FP), R2 + MOVD pc+16(FP), R3 + // void __tsan_read_pc(ThreadState *thr, void *addr, void *callpc, void *pc); + MOVD $__tsan_read_pc(SB), R9 + JMP racecalladdr<>(SB) + +// func runtime·racewrite(addr uintptr) +// Called from instrumented code. +TEXT runtime·racewrite(SB), NOSPLIT, $0-8 + MOVD addr+0(FP), R1 + MOVD LR, R2 + // void __tsan_write(ThreadState *thr, void *addr, void *pc); + MOVD $__tsan_write(SB), R9 + JMP racecalladdr<>(SB) + +// func runtime·RaceWrite(addr uintptr) +TEXT runtime·RaceWrite(SB), NOSPLIT, $0-8 + // This needs to be a tail call, because racewrite reads caller pc. + JMP runtime·racewrite(SB) + +// func runtime·racewritepc(void *addr, void *callpc, void *pc) +TEXT runtime·racewritepc(SB), NOSPLIT, $0-24 + MOVD addr+0(FP), R1 + MOVD callpc+8(FP), R2 + MOVD pc+16(FP), R3 + // void __tsan_write_pc(ThreadState *thr, void *addr, void *callpc, void *pc); + MOVD $__tsan_write_pc(SB), R9 + JMP racecalladdr<>(SB) + +// func runtime·racereadrange(addr, size uintptr) +// Called from instrumented code. +TEXT runtime·racereadrange(SB), NOSPLIT, $0-16 + MOVD addr+0(FP), R1 + MOVD size+8(FP), R2 + MOVD LR, R3 + // void __tsan_read_range(ThreadState *thr, void *addr, uintptr size, void *pc); + MOVD $__tsan_read_range(SB), R9 + JMP racecalladdr<>(SB) + +// func runtime·RaceReadRange(addr, size uintptr) +TEXT runtime·RaceReadRange(SB), NOSPLIT, $0-16 + // This needs to be a tail call, because racereadrange reads caller pc. + JMP runtime·racereadrange(SB) + +// func runtime·racereadrangepc1(void *addr, uintptr sz, void *pc) +TEXT runtime·racereadrangepc1(SB), NOSPLIT, $0-24 + MOVD addr+0(FP), R1 + MOVD size+8(FP), R2 + MOVD pc+16(FP), R3 + ADD $4, R3 // pc is function start, tsan wants return address. + // void __tsan_read_range(ThreadState *thr, void *addr, uintptr size, void *pc); + MOVD $__tsan_read_range(SB), R9 + JMP racecalladdr<>(SB) + +// func runtime·racewriterange(addr, size uintptr) +// Called from instrumented code. +TEXT runtime·racewriterange(SB), NOSPLIT, $0-16 + MOVD addr+0(FP), R1 + MOVD size+8(FP), R2 + MOVD LR, R3 + // void __tsan_write_range(ThreadState *thr, void *addr, uintptr size, void *pc); + MOVD $__tsan_write_range(SB), R9 + JMP racecalladdr<>(SB) + +// func runtime·RaceWriteRange(addr, size uintptr) +TEXT runtime·RaceWriteRange(SB), NOSPLIT, $0-16 + // This needs to be a tail call, because racewriterange reads caller pc. + JMP runtime·racewriterange(SB) + +// func runtime·racewriterangepc1(void *addr, uintptr sz, void *pc) +TEXT runtime·racewriterangepc1(SB), NOSPLIT, $0-24 + MOVD addr+0(FP), R1 + MOVD size+8(FP), R2 + MOVD pc+16(FP), R3 + ADD $4, R3 // pc is function start, tsan wants return address. + // void __tsan_write_range(ThreadState *thr, void *addr, uintptr size, void *pc); + MOVD $__tsan_write_range(SB), R9 + JMP racecalladdr<>(SB) + +// If addr (R1) is out of range, do nothing. +// Otherwise, setup goroutine context and invoke racecall. Other arguments already set. +TEXT racecalladdr<>(SB), NOSPLIT, $0-0 + load_g + MOVD g_racectx(g), R0 + // Check that addr is within [arenastart, arenaend) or within [racedatastart, racedataend). + MOVD runtime·racearenastart(SB), R10 + CMP R10, R1 + BLT data + MOVD runtime·racearenaend(SB), R10 + CMP R10, R1 + BLT call +data: + MOVD runtime·racedatastart(SB), R10 + CMP R10, R1 + BLT ret + MOVD runtime·racedataend(SB), R10 + CMP R10, R1 + BGT ret +call: + JMP racecall<>(SB) +ret: + RET + +// func runtime·racefuncenterfp(fp uintptr) +// Called from instrumented code. +// Like racefuncenter but doesn't passes an arg, uses the caller pc +// from the first slot on the stack +TEXT runtime·racefuncenterfp(SB), NOSPLIT, $0-0 + MOVD 0(RSP), R9 + JMP racefuncenter<>(SB) + +// func runtime·racefuncenter(pc uintptr) +// Called from instrumented code. +TEXT runtime·racefuncenter(SB), NOSPLIT, $0-8 + MOVD callpc+0(FP), R9 + JMP racefuncenter<>(SB) + +// Common code for racefuncenter/racefuncenterfp +// R9 = caller's return address +TEXT racefuncenter<>(SB), NOSPLIT, $0-0 + load_g + MOVD g_racectx(g), R0 // goroutine racectx + MOVD R9, R1 + // void __tsan_func_enter(ThreadState *thr, void *pc); + MOVD $__tsan_func_enter(SB), R9 + BL racecall<>(SB) + RET + +// func runtime·racefuncexit() +// Called from instrumented code. +TEXT runtime·racefuncexit(SB), NOSPLIT, $0-0 + load_g + MOVD g_racectx(g), R0 // race context + // void __tsan_func_exit(ThreadState *thr); + MOVD $__tsan_func_exit(SB), R9 + JMP racecall<>(SB) + +// Atomic operations for sync/atomic package. +// R3 = addr of arguments passed to this function, it can +// be fetched at 40(RSP) in racecallatomic after two times BL +// R0, R1, R2 set in racecallatomic + +// Load +TEXT sync∕atomic·LoadInt32(SB), NOSPLIT, $0 + MOVD $__tsan_go_atomic32_load(SB), R9 + BL racecallatomic<>(SB) + RET + +TEXT sync∕atomic·LoadInt64(SB), NOSPLIT, $0 + MOVD $__tsan_go_atomic64_load(SB), R9 + BL racecallatomic<>(SB) + RET + +TEXT sync∕atomic·LoadUint32(SB), NOSPLIT, $0 + JMP sync∕atomic·LoadInt32(SB) + +TEXT sync∕atomic·LoadUint64(SB), NOSPLIT, $0 + JMP sync∕atomic·LoadInt64(SB) + +TEXT sync∕atomic·LoadUintptr(SB), NOSPLIT, $0 + JMP sync∕atomic·LoadInt64(SB) + +TEXT sync∕atomic·LoadPointer(SB), NOSPLIT, $0 + JMP sync∕atomic·LoadInt64(SB) + +// Store +TEXT sync∕atomic·StoreInt32(SB), NOSPLIT, $0 + MOVD $__tsan_go_atomic32_store(SB), R9 + BL racecallatomic<>(SB) + RET + +TEXT sync∕atomic·StoreInt64(SB), NOSPLIT, $0 + MOVD $__tsan_go_atomic64_store(SB), R9 + BL racecallatomic<>(SB) + RET + +TEXT sync∕atomic·StoreUint32(SB), NOSPLIT, $0 + JMP sync∕atomic·StoreInt32(SB) + +TEXT sync∕atomic·StoreUint64(SB), NOSPLIT, $0 + JMP sync∕atomic·StoreInt64(SB) + +TEXT sync∕atomic·StoreUintptr(SB), NOSPLIT, $0 + JMP sync∕atomic·StoreInt64(SB) + +// Swap +TEXT sync∕atomic·SwapInt32(SB), NOSPLIT, $0 + MOVD $__tsan_go_atomic32_exchange(SB), R9 + BL racecallatomic<>(SB) + RET + +TEXT sync∕atomic·SwapInt64(SB), NOSPLIT, $0 + MOVD $__tsan_go_atomic64_exchange(SB), R9 + BL racecallatomic<>(SB) + RET + +TEXT sync∕atomic·SwapUint32(SB), NOSPLIT, $0 + JMP sync∕atomic·SwapInt32(SB) + +TEXT sync∕atomic·SwapUint64(SB), NOSPLIT, $0 + JMP sync∕atomic·SwapInt64(SB) + +TEXT sync∕atomic·SwapUintptr(SB), NOSPLIT, $0 + JMP sync∕atomic·SwapInt64(SB) + +// Add +TEXT sync∕atomic·AddInt32(SB), NOSPLIT, $0 + MOVD $__tsan_go_atomic32_fetch_add(SB), R9 + BL racecallatomic<>(SB) + MOVW add+8(FP), R0 // convert fetch_add to add_fetch + MOVW ret+16(FP), R1 + ADD R0, R1, R0 + MOVW R0, ret+16(FP) + RET + +TEXT sync∕atomic·AddInt64(SB), NOSPLIT, $0 + MOVD $__tsan_go_atomic64_fetch_add(SB), R9 + BL racecallatomic<>(SB) + MOVD add+8(FP), R0 // convert fetch_add to add_fetch + MOVD ret+16(FP), R1 + ADD R0, R1, R0 + MOVD R0, ret+16(FP) + RET + +TEXT sync∕atomic·AddUint32(SB), NOSPLIT, $0 + JMP sync∕atomic·AddInt32(SB) + +TEXT sync∕atomic·AddUint64(SB), NOSPLIT, $0 + JMP sync∕atomic·AddInt64(SB) + +TEXT sync∕atomic·AddUintptr(SB), NOSPLIT, $0 + JMP sync∕atomic·AddInt64(SB) + +// CompareAndSwap +TEXT sync∕atomic·CompareAndSwapInt32(SB), NOSPLIT, $0 + MOVD $__tsan_go_atomic32_compare_exchange(SB), R9 + BL racecallatomic<>(SB) + RET + +TEXT sync∕atomic·CompareAndSwapInt64(SB), NOSPLIT, $0 + MOVD $__tsan_go_atomic64_compare_exchange(SB), R9 + BL racecallatomic<>(SB) + RET + +TEXT sync∕atomic·CompareAndSwapUint32(SB), NOSPLIT, $0 + JMP sync∕atomic·CompareAndSwapInt32(SB) + +TEXT sync∕atomic·CompareAndSwapUint64(SB), NOSPLIT, $0 + JMP sync∕atomic·CompareAndSwapInt64(SB) + +TEXT sync∕atomic·CompareAndSwapUintptr(SB), NOSPLIT, $0 + JMP sync∕atomic·CompareAndSwapInt64(SB) + +// Generic atomic operation implementation. +// R9 = addr of target function +TEXT racecallatomic<>(SB), NOSPLIT, $0 + // Set up these registers + // R0 = *ThreadState + // R1 = caller pc + // R2 = pc + // R3 = addr of incoming arg list + + // Trigger SIGSEGV early. + MOVD 40(RSP), R3 // 1st arg is addr. after two times BL, get it at 40(RSP) + MOVD (R3), R13 // segv here if addr is bad + // Check that addr is within [arenastart, arenaend) or within [racedatastart, racedataend). + MOVD runtime·racearenastart(SB), R10 + CMP R10, R3 + BLT racecallatomic_data + MOVD runtime·racearenaend(SB), R10 + CMP R10, R3 + BLT racecallatomic_ok +racecallatomic_data: + MOVD runtime·racedatastart(SB), R10 + CMP R10, R3 + BLT racecallatomic_ignore + MOVD runtime·racedataend(SB), R10 + CMP R10, R3 + BGE racecallatomic_ignore +racecallatomic_ok: + // Addr is within the good range, call the atomic function. + load_g + MOVD g_racectx(g), R0 // goroutine context + MOVD 16(RSP), R1 // caller pc + MOVD R9, R2 // pc + ADD $40, RSP, R3 + JMP racecall<>(SB) // does not return +racecallatomic_ignore: + // Addr is outside the good range. + // Call __tsan_go_ignore_sync_begin to ignore synchronization during the atomic op. + // An attempt to synchronize on the address would cause crash. + MOVD R9, R20 // remember the original function + MOVD $__tsan_go_ignore_sync_begin(SB), R9 + load_g + MOVD g_racectx(g), R0 // goroutine context + BL racecall<>(SB) + MOVD R20, R9 // restore the original function + // Call the atomic function. + // racecall will call LLVM race code which might clobber R28 (g) + load_g + MOVD g_racectx(g), R0 // goroutine context + MOVD 16(RSP), R1 // caller pc + MOVD R9, R2 // pc + ADD $40, RSP, R3 // arguments + BL racecall<>(SB) + // Call __tsan_go_ignore_sync_end. + MOVD $__tsan_go_ignore_sync_end(SB), R9 + MOVD g_racectx(g), R0 // goroutine context + BL racecall<>(SB) + RET + +// func runtime·racecall(void(*f)(...), ...) +// Calls C function f from race runtime and passes up to 4 arguments to it. +// The arguments are never heap-object-preserving pointers, so we pretend there are no arguments. +TEXT runtime·racecall(SB), NOSPLIT, $0-0 + MOVD fn+0(FP), R9 + MOVD arg0+8(FP), R0 + MOVD arg1+16(FP), R1 + MOVD arg2+24(FP), R2 + MOVD arg3+32(FP), R3 + JMP racecall<>(SB) + +// Switches SP to g0 stack and calls (R9). Arguments already set. +TEXT racecall<>(SB), NOSPLIT, $0-0 + MOVD g_m(g), R10 + // Switch to g0 stack. + MOVD RSP, R19 // callee-saved, preserved across the CALL + MOVD m_g0(R10), R11 + CMP R11, g + BEQ call // already on g0 + MOVD (g_sched+gobuf_sp)(R11), R12 + MOVD R12, RSP +call: + BL R9 + MOVD R19, RSP + RET + +// C->Go callback thunk that allows to call runtime·racesymbolize from C code. +// Direct Go->C race call has only switched SP, finish g->g0 switch by setting correct g. +// The overall effect of Go->C->Go call chain is similar to that of mcall. +// R0 contains command code. R1 contains command-specific context. +// See racecallback for command codes. +TEXT runtime·racecallbackthunk(SB), NOSPLIT|NOFRAME, $0 + // Handle command raceGetProcCmd (0) here. + // First, code below assumes that we are on curg, while raceGetProcCmd + // can be executed on g0. Second, it is called frequently, so will + // benefit from this fast path. + CMP $0, R0 + BNE rest + MOVD g, R13 + load_g + MOVD g_m(g), R0 + MOVD m_p(R0), R0 + MOVD p_racectx(R0), R0 + MOVD R0, (R1) + MOVD R13, g + JMP (LR) +rest: + // Save callee-saved registers (Go code won't respect that). + // 8(RSP) and 16(RSP) are for args passed through racecallback + SUB $96, RSP + MOVD LR, 0(RSP) + STP (R19, R20), 24(RSP) + STP (R21, R22), 40(RSP) + STP (R23, R24), 56(RSP) + STP (R25, R26), 72(RSP) + MOVD R27, 88(RSP) + // Set g = g0. + // load_g will clobber R0, Save R0 + MOVD R0, R13 + load_g + // restore R0 + MOVD R13, R0 + MOVD g_m(g), R13 + MOVD m_g0(R13), g + + MOVD R0, 8(RSP) // func arg + MOVD R1, 16(RSP) // func arg + BL runtime·racecallback(SB) + + // All registers are smashed after Go code, reload. + MOVD g_m(g), R13 + MOVD m_curg(R13), g // g = m->curg + // Restore callee-saved registers. + MOVD 0(RSP), LR + LDP 24(RSP), (R19, R20) + LDP 40(RSP), (R21, R22) + LDP 56(RSP), (R23, R24) + LDP 72(RSP), (R25, R26) + MOVD 88(RSP), R27 + ADD $96, RSP + JMP (LR) + +// tls_g, g value for each thread in TLS +GLOBL runtime·tls_g+0(SB), TLSBSS+DUPOK, $8 -- 2.50.0