mirror of https://github.com/golang/go.git
cmd/compile/internal: add ABI register info for riscv64
This CL adds register information for riscv64 Updates #40724 Change-Id: If2275d9135596ff856d096881e4fe8bd1eeaacb2 Reviewed-on: https://go-review.googlesource.com/c/go/+/359337 Trust: mzh <mzh@golangcn.org> Reviewed-by: Cherry Mui <cherryyz@google.com> Run-TryBot: mzh <mzh@golangcn.org> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
7ca6902c17
commit
caf5cd9da8
|
|
@ -230,6 +230,8 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) {
|
|||
p.From.Type = obj.TYPE_REG
|
||||
p.From.Reg = v.Args[0].Reg()
|
||||
ssagen.AddrAuto(&p.To, v)
|
||||
case ssa.OpArgIntReg, ssa.OpArgFloatReg:
|
||||
ssagen.CheckArgReg(v)
|
||||
case ssa.OpSP, ssa.OpSB, ssa.OpGetG:
|
||||
// nothing to do
|
||||
case ssa.OpRISCV64MOVBreg, ssa.OpRISCV64MOVHreg, ssa.OpRISCV64MOVWreg,
|
||||
|
|
|
|||
|
|
@ -296,6 +296,8 @@ func NewConfig(arch string, types Types, ctxt *obj.Link, optimize, softfloat boo
|
|||
c.registers = registersRISCV64[:]
|
||||
c.gpRegMask = gpRegMaskRISCV64
|
||||
c.fpRegMask = fpRegMaskRISCV64
|
||||
// c.intParamRegs = paramIntRegRISCV64
|
||||
// c.floatParamRegs = paramFloatRegRISCV64
|
||||
c.FPReg = framepointerRegRISCV64
|
||||
c.hasGReg = true
|
||||
case "wasm":
|
||||
|
|
|
|||
|
|
@ -477,5 +477,9 @@ func init() {
|
|||
gpregmask: gpMask,
|
||||
fpregmask: fpMask,
|
||||
framepointerreg: -1, // not used
|
||||
// Integer parameters passed in register X10-X17, X8-X9, X18-X23
|
||||
ParamIntRegNames: "X10 X11 X12 X13 X14 X15 X16 X17 X8 X9 X18 X19 X20 X21 X22 X23",
|
||||
// Float parameters passed in register F10-F17, F8-F9, F18-F23
|
||||
ParamFloatRegNames: "F10 F11 F12 F13 F14 F15 F16 F17 F8 F9 F18 F19 F20 F21 F22 F23",
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37356,8 +37356,8 @@ var registersRISCV64 = [...]Register{
|
|||
{62, riscv.REG_F31, -1, "F31"},
|
||||
{63, 0, -1, "SB"},
|
||||
}
|
||||
var paramIntRegRISCV64 = []int8(nil)
|
||||
var paramFloatRegRISCV64 = []int8(nil)
|
||||
var paramIntRegRISCV64 = []int8{9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 17, 18, 19, 20, 21, 22}
|
||||
var paramFloatRegRISCV64 = []int8{41, 42, 43, 44, 45, 46, 47, 48, 39, 40, 49, 50, 51, 52, 53, 54}
|
||||
var gpRegMaskRISCV64 = regMask(1006632944)
|
||||
var fpRegMaskRISCV64 = regMask(9223372034707292160)
|
||||
var specialRegMaskRISCV64 = regMask(0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue