mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
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:
parent
1036f6f485
commit
73b6aa0fec
4 changed files with 18 additions and 12 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -812,16 +812,18 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
archs = append(archs, arch{
|
archs = append(archs, arch{
|
||||||
name: "S390X",
|
name: "S390X",
|
||||||
pkg: "cmd/internal/obj/s390x",
|
pkg: "cmd/internal/obj/s390x",
|
||||||
genfile: "../../s390x/ssa.go",
|
genfile: "../../s390x/ssa.go",
|
||||||
ops: S390Xops,
|
ops: S390Xops,
|
||||||
blocks: S390Xblocks,
|
blocks: S390Xblocks,
|
||||||
regnames: regNamesS390X,
|
regnames: regNamesS390X,
|
||||||
gpregmask: gp,
|
ParamIntRegNames: "R2 R3 R4 R5 R6 R7 R8 R9",
|
||||||
fpregmask: fp,
|
ParamFloatRegNames: "F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15",
|
||||||
framepointerreg: -1, // not used
|
gpregmask: gp,
|
||||||
linkreg: int8(num["R14"]),
|
fpregmask: fp,
|
||||||
|
framepointerreg: -1, // not used
|
||||||
|
linkreg: int8(num["R14"]),
|
||||||
imports: []string{
|
imports: []string{
|
||||||
"cmd/internal/obj/s390x",
|
"cmd/internal/obj/s390x",
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue