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>
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
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: