diff options
| author | Cherry Zhang <cherryyz@google.com> | 2016-09-16 09:27:06 -0400 |
|---|---|---|
| committer | Cherry Zhang <cherryyz@google.com> | 2016-09-16 14:53:12 +0000 |
| commit | 882dd1c3baff19cfe8d59bc1f69d766b38540fa5 (patch) | |
| tree | 8ed8e5125bdea0990771eb19ff5645a52c4e9c40 /src | |
| parent | 8607bed7445100993938ee96a028627461fce9d3 (diff) | |
| download | go-882dd1c3baff19cfe8d59bc1f69d766b38540fa5.tar.xz | |
cmd/compile: enable rewritings that are blocked by old backends
Old backends did not implement them, but SSA do.
Change-Id: I543b2281dcf4bab0da37c9b1f26a5ef55a0ea11b
Reviewed-on: https://go-review.googlesource.com/29278
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/compile/internal/gc/walk.go | 8 | ||||
| -rw-r--r-- | src/cmd/compile/internal/ppc64/prog.go | 6 |
2 files changed, 5 insertions, 9 deletions
diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go index 8fa335a300..5d5022fea7 100644 --- a/src/cmd/compile/internal/gc/walk.go +++ b/src/cmd/compile/internal/gc/walk.go @@ -3387,8 +3387,7 @@ func samecheap(a *Node, b *Node) bool { // The result of walkrotate MUST be assigned back to n, e.g. // n.Left = walkrotate(n.Left) func walkrotate(n *Node) *Node { - //TODO: enable LROT on ARM64 once the old backend is gone - if Thearch.LinkArch.InFamily(sys.MIPS64, sys.ARM64, sys.PPC64) { + if Thearch.LinkArch.InFamily(sys.MIPS64, sys.PPC64) { return n } @@ -3647,11 +3646,6 @@ ret: func walkdiv(n *Node, init *Nodes) *Node { // if >= 0, nr is 1<<pow // 1 if nr is negative. - // TODO(minux) - if Thearch.LinkArch.InFamily(sys.MIPS64, sys.PPC64) { - return n - } - if n.Right.Op != OLITERAL { return n } diff --git a/src/cmd/compile/internal/ppc64/prog.go b/src/cmd/compile/internal/ppc64/prog.go index 455db9af6c..cc83f0d208 100644 --- a/src/cmd/compile/internal/ppc64/prog.go +++ b/src/cmd/compile/internal/ppc64/prog.go @@ -54,8 +54,10 @@ var progtable = [ppc64.ALAST & obj.AMask]obj.ProgInfo{ ppc64.AEQV & obj.AMask: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite}, ppc64.AMULLD & obj.AMask: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite}, ppc64.AMULLW & obj.AMask: {Flags: gc.SizeL | gc.LeftRead | gc.RegRead | gc.RightWrite}, - ppc64.AMULHD & obj.AMask: {Flags: gc.SizeL | gc.LeftRead | gc.RegRead | gc.RightWrite}, - ppc64.AMULHDU & obj.AMask: {Flags: gc.SizeL | gc.LeftRead | gc.RegRead | gc.RightWrite}, + ppc64.AMULHD & obj.AMask: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite}, + ppc64.AMULHDU & obj.AMask: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite}, + ppc64.AMULHW & obj.AMask: {Flags: gc.SizeL | gc.LeftRead | gc.RegRead | gc.RightWrite}, + ppc64.AMULHWU & obj.AMask: {Flags: gc.SizeL | gc.LeftRead | gc.RegRead | gc.RightWrite}, ppc64.ADIVD & obj.AMask: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite}, ppc64.ADIVDU & obj.AMask: {Flags: gc.SizeQ | gc.LeftRead | gc.RegRead | gc.RightWrite}, ppc64.ADIVW & obj.AMask: {Flags: gc.SizeL | gc.LeftRead | gc.RegRead | gc.RightWrite}, |
