mirror of
https://github.com/golang/go
synced 2024-11-26 01:57:56 -07:00
[dev.regabi] runtime: mark racecallbackthunk as ABIInternal
racecallbackthunk is called from C, and it needs to follow C ABI. The assembly code preserves C callee-save registers. It must not be called via wrappers, which may not preserve those registers. Change-Id: Icd72c399f4424d73c4882860d85057fe2671f6aa Reviewed-on: https://go-review.googlesource.com/c/go/+/289194 Trust: Cherry Zhang <cherryyz@google.com> Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
parent
7cc6de59f2
commit
e79c2fd428
@ -419,7 +419,9 @@ call:
|
||||
// The overall effect of Go->C->Go call chain is similar to that of mcall.
|
||||
// RARG0 contains command code. RARG1 contains command-specific context.
|
||||
// See racecallback for command codes.
|
||||
TEXT runtime·racecallbackthunk(SB), NOSPLIT, $56-8
|
||||
// Defined as ABIInternal so as to avoid introducing a wrapper,
|
||||
// because its address is passed to C via funcPC.
|
||||
TEXT runtime·racecallbackthunk<ABIInternal>(SB), NOSPLIT, $56-8
|
||||
// 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
|
||||
|
Loading…
Reference in New Issue
Block a user