1
2
3
4
5 package ssacompile
6
7 import (
8 "cmd/compile/internal/ssa"
9 "cmd/compile/internal/ssa/ssaop"
10 )
11
12
13
14 func addressingModes(f *ssa.Func) {
15 isInImmediateRange := ssa.Is32Bit
16 switch f.Config.Arch {
17 default:
18
19 return
20 case "amd64", "386":
21 case "s390x":
22 isInImmediateRange = ssa.Is20Bit
23 }
24
25 var tmp []*ssa.Value
26 for _, b := range f.Blocks {
27 for _, v := range b.Values {
28 if !combineFirst[v.Op] {
29 continue
30 }
31
32
33
34
35
36
37 ptrIndex := 0
38 if ssaop.OpcodeTable[v.Op].ResultInArg0 {
39 ptrIndex = 1
40 }
41 p := v.Args[ptrIndex]
42 c, ok := combine[[2]ssaop.Op{v.Op, p.Op}]
43 if !ok {
44 continue
45 }
46
47 switch [2]ssaop.AuxType{ssaop.OpcodeTable[v.Op].AuxType, ssaop.OpcodeTable[p.Op].AuxType} {
48 case [2]ssaop.AuxType{ssaop.AuxTypeSymOff, ssaop.AuxTypeInt32}:
49
50 if !isInImmediateRange(v.AuxInt + p.AuxInt) {
51 continue
52 }
53 v.AuxInt += p.AuxInt
54 case [2]ssaop.AuxType{ssaop.AuxTypeSymOff, ssaop.AuxTypeSymOff}:
55 if v.Aux != nil && p.Aux != nil {
56 continue
57 }
58 if !isInImmediateRange(v.AuxInt + p.AuxInt) {
59 continue
60 }
61 if p.Aux != nil {
62 v.Aux = p.Aux
63 }
64 v.AuxInt += p.AuxInt
65 case [2]ssaop.AuxType{ssaop.AuxTypeSymValAndOff, ssaop.AuxTypeInt32}:
66 vo := ssa.ValAndOff(v.AuxInt)
67 if !vo.CanAdd64(p.AuxInt) {
68 continue
69 }
70 v.AuxInt = int64(vo.AddOffset64(p.AuxInt))
71 case [2]ssaop.AuxType{ssaop.AuxTypeSymValAndOff, ssaop.AuxTypeSymOff}:
72 vo := ssa.ValAndOff(v.AuxInt)
73 if v.Aux != nil && p.Aux != nil {
74 continue
75 }
76 if !vo.CanAdd64(p.AuxInt) {
77 continue
78 }
79 if p.Aux != nil {
80 v.Aux = p.Aux
81 }
82 v.AuxInt = int64(vo.AddOffset64(p.AuxInt))
83 case [2]ssaop.AuxType{ssaop.AuxTypeSymOff, ssaop.AuxTypeNone}:
84
85 case [2]ssaop.AuxType{ssaop.AuxTypeSymValAndOff, ssaop.AuxTypeNone}:
86
87 default:
88 f.Fatalf("unknown aux combining for %s and %s\n", v.Op, p.Op)
89 }
90
91 tmp = append(tmp[:0], v.Args[:ptrIndex]...)
92 tmp = append(tmp, p.Args...)
93 tmp = append(tmp, v.Args[ptrIndex+1:]...)
94 v.ResetArgs()
95 v.Op = c
96 v.AddArgs(tmp...)
97 if needSplit[c] {
98
99
100
101
102 f.Config.SplitLoad(v)
103 }
104 }
105 }
106 }
107
108
109
110 var combineFirst = map[ssaop.Op]bool{}
111
112 func init() {
113 for k := range combine {
114 combineFirst[k[0]] = true
115 }
116 }
117
118
119
120 var needSplit = map[ssaop.Op]bool{
121 ssaop.OpAMD64CMPBloadidx1: true,
122 ssaop.OpAMD64CMPWloadidx1: true,
123 ssaop.OpAMD64CMPLloadidx1: true,
124 ssaop.OpAMD64CMPQloadidx1: true,
125 ssaop.OpAMD64CMPWloadidx2: true,
126 ssaop.OpAMD64CMPLloadidx4: true,
127 ssaop.OpAMD64CMPQloadidx8: true,
128
129 ssaop.OpAMD64CMPBconstloadidx1: true,
130 ssaop.OpAMD64CMPWconstloadidx1: true,
131 ssaop.OpAMD64CMPLconstloadidx1: true,
132 ssaop.OpAMD64CMPQconstloadidx1: true,
133 ssaop.OpAMD64CMPWconstloadidx2: true,
134 ssaop.OpAMD64CMPLconstloadidx4: true,
135 ssaop.OpAMD64CMPQconstloadidx8: true,
136 }
137
138
139
140
141
142
143
144
145
146
147
148 var combine = map[[2]ssaop.Op]ssaop.Op{
149
150 [2]ssaop.Op{ssaop.OpAMD64MOVBload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVBloadidx1,
151 [2]ssaop.Op{ssaop.OpAMD64MOVWload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVWloadidx1,
152 [2]ssaop.Op{ssaop.OpAMD64MOVLload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVLloadidx1,
153 [2]ssaop.Op{ssaop.OpAMD64MOVQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVQloadidx1,
154 [2]ssaop.Op{ssaop.OpAMD64MOVSSload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVSSloadidx1,
155 [2]ssaop.Op{ssaop.OpAMD64MOVSDload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVSDloadidx1,
156
157 [2]ssaop.Op{ssaop.OpAMD64MOVBstore, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVBstoreidx1,
158 [2]ssaop.Op{ssaop.OpAMD64MOVWstore, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVWstoreidx1,
159 [2]ssaop.Op{ssaop.OpAMD64MOVLstore, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVLstoreidx1,
160 [2]ssaop.Op{ssaop.OpAMD64MOVQstore, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVQstoreidx1,
161 [2]ssaop.Op{ssaop.OpAMD64MOVSSstore, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVSSstoreidx1,
162 [2]ssaop.Op{ssaop.OpAMD64MOVSDstore, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVSDstoreidx1,
163
164 [2]ssaop.Op{ssaop.OpAMD64MOVBstoreconst, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVBstoreconstidx1,
165 [2]ssaop.Op{ssaop.OpAMD64MOVWstoreconst, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVWstoreconstidx1,
166 [2]ssaop.Op{ssaop.OpAMD64MOVLstoreconst, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVLstoreconstidx1,
167 [2]ssaop.Op{ssaop.OpAMD64MOVQstoreconst, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVQstoreconstidx1,
168
169 [2]ssaop.Op{ssaop.OpAMD64MOVBload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVBloadidx1,
170 [2]ssaop.Op{ssaop.OpAMD64MOVWload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVWloadidx1,
171 [2]ssaop.Op{ssaop.OpAMD64MOVWload, ssaop.OpAMD64LEAQ2}: ssaop.OpAMD64MOVWloadidx2,
172 [2]ssaop.Op{ssaop.OpAMD64MOVLload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVLloadidx1,
173 [2]ssaop.Op{ssaop.OpAMD64MOVLload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64MOVLloadidx4,
174 [2]ssaop.Op{ssaop.OpAMD64MOVLload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVLloadidx8,
175 [2]ssaop.Op{ssaop.OpAMD64MOVQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVQloadidx1,
176 [2]ssaop.Op{ssaop.OpAMD64MOVQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVQloadidx8,
177 [2]ssaop.Op{ssaop.OpAMD64MOVSSload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVSSloadidx1,
178 [2]ssaop.Op{ssaop.OpAMD64MOVSSload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64MOVSSloadidx4,
179 [2]ssaop.Op{ssaop.OpAMD64MOVSDload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVSDloadidx1,
180 [2]ssaop.Op{ssaop.OpAMD64MOVSDload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVSDloadidx8,
181
182 [2]ssaop.Op{ssaop.OpAMD64MOVBstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVBstoreidx1,
183 [2]ssaop.Op{ssaop.OpAMD64MOVWstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVWstoreidx1,
184 [2]ssaop.Op{ssaop.OpAMD64MOVWstore, ssaop.OpAMD64LEAQ2}: ssaop.OpAMD64MOVWstoreidx2,
185 [2]ssaop.Op{ssaop.OpAMD64MOVLstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVLstoreidx1,
186 [2]ssaop.Op{ssaop.OpAMD64MOVLstore, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64MOVLstoreidx4,
187 [2]ssaop.Op{ssaop.OpAMD64MOVLstore, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVLstoreidx8,
188 [2]ssaop.Op{ssaop.OpAMD64MOVQstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVQstoreidx1,
189 [2]ssaop.Op{ssaop.OpAMD64MOVQstore, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVQstoreidx8,
190 [2]ssaop.Op{ssaop.OpAMD64MOVSSstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVSSstoreidx1,
191 [2]ssaop.Op{ssaop.OpAMD64MOVSSstore, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64MOVSSstoreidx4,
192 [2]ssaop.Op{ssaop.OpAMD64MOVSDstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVSDstoreidx1,
193 [2]ssaop.Op{ssaop.OpAMD64MOVSDstore, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVSDstoreidx8,
194
195 [2]ssaop.Op{ssaop.OpAMD64MOVBstoreconst, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVBstoreconstidx1,
196 [2]ssaop.Op{ssaop.OpAMD64MOVWstoreconst, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVWstoreconstidx1,
197 [2]ssaop.Op{ssaop.OpAMD64MOVWstoreconst, ssaop.OpAMD64LEAQ2}: ssaop.OpAMD64MOVWstoreconstidx2,
198 [2]ssaop.Op{ssaop.OpAMD64MOVLstoreconst, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVLstoreconstidx1,
199 [2]ssaop.Op{ssaop.OpAMD64MOVLstoreconst, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64MOVLstoreconstidx4,
200 [2]ssaop.Op{ssaop.OpAMD64MOVQstoreconst, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVQstoreconstidx1,
201 [2]ssaop.Op{ssaop.OpAMD64MOVQstoreconst, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVQstoreconstidx8,
202
203 [2]ssaop.Op{ssaop.OpAMD64SETEQstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SETEQstoreidx1,
204 [2]ssaop.Op{ssaop.OpAMD64SETNEstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SETNEstoreidx1,
205 [2]ssaop.Op{ssaop.OpAMD64SETLstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SETLstoreidx1,
206 [2]ssaop.Op{ssaop.OpAMD64SETLEstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SETLEstoreidx1,
207 [2]ssaop.Op{ssaop.OpAMD64SETGstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SETGstoreidx1,
208 [2]ssaop.Op{ssaop.OpAMD64SETGEstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SETGEstoreidx1,
209 [2]ssaop.Op{ssaop.OpAMD64SETBstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SETBstoreidx1,
210 [2]ssaop.Op{ssaop.OpAMD64SETBEstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SETBEstoreidx1,
211 [2]ssaop.Op{ssaop.OpAMD64SETAstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SETAstoreidx1,
212 [2]ssaop.Op{ssaop.OpAMD64SETAEstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SETAEstoreidx1,
213
214
215
216 [2]ssaop.Op{ssaop.OpAMD64CMPBload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64CMPBloadidx1,
217 [2]ssaop.Op{ssaop.OpAMD64CMPWload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64CMPWloadidx1,
218 [2]ssaop.Op{ssaop.OpAMD64CMPLload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64CMPLloadidx1,
219 [2]ssaop.Op{ssaop.OpAMD64CMPQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64CMPQloadidx1,
220
221 [2]ssaop.Op{ssaop.OpAMD64CMPBload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64CMPBloadidx1,
222 [2]ssaop.Op{ssaop.OpAMD64CMPWload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64CMPWloadidx1,
223 [2]ssaop.Op{ssaop.OpAMD64CMPWload, ssaop.OpAMD64LEAQ2}: ssaop.OpAMD64CMPWloadidx2,
224 [2]ssaop.Op{ssaop.OpAMD64CMPLload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64CMPLloadidx1,
225 [2]ssaop.Op{ssaop.OpAMD64CMPLload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64CMPLloadidx4,
226 [2]ssaop.Op{ssaop.OpAMD64CMPQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64CMPQloadidx1,
227 [2]ssaop.Op{ssaop.OpAMD64CMPQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64CMPQloadidx8,
228
229 [2]ssaop.Op{ssaop.OpAMD64CMPBconstload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64CMPBconstloadidx1,
230 [2]ssaop.Op{ssaop.OpAMD64CMPWconstload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64CMPWconstloadidx1,
231 [2]ssaop.Op{ssaop.OpAMD64CMPLconstload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64CMPLconstloadidx1,
232 [2]ssaop.Op{ssaop.OpAMD64CMPQconstload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64CMPQconstloadidx1,
233
234 [2]ssaop.Op{ssaop.OpAMD64CMPBconstload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64CMPBconstloadidx1,
235 [2]ssaop.Op{ssaop.OpAMD64CMPWconstload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64CMPWconstloadidx1,
236 [2]ssaop.Op{ssaop.OpAMD64CMPWconstload, ssaop.OpAMD64LEAQ2}: ssaop.OpAMD64CMPWconstloadidx2,
237 [2]ssaop.Op{ssaop.OpAMD64CMPLconstload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64CMPLconstloadidx1,
238 [2]ssaop.Op{ssaop.OpAMD64CMPLconstload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64CMPLconstloadidx4,
239 [2]ssaop.Op{ssaop.OpAMD64CMPQconstload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64CMPQconstloadidx1,
240 [2]ssaop.Op{ssaop.OpAMD64CMPQconstload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64CMPQconstloadidx8,
241
242 [2]ssaop.Op{ssaop.OpAMD64ADDLload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ADDLloadidx1,
243 [2]ssaop.Op{ssaop.OpAMD64ADDQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ADDQloadidx1,
244 [2]ssaop.Op{ssaop.OpAMD64SUBLload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64SUBLloadidx1,
245 [2]ssaop.Op{ssaop.OpAMD64SUBQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64SUBQloadidx1,
246 [2]ssaop.Op{ssaop.OpAMD64ANDLload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ANDLloadidx1,
247 [2]ssaop.Op{ssaop.OpAMD64ANDQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ANDQloadidx1,
248 [2]ssaop.Op{ssaop.OpAMD64ORLload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ORLloadidx1,
249 [2]ssaop.Op{ssaop.OpAMD64ORQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ORQloadidx1,
250 [2]ssaop.Op{ssaop.OpAMD64XORLload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64XORLloadidx1,
251 [2]ssaop.Op{ssaop.OpAMD64XORQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64XORQloadidx1,
252
253 [2]ssaop.Op{ssaop.OpAMD64ADDLload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ADDLloadidx1,
254 [2]ssaop.Op{ssaop.OpAMD64ADDLload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64ADDLloadidx4,
255 [2]ssaop.Op{ssaop.OpAMD64ADDLload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ADDLloadidx8,
256 [2]ssaop.Op{ssaop.OpAMD64ADDQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ADDQloadidx1,
257 [2]ssaop.Op{ssaop.OpAMD64ADDQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ADDQloadidx8,
258 [2]ssaop.Op{ssaop.OpAMD64SUBLload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SUBLloadidx1,
259 [2]ssaop.Op{ssaop.OpAMD64SUBLload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64SUBLloadidx4,
260 [2]ssaop.Op{ssaop.OpAMD64SUBLload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SUBLloadidx8,
261 [2]ssaop.Op{ssaop.OpAMD64SUBQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SUBQloadidx1,
262 [2]ssaop.Op{ssaop.OpAMD64SUBQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SUBQloadidx8,
263 [2]ssaop.Op{ssaop.OpAMD64ANDLload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ANDLloadidx1,
264 [2]ssaop.Op{ssaop.OpAMD64ANDLload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64ANDLloadidx4,
265 [2]ssaop.Op{ssaop.OpAMD64ANDLload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ANDLloadidx8,
266 [2]ssaop.Op{ssaop.OpAMD64ANDQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ANDQloadidx1,
267 [2]ssaop.Op{ssaop.OpAMD64ANDQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ANDQloadidx8,
268 [2]ssaop.Op{ssaop.OpAMD64ORLload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ORLloadidx1,
269 [2]ssaop.Op{ssaop.OpAMD64ORLload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64ORLloadidx4,
270 [2]ssaop.Op{ssaop.OpAMD64ORLload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ORLloadidx8,
271 [2]ssaop.Op{ssaop.OpAMD64ORQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ORQloadidx1,
272 [2]ssaop.Op{ssaop.OpAMD64ORQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ORQloadidx8,
273 [2]ssaop.Op{ssaop.OpAMD64XORLload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64XORLloadidx1,
274 [2]ssaop.Op{ssaop.OpAMD64XORLload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64XORLloadidx4,
275 [2]ssaop.Op{ssaop.OpAMD64XORLload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64XORLloadidx8,
276 [2]ssaop.Op{ssaop.OpAMD64XORQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64XORQloadidx1,
277 [2]ssaop.Op{ssaop.OpAMD64XORQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64XORQloadidx8,
278
279 [2]ssaop.Op{ssaop.OpAMD64ADDLmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ADDLmodifyidx1,
280 [2]ssaop.Op{ssaop.OpAMD64ADDQmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ADDQmodifyidx1,
281 [2]ssaop.Op{ssaop.OpAMD64SUBLmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64SUBLmodifyidx1,
282 [2]ssaop.Op{ssaop.OpAMD64SUBQmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64SUBQmodifyidx1,
283 [2]ssaop.Op{ssaop.OpAMD64ANDLmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ANDLmodifyidx1,
284 [2]ssaop.Op{ssaop.OpAMD64ANDQmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ANDQmodifyidx1,
285 [2]ssaop.Op{ssaop.OpAMD64ORLmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ORLmodifyidx1,
286 [2]ssaop.Op{ssaop.OpAMD64ORQmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ORQmodifyidx1,
287 [2]ssaop.Op{ssaop.OpAMD64XORLmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64XORLmodifyidx1,
288 [2]ssaop.Op{ssaop.OpAMD64XORQmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64XORQmodifyidx1,
289
290 [2]ssaop.Op{ssaop.OpAMD64ADDLmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ADDLmodifyidx1,
291 [2]ssaop.Op{ssaop.OpAMD64ADDLmodify, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64ADDLmodifyidx4,
292 [2]ssaop.Op{ssaop.OpAMD64ADDLmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ADDLmodifyidx8,
293 [2]ssaop.Op{ssaop.OpAMD64ADDQmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ADDQmodifyidx1,
294 [2]ssaop.Op{ssaop.OpAMD64ADDQmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ADDQmodifyidx8,
295 [2]ssaop.Op{ssaop.OpAMD64SUBLmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SUBLmodifyidx1,
296 [2]ssaop.Op{ssaop.OpAMD64SUBLmodify, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64SUBLmodifyidx4,
297 [2]ssaop.Op{ssaop.OpAMD64SUBLmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SUBLmodifyidx8,
298 [2]ssaop.Op{ssaop.OpAMD64SUBQmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SUBQmodifyidx1,
299 [2]ssaop.Op{ssaop.OpAMD64SUBQmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SUBQmodifyidx8,
300 [2]ssaop.Op{ssaop.OpAMD64ANDLmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ANDLmodifyidx1,
301 [2]ssaop.Op{ssaop.OpAMD64ANDLmodify, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64ANDLmodifyidx4,
302 [2]ssaop.Op{ssaop.OpAMD64ANDLmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ANDLmodifyidx8,
303 [2]ssaop.Op{ssaop.OpAMD64ANDQmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ANDQmodifyidx1,
304 [2]ssaop.Op{ssaop.OpAMD64ANDQmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ANDQmodifyidx8,
305 [2]ssaop.Op{ssaop.OpAMD64ORLmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ORLmodifyidx1,
306 [2]ssaop.Op{ssaop.OpAMD64ORLmodify, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64ORLmodifyidx4,
307 [2]ssaop.Op{ssaop.OpAMD64ORLmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ORLmodifyidx8,
308 [2]ssaop.Op{ssaop.OpAMD64ORQmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ORQmodifyidx1,
309 [2]ssaop.Op{ssaop.OpAMD64ORQmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ORQmodifyidx8,
310 [2]ssaop.Op{ssaop.OpAMD64XORLmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64XORLmodifyidx1,
311 [2]ssaop.Op{ssaop.OpAMD64XORLmodify, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64XORLmodifyidx4,
312 [2]ssaop.Op{ssaop.OpAMD64XORLmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64XORLmodifyidx8,
313 [2]ssaop.Op{ssaop.OpAMD64XORQmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64XORQmodifyidx1,
314 [2]ssaop.Op{ssaop.OpAMD64XORQmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64XORQmodifyidx8,
315
316 [2]ssaop.Op{ssaop.OpAMD64ADDLconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ADDLconstmodifyidx1,
317 [2]ssaop.Op{ssaop.OpAMD64ADDQconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ADDQconstmodifyidx1,
318 [2]ssaop.Op{ssaop.OpAMD64ANDLconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ANDLconstmodifyidx1,
319 [2]ssaop.Op{ssaop.OpAMD64ANDQconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ANDQconstmodifyidx1,
320 [2]ssaop.Op{ssaop.OpAMD64ORLconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ORLconstmodifyidx1,
321 [2]ssaop.Op{ssaop.OpAMD64ORQconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ORQconstmodifyidx1,
322 [2]ssaop.Op{ssaop.OpAMD64XORLconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64XORLconstmodifyidx1,
323 [2]ssaop.Op{ssaop.OpAMD64XORQconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64XORQconstmodifyidx1,
324 [2]ssaop.Op{ssaop.OpAMD64ADDWconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ADDWconstmodifyidx1,
325 [2]ssaop.Op{ssaop.OpAMD64ADDBconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ADDBconstmodifyidx1,
326 [2]ssaop.Op{ssaop.OpAMD64ANDWconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ANDWconstmodifyidx1,
327 [2]ssaop.Op{ssaop.OpAMD64ANDBconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ANDBconstmodifyidx1,
328 [2]ssaop.Op{ssaop.OpAMD64ORWconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ORWconstmodifyidx1,
329 [2]ssaop.Op{ssaop.OpAMD64ORBconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64ORBconstmodifyidx1,
330 [2]ssaop.Op{ssaop.OpAMD64XORWconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64XORWconstmodifyidx1,
331 [2]ssaop.Op{ssaop.OpAMD64XORBconstmodify, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64XORBconstmodifyidx1,
332
333 [2]ssaop.Op{ssaop.OpAMD64ADDLconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ADDLconstmodifyidx1,
334 [2]ssaop.Op{ssaop.OpAMD64ADDLconstmodify, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64ADDLconstmodifyidx4,
335 [2]ssaop.Op{ssaop.OpAMD64ADDLconstmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ADDLconstmodifyidx8,
336 [2]ssaop.Op{ssaop.OpAMD64ADDQconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ADDQconstmodifyidx1,
337 [2]ssaop.Op{ssaop.OpAMD64ADDQconstmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ADDQconstmodifyidx8,
338 [2]ssaop.Op{ssaop.OpAMD64ANDLconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ANDLconstmodifyidx1,
339 [2]ssaop.Op{ssaop.OpAMD64ANDLconstmodify, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64ANDLconstmodifyidx4,
340 [2]ssaop.Op{ssaop.OpAMD64ANDLconstmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ANDLconstmodifyidx8,
341 [2]ssaop.Op{ssaop.OpAMD64ANDQconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ANDQconstmodifyidx1,
342 [2]ssaop.Op{ssaop.OpAMD64ANDQconstmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ANDQconstmodifyidx8,
343 [2]ssaop.Op{ssaop.OpAMD64ORLconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ORLconstmodifyidx1,
344 [2]ssaop.Op{ssaop.OpAMD64ORLconstmodify, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64ORLconstmodifyidx4,
345 [2]ssaop.Op{ssaop.OpAMD64ORLconstmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ORLconstmodifyidx8,
346 [2]ssaop.Op{ssaop.OpAMD64ORQconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ORQconstmodifyidx1,
347 [2]ssaop.Op{ssaop.OpAMD64ORQconstmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ORQconstmodifyidx8,
348 [2]ssaop.Op{ssaop.OpAMD64XORLconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64XORLconstmodifyidx1,
349 [2]ssaop.Op{ssaop.OpAMD64XORLconstmodify, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64XORLconstmodifyidx4,
350 [2]ssaop.Op{ssaop.OpAMD64XORLconstmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64XORLconstmodifyidx8,
351 [2]ssaop.Op{ssaop.OpAMD64XORQconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64XORQconstmodifyidx1,
352 [2]ssaop.Op{ssaop.OpAMD64XORQconstmodify, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64XORQconstmodifyidx8,
353 [2]ssaop.Op{ssaop.OpAMD64ADDWconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ADDWconstmodifyidx1,
354 [2]ssaop.Op{ssaop.OpAMD64ADDWconstmodify, ssaop.OpAMD64LEAQ2}: ssaop.OpAMD64ADDWconstmodifyidx2,
355 [2]ssaop.Op{ssaop.OpAMD64ADDBconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ADDBconstmodifyidx1,
356 [2]ssaop.Op{ssaop.OpAMD64ANDWconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ANDWconstmodifyidx1,
357 [2]ssaop.Op{ssaop.OpAMD64ANDWconstmodify, ssaop.OpAMD64LEAQ2}: ssaop.OpAMD64ANDWconstmodifyidx2,
358 [2]ssaop.Op{ssaop.OpAMD64ANDBconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ANDBconstmodifyidx1,
359 [2]ssaop.Op{ssaop.OpAMD64ORWconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ORWconstmodifyidx1,
360 [2]ssaop.Op{ssaop.OpAMD64ORWconstmodify, ssaop.OpAMD64LEAQ2}: ssaop.OpAMD64ORWconstmodifyidx2,
361 [2]ssaop.Op{ssaop.OpAMD64ORBconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ORBconstmodifyidx1,
362 [2]ssaop.Op{ssaop.OpAMD64XORWconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64XORWconstmodifyidx1,
363 [2]ssaop.Op{ssaop.OpAMD64XORWconstmodify, ssaop.OpAMD64LEAQ2}: ssaop.OpAMD64XORWconstmodifyidx2,
364 [2]ssaop.Op{ssaop.OpAMD64XORBconstmodify, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64XORBconstmodifyidx1,
365
366 [2]ssaop.Op{ssaop.OpAMD64ADDSSload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ADDSSloadidx1,
367 [2]ssaop.Op{ssaop.OpAMD64ADDSSload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64ADDSSloadidx4,
368 [2]ssaop.Op{ssaop.OpAMD64ADDSDload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64ADDSDloadidx1,
369 [2]ssaop.Op{ssaop.OpAMD64ADDSDload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64ADDSDloadidx8,
370 [2]ssaop.Op{ssaop.OpAMD64SUBSSload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SUBSSloadidx1,
371 [2]ssaop.Op{ssaop.OpAMD64SUBSSload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64SUBSSloadidx4,
372 [2]ssaop.Op{ssaop.OpAMD64SUBSDload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SUBSDloadidx1,
373 [2]ssaop.Op{ssaop.OpAMD64SUBSDload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SUBSDloadidx8,
374 [2]ssaop.Op{ssaop.OpAMD64MULSSload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MULSSloadidx1,
375 [2]ssaop.Op{ssaop.OpAMD64MULSSload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64MULSSloadidx4,
376 [2]ssaop.Op{ssaop.OpAMD64MULSDload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MULSDloadidx1,
377 [2]ssaop.Op{ssaop.OpAMD64MULSDload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MULSDloadidx8,
378 [2]ssaop.Op{ssaop.OpAMD64DIVSSload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64DIVSSloadidx1,
379 [2]ssaop.Op{ssaop.OpAMD64DIVSSload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64DIVSSloadidx4,
380 [2]ssaop.Op{ssaop.OpAMD64DIVSDload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64DIVSDloadidx1,
381 [2]ssaop.Op{ssaop.OpAMD64DIVSDload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64DIVSDloadidx8,
382
383 [2]ssaop.Op{ssaop.OpAMD64SARXLload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64SARXLloadidx1,
384 [2]ssaop.Op{ssaop.OpAMD64SARXQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64SARXQloadidx1,
385 [2]ssaop.Op{ssaop.OpAMD64SHLXLload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64SHLXLloadidx1,
386 [2]ssaop.Op{ssaop.OpAMD64SHLXQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64SHLXQloadidx1,
387 [2]ssaop.Op{ssaop.OpAMD64SHRXLload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64SHRXLloadidx1,
388 [2]ssaop.Op{ssaop.OpAMD64SHRXQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64SHRXQloadidx1,
389
390 [2]ssaop.Op{ssaop.OpAMD64SARXLload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SARXLloadidx1,
391 [2]ssaop.Op{ssaop.OpAMD64SARXLload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64SARXLloadidx4,
392 [2]ssaop.Op{ssaop.OpAMD64SARXLload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SARXLloadidx8,
393 [2]ssaop.Op{ssaop.OpAMD64SARXQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SARXQloadidx1,
394 [2]ssaop.Op{ssaop.OpAMD64SARXQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SARXQloadidx8,
395 [2]ssaop.Op{ssaop.OpAMD64SHLXLload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SHLXLloadidx1,
396 [2]ssaop.Op{ssaop.OpAMD64SHLXLload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64SHLXLloadidx4,
397 [2]ssaop.Op{ssaop.OpAMD64SHLXLload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SHLXLloadidx8,
398 [2]ssaop.Op{ssaop.OpAMD64SHLXQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SHLXQloadidx1,
399 [2]ssaop.Op{ssaop.OpAMD64SHLXQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SHLXQloadidx8,
400 [2]ssaop.Op{ssaop.OpAMD64SHRXLload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SHRXLloadidx1,
401 [2]ssaop.Op{ssaop.OpAMD64SHRXLload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64SHRXLloadidx4,
402 [2]ssaop.Op{ssaop.OpAMD64SHRXLload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SHRXLloadidx8,
403 [2]ssaop.Op{ssaop.OpAMD64SHRXQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64SHRXQloadidx1,
404 [2]ssaop.Op{ssaop.OpAMD64SHRXQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64SHRXQloadidx8,
405
406
407 [2]ssaop.Op{ssaop.OpAMD64MOVBELload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVBELloadidx1,
408 [2]ssaop.Op{ssaop.OpAMD64MOVBEQload, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVBEQloadidx1,
409 [2]ssaop.Op{ssaop.OpAMD64MOVBELload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVBELloadidx1,
410 [2]ssaop.Op{ssaop.OpAMD64MOVBELload, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64MOVBELloadidx4,
411 [2]ssaop.Op{ssaop.OpAMD64MOVBELload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVBELloadidx8,
412 [2]ssaop.Op{ssaop.OpAMD64MOVBEQload, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVBEQloadidx1,
413 [2]ssaop.Op{ssaop.OpAMD64MOVBEQload, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVBEQloadidx8,
414
415 [2]ssaop.Op{ssaop.OpAMD64MOVBEWstore, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVBEWstoreidx1,
416 [2]ssaop.Op{ssaop.OpAMD64MOVBELstore, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVBELstoreidx1,
417 [2]ssaop.Op{ssaop.OpAMD64MOVBEQstore, ssaop.OpAMD64ADDQ}: ssaop.OpAMD64MOVBEQstoreidx1,
418 [2]ssaop.Op{ssaop.OpAMD64MOVBEWstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVBEWstoreidx1,
419 [2]ssaop.Op{ssaop.OpAMD64MOVBEWstore, ssaop.OpAMD64LEAQ2}: ssaop.OpAMD64MOVBEWstoreidx2,
420 [2]ssaop.Op{ssaop.OpAMD64MOVBELstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVBELstoreidx1,
421 [2]ssaop.Op{ssaop.OpAMD64MOVBELstore, ssaop.OpAMD64LEAQ4}: ssaop.OpAMD64MOVBELstoreidx4,
422 [2]ssaop.Op{ssaop.OpAMD64MOVBELstore, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVBELstoreidx8,
423 [2]ssaop.Op{ssaop.OpAMD64MOVBEQstore, ssaop.OpAMD64LEAQ1}: ssaop.OpAMD64MOVBEQstoreidx1,
424 [2]ssaop.Op{ssaop.OpAMD64MOVBEQstore, ssaop.OpAMD64LEAQ8}: ssaop.OpAMD64MOVBEQstoreidx8,
425
426
427 [2]ssaop.Op{ssaop.Op386MOVBload, ssaop.Op386ADDL}: ssaop.Op386MOVBloadidx1,
428 [2]ssaop.Op{ssaop.Op386MOVWload, ssaop.Op386ADDL}: ssaop.Op386MOVWloadidx1,
429 [2]ssaop.Op{ssaop.Op386MOVLload, ssaop.Op386ADDL}: ssaop.Op386MOVLloadidx1,
430 [2]ssaop.Op{ssaop.Op386MOVSSload, ssaop.Op386ADDL}: ssaop.Op386MOVSSloadidx1,
431 [2]ssaop.Op{ssaop.Op386MOVSDload, ssaop.Op386ADDL}: ssaop.Op386MOVSDloadidx1,
432
433 [2]ssaop.Op{ssaop.Op386MOVBstore, ssaop.Op386ADDL}: ssaop.Op386MOVBstoreidx1,
434 [2]ssaop.Op{ssaop.Op386MOVWstore, ssaop.Op386ADDL}: ssaop.Op386MOVWstoreidx1,
435 [2]ssaop.Op{ssaop.Op386MOVLstore, ssaop.Op386ADDL}: ssaop.Op386MOVLstoreidx1,
436 [2]ssaop.Op{ssaop.Op386MOVSSstore, ssaop.Op386ADDL}: ssaop.Op386MOVSSstoreidx1,
437 [2]ssaop.Op{ssaop.Op386MOVSDstore, ssaop.Op386ADDL}: ssaop.Op386MOVSDstoreidx1,
438
439 [2]ssaop.Op{ssaop.Op386MOVBstoreconst, ssaop.Op386ADDL}: ssaop.Op386MOVBstoreconstidx1,
440 [2]ssaop.Op{ssaop.Op386MOVWstoreconst, ssaop.Op386ADDL}: ssaop.Op386MOVWstoreconstidx1,
441 [2]ssaop.Op{ssaop.Op386MOVLstoreconst, ssaop.Op386ADDL}: ssaop.Op386MOVLstoreconstidx1,
442
443 [2]ssaop.Op{ssaop.Op386MOVBload, ssaop.Op386LEAL1}: ssaop.Op386MOVBloadidx1,
444 [2]ssaop.Op{ssaop.Op386MOVWload, ssaop.Op386LEAL1}: ssaop.Op386MOVWloadidx1,
445 [2]ssaop.Op{ssaop.Op386MOVWload, ssaop.Op386LEAL2}: ssaop.Op386MOVWloadidx2,
446 [2]ssaop.Op{ssaop.Op386MOVLload, ssaop.Op386LEAL1}: ssaop.Op386MOVLloadidx1,
447 [2]ssaop.Op{ssaop.Op386MOVLload, ssaop.Op386LEAL4}: ssaop.Op386MOVLloadidx4,
448 [2]ssaop.Op{ssaop.Op386MOVSSload, ssaop.Op386LEAL1}: ssaop.Op386MOVSSloadidx1,
449 [2]ssaop.Op{ssaop.Op386MOVSSload, ssaop.Op386LEAL4}: ssaop.Op386MOVSSloadidx4,
450 [2]ssaop.Op{ssaop.Op386MOVSDload, ssaop.Op386LEAL1}: ssaop.Op386MOVSDloadidx1,
451 [2]ssaop.Op{ssaop.Op386MOVSDload, ssaop.Op386LEAL8}: ssaop.Op386MOVSDloadidx8,
452
453 [2]ssaop.Op{ssaop.Op386MOVBstore, ssaop.Op386LEAL1}: ssaop.Op386MOVBstoreidx1,
454 [2]ssaop.Op{ssaop.Op386MOVWstore, ssaop.Op386LEAL1}: ssaop.Op386MOVWstoreidx1,
455 [2]ssaop.Op{ssaop.Op386MOVWstore, ssaop.Op386LEAL2}: ssaop.Op386MOVWstoreidx2,
456 [2]ssaop.Op{ssaop.Op386MOVLstore, ssaop.Op386LEAL1}: ssaop.Op386MOVLstoreidx1,
457 [2]ssaop.Op{ssaop.Op386MOVLstore, ssaop.Op386LEAL4}: ssaop.Op386MOVLstoreidx4,
458 [2]ssaop.Op{ssaop.Op386MOVSSstore, ssaop.Op386LEAL1}: ssaop.Op386MOVSSstoreidx1,
459 [2]ssaop.Op{ssaop.Op386MOVSSstore, ssaop.Op386LEAL4}: ssaop.Op386MOVSSstoreidx4,
460 [2]ssaop.Op{ssaop.Op386MOVSDstore, ssaop.Op386LEAL1}: ssaop.Op386MOVSDstoreidx1,
461 [2]ssaop.Op{ssaop.Op386MOVSDstore, ssaop.Op386LEAL8}: ssaop.Op386MOVSDstoreidx8,
462
463 [2]ssaop.Op{ssaop.Op386MOVBstoreconst, ssaop.Op386LEAL1}: ssaop.Op386MOVBstoreconstidx1,
464 [2]ssaop.Op{ssaop.Op386MOVWstoreconst, ssaop.Op386LEAL1}: ssaop.Op386MOVWstoreconstidx1,
465 [2]ssaop.Op{ssaop.Op386MOVWstoreconst, ssaop.Op386LEAL2}: ssaop.Op386MOVWstoreconstidx2,
466 [2]ssaop.Op{ssaop.Op386MOVLstoreconst, ssaop.Op386LEAL1}: ssaop.Op386MOVLstoreconstidx1,
467 [2]ssaop.Op{ssaop.Op386MOVLstoreconst, ssaop.Op386LEAL4}: ssaop.Op386MOVLstoreconstidx4,
468
469 [2]ssaop.Op{ssaop.Op386ADDLload, ssaop.Op386LEAL4}: ssaop.Op386ADDLloadidx4,
470 [2]ssaop.Op{ssaop.Op386SUBLload, ssaop.Op386LEAL4}: ssaop.Op386SUBLloadidx4,
471 [2]ssaop.Op{ssaop.Op386MULLload, ssaop.Op386LEAL4}: ssaop.Op386MULLloadidx4,
472 [2]ssaop.Op{ssaop.Op386ANDLload, ssaop.Op386LEAL4}: ssaop.Op386ANDLloadidx4,
473 [2]ssaop.Op{ssaop.Op386ORLload, ssaop.Op386LEAL4}: ssaop.Op386ORLloadidx4,
474 [2]ssaop.Op{ssaop.Op386XORLload, ssaop.Op386LEAL4}: ssaop.Op386XORLloadidx4,
475
476 [2]ssaop.Op{ssaop.Op386ADDLmodify, ssaop.Op386LEAL4}: ssaop.Op386ADDLmodifyidx4,
477 [2]ssaop.Op{ssaop.Op386SUBLmodify, ssaop.Op386LEAL4}: ssaop.Op386SUBLmodifyidx4,
478 [2]ssaop.Op{ssaop.Op386ANDLmodify, ssaop.Op386LEAL4}: ssaop.Op386ANDLmodifyidx4,
479 [2]ssaop.Op{ssaop.Op386ORLmodify, ssaop.Op386LEAL4}: ssaop.Op386ORLmodifyidx4,
480 [2]ssaop.Op{ssaop.Op386XORLmodify, ssaop.Op386LEAL4}: ssaop.Op386XORLmodifyidx4,
481
482 [2]ssaop.Op{ssaop.Op386ADDLconstmodify, ssaop.Op386LEAL4}: ssaop.Op386ADDLconstmodifyidx4,
483 [2]ssaop.Op{ssaop.Op386ANDLconstmodify, ssaop.Op386LEAL4}: ssaop.Op386ANDLconstmodifyidx4,
484 [2]ssaop.Op{ssaop.Op386ORLconstmodify, ssaop.Op386LEAL4}: ssaop.Op386ORLconstmodifyidx4,
485 [2]ssaop.Op{ssaop.Op386XORLconstmodify, ssaop.Op386LEAL4}: ssaop.Op386XORLconstmodifyidx4,
486
487
488 [2]ssaop.Op{ssaop.OpS390XMOVDload, ssaop.OpS390XADD}: ssaop.OpS390XMOVDloadidx,
489 [2]ssaop.Op{ssaop.OpS390XMOVWload, ssaop.OpS390XADD}: ssaop.OpS390XMOVWloadidx,
490 [2]ssaop.Op{ssaop.OpS390XMOVHload, ssaop.OpS390XADD}: ssaop.OpS390XMOVHloadidx,
491 [2]ssaop.Op{ssaop.OpS390XMOVBload, ssaop.OpS390XADD}: ssaop.OpS390XMOVBloadidx,
492
493 [2]ssaop.Op{ssaop.OpS390XMOVWZload, ssaop.OpS390XADD}: ssaop.OpS390XMOVWZloadidx,
494 [2]ssaop.Op{ssaop.OpS390XMOVHZload, ssaop.OpS390XADD}: ssaop.OpS390XMOVHZloadidx,
495 [2]ssaop.Op{ssaop.OpS390XMOVBZload, ssaop.OpS390XADD}: ssaop.OpS390XMOVBZloadidx,
496
497 [2]ssaop.Op{ssaop.OpS390XMOVDBRload, ssaop.OpS390XADD}: ssaop.OpS390XMOVDBRloadidx,
498 [2]ssaop.Op{ssaop.OpS390XMOVWBRload, ssaop.OpS390XADD}: ssaop.OpS390XMOVWBRloadidx,
499 [2]ssaop.Op{ssaop.OpS390XMOVHBRload, ssaop.OpS390XADD}: ssaop.OpS390XMOVHBRloadidx,
500
501 [2]ssaop.Op{ssaop.OpS390XFMOVDload, ssaop.OpS390XADD}: ssaop.OpS390XFMOVDloadidx,
502 [2]ssaop.Op{ssaop.OpS390XFMOVSload, ssaop.OpS390XADD}: ssaop.OpS390XFMOVSloadidx,
503
504 [2]ssaop.Op{ssaop.OpS390XMOVDstore, ssaop.OpS390XADD}: ssaop.OpS390XMOVDstoreidx,
505 [2]ssaop.Op{ssaop.OpS390XMOVWstore, ssaop.OpS390XADD}: ssaop.OpS390XMOVWstoreidx,
506 [2]ssaop.Op{ssaop.OpS390XMOVHstore, ssaop.OpS390XADD}: ssaop.OpS390XMOVHstoreidx,
507 [2]ssaop.Op{ssaop.OpS390XMOVBstore, ssaop.OpS390XADD}: ssaop.OpS390XMOVBstoreidx,
508
509 [2]ssaop.Op{ssaop.OpS390XMOVDBRstore, ssaop.OpS390XADD}: ssaop.OpS390XMOVDBRstoreidx,
510 [2]ssaop.Op{ssaop.OpS390XMOVWBRstore, ssaop.OpS390XADD}: ssaop.OpS390XMOVWBRstoreidx,
511 [2]ssaop.Op{ssaop.OpS390XMOVHBRstore, ssaop.OpS390XADD}: ssaop.OpS390XMOVHBRstoreidx,
512
513 [2]ssaop.Op{ssaop.OpS390XFMOVDstore, ssaop.OpS390XADD}: ssaop.OpS390XFMOVDstoreidx,
514 [2]ssaop.Op{ssaop.OpS390XFMOVSstore, ssaop.OpS390XADD}: ssaop.OpS390XFMOVSstoreidx,
515
516 [2]ssaop.Op{ssaop.OpS390XMOVDload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVDloadidx,
517 [2]ssaop.Op{ssaop.OpS390XMOVWload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVWloadidx,
518 [2]ssaop.Op{ssaop.OpS390XMOVHload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVHloadidx,
519 [2]ssaop.Op{ssaop.OpS390XMOVBload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVBloadidx,
520
521 [2]ssaop.Op{ssaop.OpS390XMOVWZload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVWZloadidx,
522 [2]ssaop.Op{ssaop.OpS390XMOVHZload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVHZloadidx,
523 [2]ssaop.Op{ssaop.OpS390XMOVBZload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVBZloadidx,
524
525 [2]ssaop.Op{ssaop.OpS390XMOVDBRload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVDBRloadidx,
526 [2]ssaop.Op{ssaop.OpS390XMOVWBRload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVWBRloadidx,
527 [2]ssaop.Op{ssaop.OpS390XMOVHBRload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVHBRloadidx,
528
529 [2]ssaop.Op{ssaop.OpS390XFMOVDload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XFMOVDloadidx,
530 [2]ssaop.Op{ssaop.OpS390XFMOVSload, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XFMOVSloadidx,
531
532 [2]ssaop.Op{ssaop.OpS390XMOVDstore, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVDstoreidx,
533 [2]ssaop.Op{ssaop.OpS390XMOVWstore, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVWstoreidx,
534 [2]ssaop.Op{ssaop.OpS390XMOVHstore, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVHstoreidx,
535 [2]ssaop.Op{ssaop.OpS390XMOVBstore, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVBstoreidx,
536
537 [2]ssaop.Op{ssaop.OpS390XMOVDBRstore, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVDBRstoreidx,
538 [2]ssaop.Op{ssaop.OpS390XMOVWBRstore, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVWBRstoreidx,
539 [2]ssaop.Op{ssaop.OpS390XMOVHBRstore, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XMOVHBRstoreidx,
540
541 [2]ssaop.Op{ssaop.OpS390XFMOVDstore, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XFMOVDstoreidx,
542 [2]ssaop.Op{ssaop.OpS390XFMOVSstore, ssaop.OpS390XMOVDaddridx}: ssaop.OpS390XFMOVSstoreidx,
543 }
544
View as plain text