aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/flagalloc.go
diff options
context:
space:
mode:
authorCherry Zhang <cherryyz@google.com>2016-08-04 06:57:34 -0400
committerCherry Zhang <cherryyz@google.com>2016-08-07 03:08:03 +0000
commit0484052358ffdfb64cd533b3ea55f7c2b9d0b7bd (patch)
tree9970070d3ef8a2fbfa441078188b8ba4cf960e5b /src/cmd/compile/internal/ssa/flagalloc.go
parent01ae4b1da4fd38c0cc5f370c958aa67735fdcd40 (diff)
downloadgo-0484052358ffdfb64cd533b3ea55f7c2b9d0b7bd.tar.gz
go-0484052358ffdfb64cd533b3ea55f7c2b9d0b7bd.zip
[dev.ssa] cmd/compile: remove flags from regMask
Reg allocator skips flag-typed values. Flag allocator uses the type and whether the op has "clobberFlags" set. Tested on AMD64, ARM, ARM64, 386. Passed 'toolstash -cmp' on AMD64. PPC64 is coded blindly. Change-Id: Ib1cc27efecef6a1bb27f7d7ed035a582660d244f Reviewed-on: https://go-review.googlesource.com/25480 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/cmd/compile/internal/ssa/flagalloc.go')
-rw-r--r--src/cmd/compile/internal/ssa/flagalloc.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/ssa/flagalloc.go b/src/cmd/compile/internal/ssa/flagalloc.go
index 1aa82a3947..aefa81b5b3 100644
--- a/src/cmd/compile/internal/ssa/flagalloc.go
+++ b/src/cmd/compile/internal/ssa/flagalloc.go
@@ -31,7 +31,7 @@ func flagalloc(f *Func) {
if v == flag {
flag = nil
}
- if opcodeTable[v.Op].reg.clobbers&f.Config.flagRegMask != 0 {
+ if opcodeTable[v.Op].clobberFlags {
flag = nil
}
for _, a := range v.Args {
@@ -103,7 +103,7 @@ func flagalloc(f *Func) {
}
// Issue v.
b.Values = append(b.Values, v)
- if opcodeTable[v.Op].reg.clobbers&f.Config.flagRegMask != 0 {
+ if opcodeTable[v.Op].clobberFlags {
flag = nil
}
if v.Type.IsFlags() {