mirror of
https://github.com/golang/go.git
synced 2025-05-25 17:31:22 +00:00
[dev.ssa] cmd/compile: implement genValue for MOVQstoreidx8
Change-Id: I6b13a26e01ef8739ed60e6fd5f5c1ea045bea581 Reviewed-on: https://go-review.googlesource.com/12793 Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
67df7934cc
commit
3e3d162f50
@ -1749,6 +1749,15 @@ func genValue(v *ssa.Value) {
|
||||
p.To.Type = obj.TYPE_MEM
|
||||
p.To.Reg = regnum(v.Args[0])
|
||||
addAux(&p.To, v)
|
||||
case ssa.OpAMD64MOVQstoreidx8:
|
||||
p := Prog(x86.AMOVQ)
|
||||
p.From.Type = obj.TYPE_REG
|
||||
p.From.Reg = regnum(v.Args[2])
|
||||
p.To.Type = obj.TYPE_MEM
|
||||
p.To.Reg = regnum(v.Args[0])
|
||||
p.To.Scale = 8
|
||||
p.To.Index = regnum(v.Args[1])
|
||||
addAux(&p.To, v)
|
||||
case ssa.OpAMD64MOVLQSX, ssa.OpAMD64MOVWQSX, ssa.OpAMD64MOVBQSX, ssa.OpAMD64MOVLQZX, ssa.OpAMD64MOVWQZX, ssa.OpAMD64MOVBQZX:
|
||||
p := Prog(v.Op.Asm())
|
||||
p.From.Type = obj.TYPE_REG
|
||||
|
@ -156,7 +156,7 @@ func init() {
|
||||
{name: "MOVWstore", reg: gpstore, asm: "MOVW"}, // store 2 bytes in arg1 to arg0+auxint. arg2=mem
|
||||
{name: "MOVLstore", reg: gpstore, asm: "MOVL"}, // store 4 bytes in arg1 to arg0+auxint. arg2=mem
|
||||
{name: "MOVQstore", reg: gpstore, asm: "MOVQ"}, // store 8 bytes in arg1 to arg0+auxint. arg2=mem
|
||||
{name: "MOVQstoreidx8", reg: gpstoreidx}, // store 8 bytes in arg2 to arg0+8*arg1+auxint. arg3=mem
|
||||
{name: "MOVQstoreidx8", reg: gpstoreidx, asm: "MOVQ"}, // store 8 bytes in arg2 to arg0+8*arg1+auxint. arg3=mem
|
||||
|
||||
{name: "MOVXzero", reg: gpstoreconst}, // store auxint 0 bytes into arg0 using a series of MOV instructions. arg1=mem.
|
||||
// TODO: implement this when register clobbering works
|
||||
|
@ -890,6 +890,7 @@ var opcodeTable = [...]opInfo{
|
||||
},
|
||||
{
|
||||
name: "MOVQstoreidx8",
|
||||
asm: x86.AMOVQ,
|
||||
reg: regInfo{
|
||||
inputs: []regMask{
|
||||
4295032831, // .AX .CX .DX .BX .SP .BP .SI .DI .R8 .R9 .R10 .R11 .R12 .R13 .R14 .R15 .SB
|
||||
|
Loading…
x
Reference in New Issue
Block a user