]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/ppc64, cmd/compile/internal/ssa: Remove OldArch checks
authorCarlos Eduardo Seo <cseo@linux.vnet.ibm.com>
Wed, 22 Mar 2017 15:25:44 +0000 (12:25 -0300)
committerLynn Boger <laboger@linux.vnet.ibm.com>
Wed, 22 Mar 2017 18:37:05 +0000 (18:37 +0000)
Starting in go1.9, the minimum processor requirement for ppc64 is POWER8.
Therefore, the checks for OldArch and the code enabled by it are not necessary
anymore.

Updates #19074

Change-Id: I33d6a78b2462c80d57c5dbcba2e13424630afab4
Reviewed-on: https://go-review.googlesource.com/38404
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/compile/internal/ppc64/ssa.go
src/cmd/compile/internal/ssa/config.go

index 563db6d2f26b65c110d8f330ee8a2d56df3f4af6..2d7ea63a767ed4db31f9da397153f6e0ba4aa7ae 100644 (file)
@@ -765,27 +765,6 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
                //   rtmp := 1
                //   isel rt,0,rtmp,!cond // rt is target in ppc asm
 
-               if v.Block.Func.Config.OldArch {
-                       p := s.Prog(ppc64.AMOVD)
-                       p.From.Type = obj.TYPE_CONST
-                       p.From.Offset = 1
-                       p.To.Type = obj.TYPE_REG
-                       p.To.Reg = v.Reg()
-
-                       pb := s.Prog(condOps[v.Op])
-                       pb.To.Type = obj.TYPE_BRANCH
-
-                       p = s.Prog(ppc64.AMOVD)
-                       p.From.Type = obj.TYPE_CONST
-                       p.From.Offset = 0
-                       p.To.Type = obj.TYPE_REG
-                       p.To.Reg = v.Reg()
-
-                       p = s.Prog(obj.ANOP)
-                       gc.Patch(pb, p)
-                       break
-               }
-               // Modern PPC uses ISEL
                p := s.Prog(ppc64.AMOVD)
                p.From.Type = obj.TYPE_CONST
                p.From.Offset = 1
@@ -797,30 +776,6 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
        case ssa.OpPPC64FLessEqual, // These include a second branch for EQ -- dealing with NaN prevents REL= to !REL conversion
                ssa.OpPPC64FGreaterEqual:
 
-               if v.Block.Func.Config.OldArch {
-                       p := s.Prog(ppc64.AMOVW)
-                       p.From.Type = obj.TYPE_CONST
-                       p.From.Offset = 1
-                       p.To.Type = obj.TYPE_REG
-                       p.To.Reg = v.Reg()
-
-                       pb0 := s.Prog(condOps[v.Op])
-                       pb0.To.Type = obj.TYPE_BRANCH
-                       pb1 := s.Prog(ppc64.ABEQ)
-                       pb1.To.Type = obj.TYPE_BRANCH
-
-                       p = s.Prog(ppc64.AMOVW)
-                       p.From.Type = obj.TYPE_CONST
-                       p.From.Offset = 0
-                       p.To.Type = obj.TYPE_REG
-                       p.To.Reg = v.Reg()
-
-                       p = s.Prog(obj.ANOP)
-                       gc.Patch(pb0, p)
-                       gc.Patch(pb1, p)
-                       break
-               }
-               // Modern PPC uses ISEL
                p := s.Prog(ppc64.AMOVD)
                p.From.Type = obj.TYPE_CONST
                p.From.Offset = 1
index ab541ccafcfc161c7c737edf1494d0048843dd28..2be01d7a6f85ff7d6c9d18dd449f7591b872f30f 100644 (file)
@@ -34,7 +34,6 @@ type Config struct {
        noDuffDevice    bool          // Don't use Duff's device
        nacl            bool          // GOOS=nacl
        use387          bool          // GO386=387
-       OldArch         bool          // True for older versions of architecture, e.g. true for PPC64BE, false for PPC64LE
        NeedsFpScratch  bool          // No direct move between GP and FP register sets
        BigEndian       bool          //
        sparsePhiCutoff uint64        // Sparse phi location algorithm used above this #blocks*#variables score
@@ -208,7 +207,6 @@ func NewConfig(arch string, types Types, ctxt *obj.Link, optimize bool) *Config
                c.hasGReg = true
                c.noDuffDevice = obj.GOOS == "darwin" // darwin linker cannot handle BR26 reloc with non-zero addend
        case "ppc64":
-               c.OldArch = true
                c.BigEndian = true
                fallthrough
        case "ppc64le":