cmd/compile/internal: add register ABI information for s390x

Update #40724

Change-Id: If8f2574259560b097db29347b2aecb098acef863
Reviewed-on: https://go-review.googlesource.com/c/go/+/719462
Reviewed-by: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Vishwanatha HD <vishwanatha.hd@ibm.com>
Reviewed-by: Keith Randall <khr@google.com>
This commit is contained in:
Srinivas Pokala 2025-11-11 04:33:33 +01:00 committed by Keith Randall
parent 1036f6f485
commit 73b6aa0fec
4 changed files with 18 additions and 12 deletions

View file

@ -540,6 +540,8 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) {
p.From.Type = obj.TYPE_REG p.From.Type = obj.TYPE_REG
p.From.Reg = v.Args[0].Reg() p.From.Reg = v.Args[0].Reg()
ssagen.AddrAuto(&p.To, v) ssagen.AddrAuto(&p.To, v)
case ssa.OpArgIntReg, ssa.OpArgFloatReg:
ssagen.CheckArgReg(v)
case ssa.OpS390XLoweredGetClosurePtr: case ssa.OpS390XLoweredGetClosurePtr:
// Closure pointer is R12 (already) // Closure pointer is R12 (already)
ssagen.CheckLoweredGetClosurePtr(v) ssagen.CheckLoweredGetClosurePtr(v)

View file

@ -818,6 +818,8 @@ func init() {
ops: S390Xops, ops: S390Xops,
blocks: S390Xblocks, blocks: S390Xblocks,
regnames: regNamesS390X, regnames: regNamesS390X,
ParamIntRegNames: "R2 R3 R4 R5 R6 R7 R8 R9",
ParamFloatRegNames: "F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15",
gpregmask: gp, gpregmask: gp,
fpregmask: fp, fpregmask: fp,
framepointerreg: -1, // not used framepointerreg: -1, // not used

View file

@ -305,6 +305,8 @@ func NewConfig(arch string, types Types, ctxt *obj.Link, optimize, softfloat boo
c.registers = registersS390X[:] c.registers = registersS390X[:]
c.gpRegMask = gpRegMaskS390X c.gpRegMask = gpRegMaskS390X
c.fpRegMask = fpRegMaskS390X c.fpRegMask = fpRegMaskS390X
//c.intParamRegs = paramIntRegS390X
//c.floatParamRegs = paramFloatRegS390X
c.FPReg = framepointerRegS390X c.FPReg = framepointerRegS390X
c.LinkReg = linkRegS390X c.LinkReg = linkRegS390X
c.hasGReg = true c.hasGReg = true

View file

@ -43559,8 +43559,8 @@ var registersS390X = [...]Register{
{31, s390x.REG_F15, "F15"}, {31, s390x.REG_F15, "F15"},
{32, 0, "SB"}, {32, 0, "SB"},
} }
var paramIntRegS390X = []int8(nil) var paramIntRegS390X = []int8{2, 3, 4, 5, 6, 7, 8, 9}
var paramFloatRegS390X = []int8(nil) var paramFloatRegS390X = []int8{16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}
var gpRegMaskS390X = regMask(23551) var gpRegMaskS390X = regMask(23551)
var fpRegMaskS390X = regMask(4294901760) var fpRegMaskS390X = regMask(4294901760)
var specialRegMaskS390X = regMask(0) var specialRegMaskS390X = regMask(0)