]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/compile/internal/amd64/ssa.go
internal/buildcfg: move build configuration out of cmd/internal/objabi
[gostls13.git] / src / cmd / compile / internal / amd64 / ssa.go
index fce3c6b8205416f1460ae6252375bb7f0529182e..42c12953f95a7685b24e309cd3f23bdfddd86680 100644 (file)
@@ -6,6 +6,7 @@ package amd64
 
 import (
        "fmt"
+       "internal/buildcfg"
        "math"
 
        "cmd/compile/internal/base"
@@ -17,7 +18,6 @@ import (
        "cmd/compile/internal/types"
        "cmd/internal/obj"
        "cmd/internal/obj/x86"
-       "cmd/internal/objabi"
 )
 
 // markMoves marks any MOVXconst ops that need to avoid clobbering flags.
@@ -825,7 +825,7 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) {
                p.To.Reg = v.Args[0].Reg()
                ssagen.AddAux2(&p.To, v, sc.Off64())
        case ssa.OpAMD64MOVOstorezero:
-               if !objabi.Experiment.RegabiG || s.ABI != obj.ABIInternal {
+               if !buildcfg.Experiment.RegabiG || s.ABI != obj.ABIInternal {
                        // zero X15 manually
                        opregreg(s, x86.AXORPS, x86.REG_X15, x86.REG_X15)
                }
@@ -916,7 +916,7 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) {
                p.To.Type = obj.TYPE_REG
                p.To.Reg = v.Reg()
        case ssa.OpAMD64DUFFZERO:
-               if !objabi.Experiment.RegabiG || s.ABI != obj.ABIInternal {
+               if !buildcfg.Experiment.RegabiG || s.ABI != obj.ABIInternal {
                        // zero X15 manually
                        opregreg(s, x86.AXORPS, x86.REG_X15, x86.REG_X15)
                }
@@ -999,20 +999,20 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) {
                // Closure pointer is DX.
                ssagen.CheckLoweredGetClosurePtr(v)
        case ssa.OpAMD64LoweredGetG:
-               if objabi.Experiment.RegabiG && s.ABI == obj.ABIInternal {
+               if buildcfg.Experiment.RegabiG && s.ABI == obj.ABIInternal {
                        v.Fatalf("LoweredGetG should not appear in ABIInternal")
                }
                r := v.Reg()
                getgFromTLS(s, r)
        case ssa.OpAMD64CALLstatic:
-               if objabi.Experiment.RegabiG && s.ABI == obj.ABI0 && v.Aux.(*ssa.AuxCall).Fn.ABI() == obj.ABIInternal {
+               if buildcfg.Experiment.RegabiG && s.ABI == obj.ABI0 && v.Aux.(*ssa.AuxCall).Fn.ABI() == obj.ABIInternal {
                        // zeroing X15 when entering ABIInternal from ABI0
                        opregreg(s, x86.AXORPS, x86.REG_X15, x86.REG_X15)
                        // set G register from TLS
                        getgFromTLS(s, x86.REG_R14)
                }
                s.Call(v)
-               if objabi.Experiment.RegabiG && s.ABI == obj.ABIInternal && v.Aux.(*ssa.AuxCall).Fn.ABI() == obj.ABI0 {
+               if buildcfg.Experiment.RegabiG && s.ABI == obj.ABIInternal && v.Aux.(*ssa.AuxCall).Fn.ABI() == obj.ABI0 {
                        // zeroing X15 when entering ABIInternal from ABI0
                        opregreg(s, x86.AXORPS, x86.REG_X15, x86.REG_X15)
                        // set G register from TLS
@@ -1306,7 +1306,7 @@ func ssaGenBlock(s *ssagen.State, b, next *ssa.Block) {
        case ssa.BlockRet:
                s.Prog(obj.ARET)
        case ssa.BlockRetJmp:
-               if objabi.Experiment.RegabiG && s.ABI == obj.ABI0 && b.Aux.(*obj.LSym).ABI() == obj.ABIInternal {
+               if buildcfg.Experiment.RegabiG && s.ABI == obj.ABI0 && b.Aux.(*obj.LSym).ABI() == obj.ABIInternal {
                        // zeroing X15 when entering ABIInternal from ABI0
                        opregreg(s, x86.AXORPS, x86.REG_X15, x86.REG_X15)
                        // set G register from TLS