...
Text file src/pkg/cmd/compile/internal/ssa/gen/AMD64splitload.rules
1 // Copyright 2019 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 // This file contains rules used by flagalloc to split
6 // a flag-generating merged load op into separate load and op.
7 // Unlike with the other rules files, not all of these
8 // rules will be applied to all values.
9 // Rather, flagalloc will request for rules to be applied
10 // to a particular problematic value.
11 // These are often the exact inverse of rules in AMD64.rules,
12 // only with the conditions removed.
13
14 (CMP(Q|L|W|B)load {sym} [off] ptr x mem) -> (CMP(Q|L|W|B) (MOV(Q|L|W|B)load {sym} [off] ptr mem) x)
15
16 (CMP(Q|L|W|B)constload {sym} [vo] ptr mem) -> (CMP(Q|L|W|B)const (MOV(Q|L|W|B)load {sym} [offOnly(vo)] ptr mem) [valOnly(vo)])
View as plain text