Skip to content

Commit

Permalink
cmd/internal/obj: use REGENTRYTMP* in a few more places
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
aclements committed Apr 2, 2021
1 parent f25d78f commit 2ebe77a
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/cmd/internal/obj/x86/obj6.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit 2ebe77a

Please sign in to comment.