@@ -102,68 +102,156 @@ enum PPCMachineCombinerPattern : unsigned {
102
102
// Define list of load and store spill opcodes.
103
103
#define NoInstr PPC::INSTRUCTION_LIST_END
104
104
#define Pwr8LoadOpcodes \
105
- { \
106
- PPC::LWZ, PPC::LD, PPC::LFD, PPC::LFS, PPC::RESTORE_CR, \
107
- PPC::RESTORE_CRBIT, PPC::LVX, PPC::LXVD2X, PPC::LXSDX, PPC::LXSSPX, \
108
- PPC::SPILLTOVSR_LD, NoInstr, NoInstr, NoInstr, NoInstr, PPC::EVLDD, \
109
- PPC::RESTORE_QUADWORD \
110
- }
105
+ {PPC::LWZ, \
106
+ PPC::LD, \
107
+ PPC::LFD, \
108
+ PPC::LFS, \
109
+ PPC::RESTORE_CR, \
110
+ PPC::RESTORE_CRBIT, \
111
+ PPC::LVX, \
112
+ PPC::LXVD2X, \
113
+ PPC::LXSDX, \
114
+ PPC::LXSSPX, \
115
+ PPC::SPILLTOVSR_LD, \
116
+ NoInstr, \
117
+ NoInstr, \
118
+ NoInstr, \
119
+ NoInstr, \
120
+ PPC::EVLDD, \
121
+ PPC::RESTORE_QUADWORD}
111
122
112
123
#define Pwr9LoadOpcodes \
113
- { \
114
- PPC::LWZ, PPC::LD, PPC::LFD, PPC::LFS, PPC::RESTORE_CR, \
115
- PPC::RESTORE_CRBIT, PPC::LVX, PPC::LXV, PPC::DFLOADf64, \
116
- PPC::DFLOADf32, PPC::SPILLTOVSR_LD, NoInstr, NoInstr, NoInstr, \
117
- NoInstr, NoInstr, PPC::RESTORE_QUADWORD \
118
- }
124
+ {PPC::LWZ, \
125
+ PPC::LD, \
126
+ PPC::LFD, \
127
+ PPC::LFS, \
128
+ PPC::RESTORE_CR, \
129
+ PPC::RESTORE_CRBIT, \
130
+ PPC::LVX, \
131
+ PPC::LXV, \
132
+ PPC::DFLOADf64, \
133
+ PPC::DFLOADf32, \
134
+ PPC::SPILLTOVSR_LD, \
135
+ NoInstr, \
136
+ NoInstr, \
137
+ NoInstr, \
138
+ NoInstr, \
139
+ NoInstr, \
140
+ PPC::RESTORE_QUADWORD}
119
141
120
142
#define Pwr10LoadOpcodes \
121
- { \
122
- PPC::LWZ, PPC::LD, PPC::LFD, PPC::LFS, PPC::RESTORE_CR, \
123
- PPC::RESTORE_CRBIT, PPC::LVX, PPC::LXV, PPC::DFLOADf64, \
124
- PPC::DFLOADf32, PPC::SPILLTOVSR_LD, PPC::LXVP, PPC::RESTORE_ACC, \
125
- PPC::RESTORE_UACC, NoInstr, NoInstr, PPC::RESTORE_QUADWORD \
126
- }
143
+ {PPC::LWZ, \
144
+ PPC::LD, \
145
+ PPC::LFD, \
146
+ PPC::LFS, \
147
+ PPC::RESTORE_CR, \
148
+ PPC::RESTORE_CRBIT, \
149
+ PPC::LVX, \
150
+ PPC::LXV, \
151
+ PPC::DFLOADf64, \
152
+ PPC::DFLOADf32, \
153
+ PPC::SPILLTOVSR_LD, \
154
+ PPC::LXVP, \
155
+ PPC::RESTORE_ACC, \
156
+ PPC::RESTORE_UACC, \
157
+ NoInstr, \
158
+ NoInstr, \
159
+ PPC::RESTORE_QUADWORD}
127
160
128
161
#define FutureLoadOpcodes \
129
- { \
130
- PPC::LWZ, PPC::LD, PPC::LFD, PPC::LFS, PPC::RESTORE_CR, \
131
- PPC::RESTORE_CRBIT, PPC::LVX, PPC::LXV, PPC::DFLOADf64, \
132
- PPC::DFLOADf32, PPC::SPILLTOVSR_LD, PPC::LXVP, PPC::RESTORE_ACC, \
133
- PPC::RESTORE_UACC, PPC::RESTORE_WACC, NoInstr, PPC::RESTORE_QUADWORD \
134
- }
162
+ {PPC::LWZ, \
163
+ PPC::LD, \
164
+ PPC::LFD, \
165
+ PPC::LFS, \
166
+ PPC::RESTORE_CR, \
167
+ PPC::RESTORE_CRBIT, \
168
+ PPC::LVX, \
169
+ PPC::LXV, \
170
+ PPC::DFLOADf64, \
171
+ PPC::DFLOADf32, \
172
+ PPC::SPILLTOVSR_LD, \
173
+ PPC::LXVP, \
174
+ PPC::RESTORE_ACC, \
175
+ PPC::RESTORE_UACC, \
176
+ PPC::RESTORE_WACC, \
177
+ NoInstr, \
178
+ PPC::RESTORE_QUADWORD}
135
179
136
180
#define Pwr8StoreOpcodes \
137
- { \
138
- PPC::STW, PPC::STD, PPC::STFD, PPC::STFS, PPC::SPILL_CR, PPC::SPILL_CRBIT, \
139
- PPC::STVX, PPC::STXVD2X, PPC::STXSDX, PPC::STXSSPX, \
140
- PPC::SPILLTOVSR_ST, NoInstr, NoInstr, NoInstr, NoInstr, PPC::EVSTDD, \
141
- PPC::SPILL_QUADWORD \
142
- }
181
+ {PPC::STW, \
182
+ PPC::STD, \
183
+ PPC::STFD, \
184
+ PPC::STFS, \
185
+ PPC::SPILL_CR, \
186
+ PPC::SPILL_CRBIT, \
187
+ PPC::STVX, \
188
+ PPC::STXVD2X, \
189
+ PPC::STXSDX, \
190
+ PPC::STXSSPX, \
191
+ PPC::SPILLTOVSR_ST, \
192
+ NoInstr, \
193
+ NoInstr, \
194
+ NoInstr, \
195
+ NoInstr, \
196
+ PPC::EVSTDD, \
197
+ PPC::SPILL_QUADWORD}
143
198
144
199
#define Pwr9StoreOpcodes \
145
- { \
146
- PPC::STW, PPC::STD, PPC::STFD, PPC::STFS, PPC::SPILL_CR, PPC::SPILL_CRBIT, \
147
- PPC::STVX, PPC::STXV, PPC::DFSTOREf64, PPC::DFSTOREf32, \
148
- PPC::SPILLTOVSR_ST, NoInstr, NoInstr, NoInstr, NoInstr, NoInstr, \
149
- PPC::SPILL_QUADWORD \
150
- }
200
+ {PPC::STW, \
201
+ PPC::STD, \
202
+ PPC::STFD, \
203
+ PPC::STFS, \
204
+ PPC::SPILL_CR, \
205
+ PPC::SPILL_CRBIT, \
206
+ PPC::STVX, \
207
+ PPC::STXV, \
208
+ PPC::DFSTOREf64, \
209
+ PPC::DFSTOREf32, \
210
+ PPC::SPILLTOVSR_ST, \
211
+ NoInstr, \
212
+ NoInstr, \
213
+ NoInstr, \
214
+ NoInstr, \
215
+ NoInstr, \
216
+ PPC::SPILL_QUADWORD}
151
217
152
218
#define Pwr10StoreOpcodes \
153
- { \
154
- PPC::STW, PPC::STD, PPC::STFD, PPC::STFS, PPC::SPILL_CR, PPC::SPILL_CRBIT, \
155
- PPC::STVX, PPC::STXV, PPC::DFSTOREf64, PPC::DFSTOREf32, \
156
- PPC::SPILLTOVSR_ST, PPC::STXVP, PPC::SPILL_ACC, PPC::SPILL_UACC, \
157
- NoInstr, NoInstr, PPC::SPILL_QUADWORD \
158
- }
219
+ {PPC::STW, \
220
+ PPC::STD, \
221
+ PPC::STFD, \
222
+ PPC::STFS, \
223
+ PPC::SPILL_CR, \
224
+ PPC::SPILL_CRBIT, \
225
+ PPC::STVX, \
226
+ PPC::STXV, \
227
+ PPC::DFSTOREf64, \
228
+ PPC::DFSTOREf32, \
229
+ PPC::SPILLTOVSR_ST, \
230
+ PPC::STXVP, \
231
+ PPC::SPILL_ACC, \
232
+ PPC::SPILL_UACC, \
233
+ NoInstr, \
234
+ NoInstr, \
235
+ PPC::SPILL_QUADWORD}
159
236
160
237
#define FutureStoreOpcodes \
161
- { \
162
- PPC::STW, PPC::STD, PPC::STFD, PPC::STFS, PPC::SPILL_CR, PPC::SPILL_CRBIT, \
163
- PPC::STVX, PPC::STXV, PPC::DFSTOREf64, PPC::DFSTOREf32, \
164
- PPC::SPILLTOVSR_ST, PPC::STXVP, PPC::SPILL_ACC, PPC::SPILL_UACC, \
165
- PPC::SPILL_WACC, NoInstr, PPC::SPILL_QUADWORD \
166
- }
238
+ {PPC::STW, \
239
+ PPC::STD, \
240
+ PPC::STFD, \
241
+ PPC::STFS, \
242
+ PPC::SPILL_CR, \
243
+ PPC::SPILL_CRBIT, \
244
+ PPC::STVX, \
245
+ PPC::STXV, \
246
+ PPC::DFSTOREf64, \
247
+ PPC::DFSTOREf32, \
248
+ PPC::SPILLTOVSR_ST, \
249
+ PPC::STXVP, \
250
+ PPC::SPILL_ACC, \
251
+ PPC::SPILL_UACC, \
252
+ PPC::SPILL_WACC, \
253
+ NoInstr, \
254
+ PPC::SPILL_QUADWORD}
167
255
168
256
// Initialize arrays for load and store spill opcodes on supported subtargets.
169
257
#define StoreOpcodesForSpill \
0 commit comments