diff options
author | Matthew Dempsky <mdempsky@google.com> | 2017-04-21 19:16:15 -0700 |
---|---|---|
committer | Matthew Dempsky <mdempsky@google.com> | 2017-04-23 02:07:26 +0000 |
commit | fe885fbdb0abc567c1a9856a01a03de823bb00ca (patch) | |
tree | 3cfb374b72a55c35b6556264572a9980e7db92cb /src/cmd/compile/internal/ssa/decompose.go | |
parent | 06e5749f0175275cdf0c76836d82a2efd3096386 (diff) | |
download | go-fe885fbdb0abc567c1a9856a01a03de823bb00ca.tar.gz go-fe885fbdb0abc567c1a9856a01a03de823bb00ca.zip |
cmd/compile: cleanup after IntSize->PtrSize conversion
Also, replace "PtrSize == 4 && Arch != amd64p32" with "RegSize == 4".
Passes toolstash-check -all.
Updates #19954.
Change-Id: I79b2ee9324f4fa53e34c9271d837ea288b5d7829
Reviewed-on: https://go-review.googlesource.com/41491
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/decompose.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/decompose.go | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/cmd/compile/internal/ssa/decompose.go b/src/cmd/compile/internal/ssa/decompose.go index b629a64e15..beb89e3314 100644 --- a/src/cmd/compile/internal/ssa/decompose.go +++ b/src/cmd/compile/internal/ssa/decompose.go @@ -25,7 +25,7 @@ func decomposeBuiltIn(f *Func) { for _, name := range f.Names { t := name.Type switch { - case t.IsInteger() && t.Size() == 8 && f.Config.PtrSize == 4: + case t.IsInteger() && t.Size() > f.Config.RegSize: var elemType Type if t.IsSigned() { elemType = f.Config.Types.Int32 @@ -95,8 +95,8 @@ func decomposeBuiltIn(f *Func) { } delete(f.NamedValues, name) case t.IsFloat(): - // floats are never decomposed, even ones bigger than PtrSize - case t.Size() > f.Config.PtrSize: + // floats are never decomposed, even ones bigger than RegSize + case t.Size() > f.Config.RegSize: f.Fatalf("undecomposed named type %v %v", name, t) default: newNames = append(newNames, name) @@ -107,11 +107,7 @@ func decomposeBuiltIn(f *Func) { func decomposeBuiltInPhi(v *Value) { switch { - case v.Type.IsInteger() && v.Type.Size() == 8 && v.Block.Func.Config.PtrSize == 4: - if v.Block.Func.Config.arch == "amd64p32" { - // Even though ints are 32 bits, we have 64-bit ops. - break - } + case v.Type.IsInteger() && v.Type.Size() > v.Block.Func.Config.RegSize: decomposeInt64Phi(v) case v.Type.IsComplex(): decomposeComplexPhi(v) @@ -122,8 +118,8 @@ func decomposeBuiltInPhi(v *Value) { case v.Type.IsInterface(): decomposeInterfacePhi(v) case v.Type.IsFloat(): - // floats are never decomposed, even ones bigger than PtrSize - case v.Type.Size() > v.Block.Func.Config.PtrSize: + // floats are never decomposed, even ones bigger than RegSize + case v.Type.Size() > v.Block.Func.Config.RegSize: v.Fatalf("undecomposed type %s", v.Type) } } |