]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/compile/internal/amd64/ssa.go
cmd/compile: don't use BTS when OR works, add direct memory BTS operations
[gostls13.git] / src / cmd / compile / internal / amd64 / ssa.go
index d32ea7ec161034be4291c595bc3cc280fa415fe2..ab762c24f67034e5d43c17878affc9a055664ab8 100644 (file)
@@ -714,9 +714,9 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) {
                p.To.Offset = v.AuxInt
        case ssa.OpAMD64BTLconst, ssa.OpAMD64BTQconst,
                ssa.OpAMD64TESTQconst, ssa.OpAMD64TESTLconst, ssa.OpAMD64TESTWconst, ssa.OpAMD64TESTBconst,
-               ssa.OpAMD64BTSLconst, ssa.OpAMD64BTSQconst,
-               ssa.OpAMD64BTCLconst, ssa.OpAMD64BTCQconst,
-               ssa.OpAMD64BTRLconst, ssa.OpAMD64BTRQconst:
+               ssa.OpAMD64BTSQconst,
+               ssa.OpAMD64BTCQconst,
+               ssa.OpAMD64BTRQconst:
                op := v.Op
                if op == ssa.OpAMD64BTQconst && v.AuxInt < 32 {
                        // Emit 32-bit version because it's shorter
@@ -851,7 +851,8 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) {
                }
                fallthrough
        case ssa.OpAMD64ANDQconstmodify, ssa.OpAMD64ANDLconstmodify, ssa.OpAMD64ORQconstmodify, ssa.OpAMD64ORLconstmodify,
-               ssa.OpAMD64XORQconstmodify, ssa.OpAMD64XORLconstmodify:
+               ssa.OpAMD64XORQconstmodify, ssa.OpAMD64XORLconstmodify,
+               ssa.OpAMD64BTSQconstmodify, ssa.OpAMD64BTRQconstmodify, ssa.OpAMD64BTCQconstmodify:
                sc := v.AuxValAndOff()
                off := sc.Off64()
                val := sc.Val64()