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:
parent
1537f14db5
commit
333f3de2a1
@ -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)
|
||||||
|
@ -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{
|
||||||
|
Loading…
Reference in New Issue
Block a user