mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00: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
1 changed files with 3 additions and 1 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue