1
0
mirror of https://github.com/golang/go synced 2024-11-17 05:54:46 -07:00

cmd/compile: update PPC64 CALL* ops for register ABI

Allow the CALL ops to take variable number of arguments.

Change-Id: I6753c2fcb434ce2ebbce51dd595fbcbb39a60bed
Reviewed-on: https://go-review.googlesource.com/c/go/+/351589
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Lynn Boger <laboger@linux.vnet.ibm.com>
This commit is contained in:
Lynn Boger 2021-09-22 14:05:49 -05:00
parent 1537f14db5
commit 333f3de2a1
2 changed files with 8 additions and 8 deletions

View File

@ -428,10 +428,10 @@ func init() {
{name: "LoweredRound32F", argLength: 1, reg: fp11, resultInArg0: true, zeroWidth: true}, {name: "LoweredRound32F", argLength: 1, reg: fp11, resultInArg0: true, zeroWidth: true},
{name: "LoweredRound64F", argLength: 1, reg: fp11, resultInArg0: true, zeroWidth: true}, {name: "LoweredRound64F", argLength: 1, reg: fp11, resultInArg0: true, zeroWidth: true},
{name: "CALLstatic", argLength: 1, reg: regInfo{clobbers: callerSave}, aux: "CallOff", clobberFlags: true, call: true}, // call static function aux.(*obj.LSym). arg0=mem, auxint=argsize, returns mem {name: "CALLstatic", argLength: -1, reg: regInfo{clobbers: callerSave}, aux: "CallOff", clobberFlags: true, call: true}, // call static function aux.(*obj.LSym). arg0=mem, auxint=argsize, returns mem
{name: "CALLtail", argLength: 1, reg: regInfo{clobbers: callerSave}, aux: "CallOff", clobberFlags: true, call: true}, // tail call static function aux.(*obj.LSym). arg0=mem, auxint=argsize, returns mem {name: "CALLtail", argLength: -1, reg: regInfo{clobbers: callerSave}, aux: "CallOff", clobberFlags: true, call: true}, // tail call static function aux.(*obj.LSym). arg0=mem, auxint=argsize, returns mem
{name: "CALLclosure", argLength: 3, reg: regInfo{inputs: []regMask{callptr, ctxt, 0}, clobbers: callerSave}, aux: "CallOff", clobberFlags: true, call: true}, // call function via closure. arg0=codeptr, arg1=closure, arg2=mem, auxint=argsize, returns mem {name: "CALLclosure", argLength: -1, reg: regInfo{inputs: []regMask{callptr, ctxt, 0}, clobbers: callerSave}, aux: "CallOff", clobberFlags: true, call: true}, // call function via closure. arg0=codeptr, arg1=closure, arg2=mem, auxint=argsize, returns mem
{name: "CALLinter", argLength: 2, reg: regInfo{inputs: []regMask{callptr}, clobbers: callerSave}, aux: "CallOff", clobberFlags: true, call: true}, // call fn by pointer. arg0=codeptr, arg1=mem, auxint=argsize, returns mem {name: "CALLinter", argLength: -1, reg: regInfo{inputs: []regMask{callptr}, clobbers: callerSave}, aux: "CallOff", clobberFlags: true, call: true}, // call fn by pointer. arg0=codeptr, arg1=mem, auxint=argsize, returns mem
// large or unaligned zeroing // large or unaligned zeroing
// arg0 = address of memory to zero (in R3, changed as side effect) // arg0 = address of memory to zero (in R3, changed as side effect)

View File

@ -27337,7 +27337,7 @@ var opcodeTable = [...]opInfo{
{ {
name: "CALLstatic", name: "CALLstatic",
auxType: auxCallOff, auxType: auxCallOff,
argLen: 1, argLen: -1,
clobberFlags: true, clobberFlags: true,
call: true, call: true,
reg: regInfo{ reg: regInfo{
@ -27347,7 +27347,7 @@ var opcodeTable = [...]opInfo{
{ {
name: "CALLtail", name: "CALLtail",
auxType: auxCallOff, auxType: auxCallOff,
argLen: 1, argLen: -1,
clobberFlags: true, clobberFlags: true,
call: true, call: true,
reg: regInfo{ reg: regInfo{
@ -27357,7 +27357,7 @@ var opcodeTable = [...]opInfo{
{ {
name: "CALLclosure", name: "CALLclosure",
auxType: auxCallOff, auxType: auxCallOff,
argLen: 3, argLen: -1,
clobberFlags: true, clobberFlags: true,
call: true, call: true,
reg: regInfo{ reg: regInfo{
@ -27371,7 +27371,7 @@ var opcodeTable = [...]opInfo{
{ {
name: "CALLinter", name: "CALLinter",
auxType: auxCallOff, auxType: auxCallOff,
argLen: 2, argLen: -1,
clobberFlags: true, clobberFlags: true,
call: true, call: true,
reg: regInfo{ reg: regInfo{