[dev.ssa] Merge remote-tracking branch 'origin/master' into mergebranch
The only major fixup is that duffzero changed from
8-byte writes to 16-byte writes.
Change-Id: I1762b74ce67a8e4b81c11568027cdb3572f7f87c
diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go
index 7219ffd..36f7435 100644
--- a/src/cmd/compile/internal/gc/ssa.go
+++ b/src/cmd/compile/internal/gc/ssa.go
@@ -2120,10 +2120,7 @@
// Set receiver (for interface calls)
if rcvr != nil {
- var argStart int64
- if HasLinkRegister() {
- argStart += int64(Widthptr)
- }
+ argStart := Ctxt.FixedFrameSize()
if k != callNormal {
argStart += int64(2 * Widthptr)
}
@@ -3737,6 +3734,12 @@
p.To.Type = obj.TYPE_ADDR
p.To.Sym = Linksym(Pkglookup("duffzero", Runtimepkg))
p.To.Offset = v.AuxInt
+ case ssa.OpAMD64MOVOconst:
+ if v.AuxInt != 0 {
+ v.Unimplementedf("MOVOconst can only do constant=0")
+ }
+ r := regnum(v)
+ opregreg(x86.AXORPS, r, r)
case ssa.OpCopy: // TODO: lower to MOVQ earlier?
if v.Type.IsMemory() {