mirror of
https://github.com/golang/go
synced 2024-11-26 11:48:03 -07:00
cmd/internal/obj: use REGENTRYTMP* in a few more places
There are a few remaining places in obj6 where we hard-code safe-on-entry registers. Fix those to use the consts. For #40724. Change-Id: Ie640521aa67d6c99bc057553dc122160049c6edc Reviewed-on: https://go-review.googlesource.com/c/go/+/307009 Trust: Austin Clements <austin@google.com> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
f25d78f8e2
commit
2ebe77a2fd
@ -1046,7 +1046,7 @@ func stacksplit(ctxt *obj.Link, cursym *obj.LSym, p *obj.Prog, newprog obj.ProgA
|
||||
tmp := int16(REG_AX) // use AX for 32-bit
|
||||
if ctxt.Arch.Family == sys.AMD64 {
|
||||
// for 64-bit, stay away from register ABI parameter registers, even w/o GOEXPERIMENT=regabi
|
||||
tmp = int16(REG_R13)
|
||||
tmp = int16(REGENTRYTMP0)
|
||||
}
|
||||
// large stack: SP-framesize <= stackguard-StackSmall
|
||||
// LEAQ -xxx(SP), tmp
|
||||
@ -1076,8 +1076,8 @@ func stacksplit(ctxt *obj.Link, cursym *obj.LSym, p *obj.Prog, newprog obj.ProgA
|
||||
tmp1 := int16(REG_SI)
|
||||
tmp2 := int16(REG_AX)
|
||||
if ctxt.Arch.Family == sys.AMD64 {
|
||||
tmp1 = int16(REG_R13) // register ABI uses REG_SI and REG_AX for parameters.
|
||||
tmp2 = int16(REG_R12)
|
||||
tmp1 = int16(REGENTRYTMP0) // register ABI uses REG_SI and REG_AX for parameters.
|
||||
tmp2 = int16(REGENTRYTMP1)
|
||||
}
|
||||
// Such a large stack we need to protect against wraparound.
|
||||
// If SP is close to zero:
|
||||
|
Loading…
Reference in New Issue
Block a user