Lines Matching refs:Operator

37 LoadRepresentation LoadRepresentationOf(Operator const* op) {  in LoadRepresentationOf()
49 StoreRepresentation const& StoreRepresentationOf(Operator const* op) { in StoreRepresentationOf()
56 Operator const* op) { in UnalignedStoreRepresentationOf()
77 StackSlotRepresentation const& StackSlotRepresentationOf(Operator const* op) { in StackSlotRepresentationOf()
82 MachineRepresentation AtomicStoreRepresentationOf(Operator const* op) { in AtomicStoreRepresentationOf()
89 MachineType AtomicOpType(Operator const* op) { in AtomicOpType()
94 V(Word32And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
95 V(Word32Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
96 V(Word32Xor, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
97 V(Word32Shl, Operator::kNoProperties, 2, 0, 1) \
98 V(Word32Shr, Operator::kNoProperties, 2, 0, 1) \
99 V(Word32Sar, Operator::kNoProperties, 2, 0, 1) \
100 V(Word32Ror, Operator::kNoProperties, 2, 0, 1) \
101 V(Word32Equal, Operator::kCommutative, 2, 0, 1) \
102 V(Int32Add, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
103 V(Int32Sub, Operator::kNoProperties, 2, 0, 1) \
104 V(Int32Mul, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
105 V(Int32MulHigh, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
106 V(Int32Div, Operator::kNoProperties, 2, 1, 1) \
107 V(Int32Mod, Operator::kNoProperties, 2, 1, 1) \
108 V(Int32LessThan, Operator::kNoProperties, 2, 0, 1) \
109 V(Int32LessThanOrEqual, Operator::kNoProperties, 2, 0, 1) \
110 V(Uint32Div, Operator::kNoProperties, 2, 1, 1) \
111 V(Uint32LessThan, Operator::kNoProperties, 2, 0, 1) \
112 V(Uint32LessThanOrEqual, Operator::kNoProperties, 2, 0, 1) \
113 V(Uint32Mod, Operator::kNoProperties, 2, 1, 1) \
114 V(Uint32MulHigh, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)
117 V(Word64And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
118 V(Word64Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
119 V(Word64Xor, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
120 V(Word64Shl, Operator::kNoProperties, 2, 0, 1) \
121 V(Word64Shr, Operator::kNoProperties, 2, 0, 1) \
122 V(Word64Sar, Operator::kNoProperties, 2, 0, 1) \
123 V(Word64Ror, Operator::kNoProperties, 2, 0, 1) \
124 V(Word64Equal, Operator::kCommutative, 2, 0, 1) \
125 V(Int64Add, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
126 V(Int64Sub, Operator::kNoProperties, 2, 0, 1) \
127 V(Int64Mul, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
128 V(Int64Div, Operator::kNoProperties, 2, 1, 1) \
129 V(Int64Mod, Operator::kNoProperties, 2, 1, 1) \
130 V(Int64LessThan, Operator::kNoProperties, 2, 0, 1) \
131 V(Int64LessThanOrEqual, Operator::kNoProperties, 2, 0, 1) \
132 V(Uint64Div, Operator::kNoProperties, 2, 1, 1) \
133 V(Uint64Mod, Operator::kNoProperties, 2, 1, 1) \
134 V(Uint64LessThan, Operator::kNoProperties, 2, 0, 1) \
135 V(Uint64LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)
140 V(Word32Clz, Operator::kNoProperties, 1, 0, 1) \
141 V(Word64Clz, Operator::kNoProperties, 1, 0, 1) \
142 V(Word32ReverseBytes, Operator::kNoProperties, 1, 0, 1) \
143 V(Word64ReverseBytes, Operator::kNoProperties, 1, 0, 1) \
144 V(BitcastWordToTaggedSigned, Operator::kNoProperties, 1, 0, 1) \
145 V(TruncateFloat64ToWord32, Operator::kNoProperties, 1, 0, 1) \
146 V(ChangeFloat32ToFloat64, Operator::kNoProperties, 1, 0, 1) \
147 V(ChangeFloat64ToInt32, Operator::kNoProperties, 1, 0, 1) \
148 V(ChangeFloat64ToUint32, Operator::kNoProperties, 1, 0, 1) \
149 V(ChangeFloat64ToUint64, Operator::kNoProperties, 1, 0, 1) \
150 V(TruncateFloat64ToUint32, Operator::kNoProperties, 1, 0, 1) \
151 V(TruncateFloat32ToInt32, Operator::kNoProperties, 1, 0, 1) \
152 V(TruncateFloat32ToUint32, Operator::kNoProperties, 1, 0, 1) \
153 V(TryTruncateFloat32ToInt64, Operator::kNoProperties, 1, 0, 2) \
154 V(TryTruncateFloat64ToInt64, Operator::kNoProperties, 1, 0, 2) \
155 V(TryTruncateFloat32ToUint64, Operator::kNoProperties, 1, 0, 2) \
156 V(TryTruncateFloat64ToUint64, Operator::kNoProperties, 1, 0, 2) \
157 V(ChangeInt32ToFloat64, Operator::kNoProperties, 1, 0, 1) \
158 V(Float64SilenceNaN, Operator::kNoProperties, 1, 0, 1) \
159 V(RoundFloat64ToInt32, Operator::kNoProperties, 1, 0, 1) \
160 V(RoundInt32ToFloat32, Operator::kNoProperties, 1, 0, 1) \
161 V(RoundInt64ToFloat32, Operator::kNoProperties, 1, 0, 1) \
162 V(RoundInt64ToFloat64, Operator::kNoProperties, 1, 0, 1) \
163 V(RoundUint32ToFloat32, Operator::kNoProperties, 1, 0, 1) \
164 V(RoundUint64ToFloat32, Operator::kNoProperties, 1, 0, 1) \
165 V(RoundUint64ToFloat64, Operator::kNoProperties, 1, 0, 1) \
166 V(ChangeInt32ToInt64, Operator::kNoProperties, 1, 0, 1) \
167 V(ChangeUint32ToFloat64, Operator::kNoProperties, 1, 0, 1) \
168 V(ChangeUint32ToUint64, Operator::kNoProperties, 1, 0, 1) \
169 V(TruncateFloat64ToFloat32, Operator::kNoProperties, 1, 0, 1) \
170 V(TruncateInt64ToInt32, Operator::kNoProperties, 1, 0, 1) \
171 V(BitcastFloat32ToInt32, Operator::kNoProperties, 1, 0, 1) \
172 V(BitcastFloat64ToInt64, Operator::kNoProperties, 1, 0, 1) \
173 V(BitcastInt32ToFloat32, Operator::kNoProperties, 1, 0, 1) \
174 V(BitcastInt64ToFloat64, Operator::kNoProperties, 1, 0, 1) \
175 V(SignExtendWord8ToInt32, Operator::kNoProperties, 1, 0, 1) \
176 V(SignExtendWord16ToInt32, Operator::kNoProperties, 1, 0, 1) \
177 V(SignExtendWord8ToInt64, Operator::kNoProperties, 1, 0, 1) \
178 V(SignExtendWord16ToInt64, Operator::kNoProperties, 1, 0, 1) \
179 V(SignExtendWord32ToInt64, Operator::kNoProperties, 1, 0, 1) \
180 V(Float32Abs, Operator::kNoProperties, 1, 0, 1) \
181 V(Float32Add, Operator::kCommutative, 2, 0, 1) \
182 V(Float32Sub, Operator::kNoProperties, 2, 0, 1) \
183 V(Float32Mul, Operator::kCommutative, 2, 0, 1) \
184 V(Float32Div, Operator::kNoProperties, 2, 0, 1) \
185 V(Float32Neg, Operator::kNoProperties, 1, 0, 1) \
186 V(Float32Sqrt, Operator::kNoProperties, 1, 0, 1) \
187 V(Float32Max, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
188 V(Float32Min, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
189 V(Float64Abs, Operator::kNoProperties, 1, 0, 1) \
190 V(Float64Acos, Operator::kNoProperties, 1, 0, 1) \
191 V(Float64Acosh, Operator::kNoProperties, 1, 0, 1) \
192 V(Float64Asin, Operator::kNoProperties, 1, 0, 1) \
193 V(Float64Asinh, Operator::kNoProperties, 1, 0, 1) \
194 V(Float64Atan, Operator::kNoProperties, 1, 0, 1) \
195 V(Float64Atan2, Operator::kNoProperties, 2, 0, 1) \
196 V(Float64Atanh, Operator::kNoProperties, 1, 0, 1) \
197 V(Float64Cbrt, Operator::kNoProperties, 1, 0, 1) \
198 V(Float64Cos, Operator::kNoProperties, 1, 0, 1) \
199 V(Float64Cosh, Operator::kNoProperties, 1, 0, 1) \
200 V(Float64Exp, Operator::kNoProperties, 1, 0, 1) \
201 V(Float64Expm1, Operator::kNoProperties, 1, 0, 1) \
202 V(Float64Log, Operator::kNoProperties, 1, 0, 1) \
203 V(Float64Log1p, Operator::kNoProperties, 1, 0, 1) \
204 V(Float64Log2, Operator::kNoProperties, 1, 0, 1) \
205 V(Float64Log10, Operator::kNoProperties, 1, 0, 1) \
206 V(Float64Max, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
207 V(Float64Min, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
208 V(Float64Neg, Operator::kNoProperties, 1, 0, 1) \
209 V(Float64Add, Operator::kCommutative, 2, 0, 1) \
210 V(Float64Sub, Operator::kNoProperties, 2, 0, 1) \
211 V(Float64Mul, Operator::kCommutative, 2, 0, 1) \
212 V(Float64Div, Operator::kNoProperties, 2, 0, 1) \
213 V(Float64Mod, Operator::kNoProperties, 2, 0, 1) \
214 V(Float64Pow, Operator::kNoProperties, 2, 0, 1) \
215 V(Float64Sin, Operator::kNoProperties, 1, 0, 1) \
216 V(Float64Sinh, Operator::kNoProperties, 1, 0, 1) \
217 V(Float64Sqrt, Operator::kNoProperties, 1, 0, 1) \
218 V(Float64Tan, Operator::kNoProperties, 1, 0, 1) \
219 V(Float64Tanh, Operator::kNoProperties, 1, 0, 1) \
220 V(Float32Equal, Operator::kCommutative, 2, 0, 1) \
221 V(Float32LessThan, Operator::kNoProperties, 2, 0, 1) \
222 V(Float32LessThanOrEqual, Operator::kNoProperties, 2, 0, 1) \
223 V(Float64Equal, Operator::kCommutative, 2, 0, 1) \
224 V(Float64LessThan, Operator::kNoProperties, 2, 0, 1) \
225 V(Float64LessThanOrEqual, Operator::kNoProperties, 2, 0, 1) \
226 V(Float64ExtractLowWord32, Operator::kNoProperties, 1, 0, 1) \
227 V(Float64ExtractHighWord32, Operator::kNoProperties, 1, 0, 1) \
228 V(Float64InsertLowWord32, Operator::kNoProperties, 2, 0, 1) \
229 V(Float64InsertHighWord32, Operator::kNoProperties, 2, 0, 1) \
230 V(LoadStackPointer, Operator::kNoProperties, 0, 0, 1) \
231 V(LoadFramePointer, Operator::kNoProperties, 0, 0, 1) \
232 V(LoadParentFramePointer, Operator::kNoProperties, 0, 0, 1) \
233 V(Int32PairAdd, Operator::kNoProperties, 4, 0, 2) \
234 V(Int32PairSub, Operator::kNoProperties, 4, 0, 2) \
235 V(Int32PairMul, Operator::kNoProperties, 4, 0, 2) \
236 V(Word32PairShl, Operator::kNoProperties, 3, 0, 2) \
237 V(Word32PairShr, Operator::kNoProperties, 3, 0, 2) \
238 V(Word32PairSar, Operator::kNoProperties, 3, 0, 2) \
239 V(F32x4Splat, Operator::kNoProperties, 1, 0, 1) \
240 V(F32x4SConvertI32x4, Operator::kNoProperties, 1, 0, 1) \
241 V(F32x4UConvertI32x4, Operator::kNoProperties, 1, 0, 1) \
242 V(F32x4Abs, Operator::kNoProperties, 1, 0, 1) \
243 V(F32x4Neg, Operator::kNoProperties, 1, 0, 1) \
244 V(F32x4RecipApprox, Operator::kNoProperties, 1, 0, 1) \
245 V(F32x4RecipSqrtApprox, Operator::kNoProperties, 1, 0, 1) \
246 V(F32x4Add, Operator::kCommutative, 2, 0, 1) \
247 V(F32x4AddHoriz, Operator::kNoProperties, 2, 0, 1) \
248 V(F32x4Sub, Operator::kNoProperties, 2, 0, 1) \
249 V(F32x4Mul, Operator::kCommutative, 2, 0, 1) \
250 V(F32x4Min, Operator::kCommutative, 2, 0, 1) \
251 V(F32x4Max, Operator::kCommutative, 2, 0, 1) \
252 V(F32x4Eq, Operator::kCommutative, 2, 0, 1) \
253 V(F32x4Ne, Operator::kCommutative, 2, 0, 1) \
254 V(F32x4Lt, Operator::kNoProperties, 2, 0, 1) \
255 V(F32x4Le, Operator::kNoProperties, 2, 0, 1) \
256 V(I32x4Splat, Operator::kNoProperties, 1, 0, 1) \
257 V(I32x4SConvertF32x4, Operator::kNoProperties, 1, 0, 1) \
258 V(I32x4SConvertI16x8Low, Operator::kNoProperties, 1, 0, 1) \
259 V(I32x4SConvertI16x8High, Operator::kNoProperties, 1, 0, 1) \
260 V(I32x4Neg, Operator::kNoProperties, 1, 0, 1) \
261 V(I32x4Add, Operator::kCommutative, 2, 0, 1) \
262 V(I32x4AddHoriz, Operator::kNoProperties, 2, 0, 1) \
263 V(I32x4Sub, Operator::kNoProperties, 2, 0, 1) \
264 V(I32x4Mul, Operator::kCommutative, 2, 0, 1) \
265 V(I32x4MinS, Operator::kCommutative, 2, 0, 1) \
266 V(I32x4MaxS, Operator::kCommutative, 2, 0, 1) \
267 V(I32x4Eq, Operator::kCommutative, 2, 0, 1) \
268 V(I32x4Ne, Operator::kCommutative, 2, 0, 1) \
269 V(I32x4GtS, Operator::kNoProperties, 2, 0, 1) \
270 V(I32x4GeS, Operator::kNoProperties, 2, 0, 1) \
271 V(I32x4UConvertF32x4, Operator::kNoProperties, 1, 0, 1) \
272 V(I32x4UConvertI16x8Low, Operator::kNoProperties, 1, 0, 1) \
273 V(I32x4UConvertI16x8High, Operator::kNoProperties, 1, 0, 1) \
274 V(I32x4MinU, Operator::kCommutative, 2, 0, 1) \
275 V(I32x4MaxU, Operator::kCommutative, 2, 0, 1) \
276 V(I32x4GtU, Operator::kNoProperties, 2, 0, 1) \
277 V(I32x4GeU, Operator::kNoProperties, 2, 0, 1) \
278 V(I16x8Splat, Operator::kNoProperties, 1, 0, 1) \
279 V(I16x8SConvertI8x16Low, Operator::kNoProperties, 1, 0, 1) \
280 V(I16x8SConvertI8x16High, Operator::kNoProperties, 1, 0, 1) \
281 V(I16x8Neg, Operator::kNoProperties, 1, 0, 1) \
282 V(I16x8SConvertI32x4, Operator::kNoProperties, 2, 0, 1) \
283 V(I16x8Add, Operator::kCommutative, 2, 0, 1) \
284 V(I16x8AddSaturateS, Operator::kCommutative, 2, 0, 1) \
285 V(I16x8AddHoriz, Operator::kNoProperties, 2, 0, 1) \
286 V(I16x8Sub, Operator::kNoProperties, 2, 0, 1) \
287 V(I16x8SubSaturateS, Operator::kNoProperties, 2, 0, 1) \
288 V(I16x8Mul, Operator::kCommutative, 2, 0, 1) \
289 V(I16x8MinS, Operator::kCommutative, 2, 0, 1) \
290 V(I16x8MaxS, Operator::kCommutative, 2, 0, 1) \
291 V(I16x8Eq, Operator::kCommutative, 2, 0, 1) \
292 V(I16x8Ne, Operator::kCommutative, 2, 0, 1) \
293 V(I16x8GtS, Operator::kNoProperties, 2, 0, 1) \
294 V(I16x8GeS, Operator::kNoProperties, 2, 0, 1) \
295 V(I16x8UConvertI8x16Low, Operator::kNoProperties, 1, 0, 1) \
296 V(I16x8UConvertI8x16High, Operator::kNoProperties, 1, 0, 1) \
297 V(I16x8UConvertI32x4, Operator::kNoProperties, 2, 0, 1) \
298 V(I16x8AddSaturateU, Operator::kCommutative, 2, 0, 1) \
299 V(I16x8SubSaturateU, Operator::kNoProperties, 2, 0, 1) \
300 V(I16x8MinU, Operator::kCommutative, 2, 0, 1) \
301 V(I16x8MaxU, Operator::kCommutative, 2, 0, 1) \
302 V(I16x8GtU, Operator::kNoProperties, 2, 0, 1) \
303 V(I16x8GeU, Operator::kNoProperties, 2, 0, 1) \
304 V(I8x16Splat, Operator::kNoProperties, 1, 0, 1) \
305 V(I8x16Neg, Operator::kNoProperties, 1, 0, 1) \
306 V(I8x16SConvertI16x8, Operator::kNoProperties, 2, 0, 1) \
307 V(I8x16Add, Operator::kCommutative, 2, 0, 1) \
308 V(I8x16AddSaturateS, Operator::kCommutative, 2, 0, 1) \
309 V(I8x16Sub, Operator::kNoProperties, 2, 0, 1) \
310 V(I8x16SubSaturateS, Operator::kNoProperties, 2, 0, 1) \
311 V(I8x16Mul, Operator::kCommutative, 2, 0, 1) \
312 V(I8x16MinS, Operator::kCommutative, 2, 0, 1) \
313 V(I8x16MaxS, Operator::kCommutative, 2, 0, 1) \
314 V(I8x16Eq, Operator::kCommutative, 2, 0, 1) \
315 V(I8x16Ne, Operator::kCommutative, 2, 0, 1) \
316 V(I8x16GtS, Operator::kNoProperties, 2, 0, 1) \
317 V(I8x16GeS, Operator::kNoProperties, 2, 0, 1) \
318 V(I8x16UConvertI16x8, Operator::kNoProperties, 2, 0, 1) \
319 V(I8x16AddSaturateU, Operator::kCommutative, 2, 0, 1) \
320 V(I8x16SubSaturateU, Operator::kNoProperties, 2, 0, 1) \
321 V(I8x16MinU, Operator::kCommutative, 2, 0, 1) \
322 V(I8x16MaxU, Operator::kCommutative, 2, 0, 1) \
323 V(I8x16GtU, Operator::kNoProperties, 2, 0, 1) \
324 V(I8x16GeU, Operator::kNoProperties, 2, 0, 1) \
325 V(S128Load, Operator::kNoProperties, 2, 0, 1) \
326 V(S128Store, Operator::kNoProperties, 3, 0, 1) \
327 V(S128Zero, Operator::kNoProperties, 0, 0, 1) \
328 V(S128And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
329 V(S128Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
330 V(S128Xor, Operator::kAssociative | Operator::kCommutative, 2, 0, 1) \
331 V(S128Not, Operator::kNoProperties, 1, 0, 1) \
332 V(S128Select, Operator::kNoProperties, 3, 0, 1) \
333 V(S1x4AnyTrue, Operator::kNoProperties, 1, 0, 1) \
334 V(S1x4AllTrue, Operator::kNoProperties, 1, 0, 1) \
335 V(S1x8AnyTrue, Operator::kNoProperties, 1, 0, 1) \
336 V(S1x8AllTrue, Operator::kNoProperties, 1, 0, 1) \
337 V(S1x16AnyTrue, Operator::kNoProperties, 1, 0, 1) \
338 V(S1x16AllTrue, Operator::kNoProperties, 1, 0, 1)
341 V(Word32Ctz, Operator::kNoProperties, 1, 0, 1) \
342 V(Word64Ctz, Operator::kNoProperties, 1, 0, 1) \
343 V(Word32ReverseBits, Operator::kNoProperties, 1, 0, 1) \
344 V(Word64ReverseBits, Operator::kNoProperties, 1, 0, 1) \
345 V(Int32AbsWithOverflow, Operator::kNoProperties, 1, 0, 1) \
346 V(Int64AbsWithOverflow, Operator::kNoProperties, 1, 0, 1) \
347 V(Word32Popcnt, Operator::kNoProperties, 1, 0, 1) \
348 V(Word64Popcnt, Operator::kNoProperties, 1, 0, 1) \
349 V(Float32RoundDown, Operator::kNoProperties, 1, 0, 1) \
350 V(Float64RoundDown, Operator::kNoProperties, 1, 0, 1) \
351 V(Float32RoundUp, Operator::kNoProperties, 1, 0, 1) \
352 V(Float64RoundUp, Operator::kNoProperties, 1, 0, 1) \
353 V(Float32RoundTruncate, Operator::kNoProperties, 1, 0, 1) \
354 V(Float64RoundTruncate, Operator::kNoProperties, 1, 0, 1) \
355 V(Float64RoundTiesAway, Operator::kNoProperties, 1, 0, 1) \
356 V(Float32RoundTiesEven, Operator::kNoProperties, 1, 0, 1) \
357 V(Float64RoundTiesEven, Operator::kNoProperties, 1, 0, 1)
360 V(Int32AddWithOverflow, Operator::kAssociative | Operator::kCommutative) \
361 V(Int32SubWithOverflow, Operator::kNoProperties) \
362 V(Int32MulWithOverflow, Operator::kAssociative | Operator::kCommutative) \
363 V(Int64AddWithOverflow, Operator::kAssociative | Operator::kCommutative) \
364 V(Int64SubWithOverflow, Operator::kNoProperties)
444 IrOpcode::kStackSlot, Operator::kNoDeopt | Operator::kNoThrow, in StackSlotOperator()
452 struct Name##Operator final : public Operator { \
453 Name##Operator() \
454 : Operator(IrOpcode::k##Name, Operator::kPure | properties, #Name, \
458 Name##Operator k##Name;
464 struct Name##Operator final : public Operator { \
465 Name##Operator() \
466 : Operator(IrOpcode::k##Name, \
467 Operator::kEliminatable | Operator::kNoRead | properties, \
470 Name##Operator k##Name;
475 struct Load##Type##Operator final : public Operator1<LoadRepresentation> { \
476 Load##Type##Operator() \
479 Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite, \
482 struct PoisonedLoad##Type##Operator final \
484 PoisonedLoad##Type##Operator() \
487 Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite, \
490 struct UnalignedLoad##Type##Operator final \
492 UnalignedLoad##Type##Operator() \
495 Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite, \
498 struct ProtectedLoad##Type##Operator final \
500 ProtectedLoad##Type##Operator() \
503 Operator::kNoDeopt | Operator::kNoThrow, "ProtectedLoad", 2, 1, \
506 Load##Type##Operator kLoad##Type; \
507 PoisonedLoad##Type##Operator kPoisonedLoad##Type; \
508 UnalignedLoad##Type##Operator kUnalignedLoad##Type; \
509 ProtectedLoad##Type##Operator kProtectedLoad##Type;
514 struct StackSlotOfSize##Size##OfAlignment##Alignment##Operator final \
516 StackSlotOfSize##Size##OfAlignment##Alignment##Operator() \
519 StackSlotOfSize##Size##OfAlignment##Alignment##Operator \
525 struct Store##Type##Operator : public Operator1<StoreRepresentation> { \
526 explicit Store##Type##Operator(WriteBarrierKind write_barrier_kind) \
529 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, \
534 struct Store##Type##NoWriteBarrier##Operator final \
535 : public Store##Type##Operator { \
536 Store##Type##NoWriteBarrier##Operator() \
537 : Store##Type##Operator(kNoWriteBarrier) {} \
539 struct Store##Type##MapWriteBarrier##Operator final \
540 : public Store##Type##Operator { \
541 Store##Type##MapWriteBarrier##Operator() \
542 : Store##Type##Operator(kMapWriteBarrier) {} \
544 struct Store##Type##PointerWriteBarrier##Operator final \
545 : public Store##Type##Operator { \
546 Store##Type##PointerWriteBarrier##Operator() \
547 : Store##Type##Operator(kPointerWriteBarrier) {} \
549 struct Store##Type##FullWriteBarrier##Operator final \
550 : public Store##Type##Operator { \
551 Store##Type##FullWriteBarrier##Operator() \
552 : Store##Type##Operator(kFullWriteBarrier) {} \
554 struct UnalignedStore##Type##Operator final \
556 UnalignedStore##Type##Operator() \
559 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, \
563 struct ProtectedStore##Type##Operator \
565 explicit ProtectedStore##Type##Operator() \
568 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, \
573 Store##Type##NoWriteBarrier##Operator kStore##Type##NoWriteBarrier; \
574 Store##Type##MapWriteBarrier##Operator kStore##Type##MapWriteBarrier; \
575 Store##Type##PointerWriteBarrier##Operator \
577 Store##Type##FullWriteBarrier##Operator kStore##Type##FullWriteBarrier; \
578 UnalignedStore##Type##Operator kUnalignedStore##Type; \
579 ProtectedStore##Type##Operator kProtectedStore##Type;
584 struct Word32AtomicLoad##Type##Operator final \
586 Word32AtomicLoad##Type##Operator() \
589 Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite, \
592 Word32AtomicLoad##Type##Operator kWord32AtomicLoad##Type;
597 struct Word64AtomicLoad##Type##Operator final \
599 Word64AtomicLoad##Type##Operator() \
602 Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite, \
605 Word64AtomicLoad##Type##Operator kWord64AtomicLoad##Type;
610 struct Word32AtomicStore##Type##Operator \
612 Word32AtomicStore##Type##Operator() \
615 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, \
619 Word32AtomicStore##Type##Operator kWord32AtomicStore##Type;
624 struct Word64AtomicStore##Type##Operator \
626 Word64AtomicStore##Type##Operator() \
629 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, \
633 Word64AtomicStore##Type##Operator kWord64AtomicStore##Type;
638 struct op##type##Operator : public Operator1<MachineType> { \
639 op##type##Operator() \
641 Operator::kNoDeopt | Operator::kNoThrow, #op, \
644 op##type##Operator k##op##type;
666 struct Word32AtomicCompareExchange##Type##Operator \
668 Word32AtomicCompareExchange##Type##Operator() \
670 Operator::kNoDeopt | Operator::kNoThrow, \
674 Word32AtomicCompareExchange##Type##Operator \
680 struct Word64AtomicCompareExchange##Type##Operator \
682 Word64AtomicCompareExchange##Type##Operator() \
684 Operator::kNoDeopt | Operator::kNoThrow, \
688 Word64AtomicCompareExchange##Type##Operator \
693 struct Word32AtomicPairLoadOperator : public Operator {
695 : Operator(IrOpcode::kWord32AtomicPairLoad, in Word32AtomicPairLoadOperator()
696 Operator::kNoDeopt | Operator::kNoThrow, in Word32AtomicPairLoadOperator()
701 struct Word32AtomicPairStoreOperator : public Operator {
703 : Operator(IrOpcode::kWord32AtomicPairStore, in Word32AtomicPairStoreOperator()
704 Operator::kNoDeopt | Operator::kNoThrow, in Word32AtomicPairStoreOperator()
710 struct Word32AtomicPair##op##Operator : public Operator { \
711 Word32AtomicPair##op##Operator() \
712 : Operator(IrOpcode::kWord32AtomicPair##op, \
713 Operator::kNoDeopt | Operator::kNoThrow, \
716 Word32AtomicPair##op##Operator kWord32AtomicPair##op;
722 struct op##type##Operator : public Operator1<MachineType> { \
723 op##type##Operator() \
725 IrOpcode::k##op, Operator::kNoDeopt | Operator::kNoThrow, "#op", \
728 op##type##Operator k##op##type;
740 struct Word32AtomicPairCompareExchangeOperator : public Operator {
742 : Operator(IrOpcode::kWord32AtomicPairCompareExchange, in Word32AtomicPairCompareExchangeOperator()
743 Operator::kNoDeopt | Operator::kNoThrow, in Word32AtomicPairCompareExchangeOperator()
749 struct Word64AtomicNarrowCompareExchange##Type##Operator \
751 Word64AtomicNarrowCompareExchange##Type##Operator() \
753 Operator::kNoDeopt | Operator::kNoThrow, \
757 Word64AtomicNarrowCompareExchange##Type##Operator \
767 struct BitcastWordToTaggedOperator : public Operator {
769 : Operator(IrOpcode::kBitcastWordToTagged, in BitcastWordToTaggedOperator()
770 Operator::kEliminatable | Operator::kNoWrite, in BitcastWordToTaggedOperator()
775 struct BitcastTaggedToWordOperator : public Operator {
777 : Operator(IrOpcode::kBitcastTaggedToWord, in BitcastTaggedToWordOperator()
778 Operator::kEliminatable | Operator::kNoWrite, in BitcastTaggedToWordOperator()
783 struct BitcastMaybeObjectToWordOperator : public Operator {
785 : Operator(IrOpcode::kBitcastTaggedToWord, in BitcastMaybeObjectToWordOperator()
786 Operator::kEliminatable | Operator::kNoWrite, in BitcastMaybeObjectToWordOperator()
791 struct TaggedPoisonOnSpeculation : public Operator {
793 : Operator(IrOpcode::kTaggedPoisonOnSpeculation, in TaggedPoisonOnSpeculation()
794 Operator::kEliminatable | Operator::kNoWrite, in TaggedPoisonOnSpeculation()
799 struct Word32PoisonOnSpeculation : public Operator {
801 : Operator(IrOpcode::kWord32PoisonOnSpeculation, in Word32PoisonOnSpeculation()
802 Operator::kEliminatable | Operator::kNoWrite, in Word32PoisonOnSpeculation()
807 struct Word64PoisonOnSpeculation : public Operator {
809 : Operator(IrOpcode::kWord64PoisonOnSpeculation, in Word64PoisonOnSpeculation()
810 Operator::kEliminatable | Operator::kNoWrite, in Word64PoisonOnSpeculation()
815 struct SpeculationFenceOperator : public Operator {
817 : Operator(IrOpcode::kSpeculationFence, Operator::kNoThrow, in SpeculationFenceOperator()
822 struct DebugAbortOperator : public Operator {
824 : Operator(IrOpcode::kDebugAbort, Operator::kNoThrow, "DebugAbort", 1, in DebugAbortOperator()
829 struct DebugBreakOperator : public Operator {
831 : Operator(IrOpcode::kDebugBreak, Operator::kNoThrow, "DebugBreak", 0, in DebugBreakOperator()
836 struct UnsafePointerAddOperator final : public Operator {
838 : Operator(IrOpcode::kUnsafePointerAdd, Operator::kKontrol, in UnsafePointerAddOperator()
846 : Operator1<const char*>(IrOpcode::kComment, Operator::kNoThrow, in CommentOperator()
865 const Operator* MachineOperatorBuilder::UnalignedLoad(LoadRepresentation rep) { in UnalignedLoad()
875 const Operator* MachineOperatorBuilder::UnalignedStore( in UnalignedStore()
892 const Operator* MachineOperatorBuilder::Name() { return &cache_.k##Name; }
905 const Operator* MachineOperatorBuilder::Name() { return &cache_.k##Name; } in PURE_OPTIONAL_OP_LIST()
909 const Operator* MachineOperatorBuilder::Load(LoadRepresentation rep) {
919 const Operator* MachineOperatorBuilder::PoisonedLoad(LoadRepresentation rep) { in PoisonedLoad()
929 const Operator* MachineOperatorBuilder::ProtectedLoad(LoadRepresentation rep) { in ProtectedLoad()
939 const Operator* MachineOperatorBuilder::StackSlot(int size, int alignment) { in StackSlot()
953 const Operator* MachineOperatorBuilder::StackSlot(MachineRepresentation rep, in StackSlot()
958 const Operator* MachineOperatorBuilder::Store(StoreRepresentation store_rep) { in Store()
982 const Operator* MachineOperatorBuilder::ProtectedStore( in ProtectedStore()
998 const Operator* MachineOperatorBuilder::UnsafePointerAdd() { in UnsafePointerAdd()
1002 const Operator* MachineOperatorBuilder::BitcastWordToTagged() { in BitcastWordToTagged()
1006 const Operator* MachineOperatorBuilder::BitcastTaggedToWord() { in BitcastTaggedToWord()
1010 const Operator* MachineOperatorBuilder::BitcastMaybeObjectToWord() { in BitcastMaybeObjectToWord()
1014 const Operator* MachineOperatorBuilder::DebugAbort() { in DebugAbort()
1018 const Operator* MachineOperatorBuilder::DebugBreak() { in DebugBreak()
1022 const Operator* MachineOperatorBuilder::Comment(const char* msg) { in Comment()
1026 const Operator* MachineOperatorBuilder::Word32AtomicLoad( in Word32AtomicLoad()
1037 const Operator* MachineOperatorBuilder::Word32AtomicStore( in Word32AtomicStore()
1048 const Operator* MachineOperatorBuilder::Word32AtomicExchange(MachineType type) { in Word32AtomicExchange()
1058 const Operator* MachineOperatorBuilder::Word32AtomicCompareExchange( in Word32AtomicCompareExchange()
1069 const Operator* MachineOperatorBuilder::Word32AtomicAdd(MachineType type) { in Word32AtomicAdd()
1079 const Operator* MachineOperatorBuilder::Word32AtomicSub(MachineType type) { in Word32AtomicSub()
1089 const Operator* MachineOperatorBuilder::Word32AtomicAnd(MachineType type) { in Word32AtomicAnd()
1099 const Operator* MachineOperatorBuilder::Word32AtomicOr(MachineType type) { in Word32AtomicOr()
1109 const Operator* MachineOperatorBuilder::Word32AtomicXor(MachineType type) { in Word32AtomicXor()
1119 const Operator* MachineOperatorBuilder::Word64AtomicLoad( in Word64AtomicLoad()
1130 const Operator* MachineOperatorBuilder::Word64AtomicStore( in Word64AtomicStore()
1141 const Operator* MachineOperatorBuilder::Word64AtomicAdd(MachineType type) { in Word64AtomicAdd()
1151 const Operator* MachineOperatorBuilder::Word64AtomicSub(MachineType type) { in Word64AtomicSub()
1161 const Operator* MachineOperatorBuilder::Word64AtomicAnd(MachineType type) { in Word64AtomicAnd()
1171 const Operator* MachineOperatorBuilder::Word64AtomicOr(MachineType type) { in Word64AtomicOr()
1181 const Operator* MachineOperatorBuilder::Word64AtomicXor(MachineType type) { in Word64AtomicXor()
1191 const Operator* MachineOperatorBuilder::Word64AtomicExchange(MachineType type) { in Word64AtomicExchange()
1201 const Operator* MachineOperatorBuilder::Word64AtomicCompareExchange( in Word64AtomicCompareExchange()
1212 const Operator* MachineOperatorBuilder::Word32AtomicPairLoad() { in Word32AtomicPairLoad()
1216 const Operator* MachineOperatorBuilder::Word32AtomicPairStore() { in Word32AtomicPairStore()
1220 const Operator* MachineOperatorBuilder::Word32AtomicPairAdd() { in Word32AtomicPairAdd()
1224 const Operator* MachineOperatorBuilder::Word32AtomicPairSub() { in Word32AtomicPairSub()
1228 const Operator* MachineOperatorBuilder::Word32AtomicPairAnd() { in Word32AtomicPairAnd()
1232 const Operator* MachineOperatorBuilder::Word32AtomicPairOr() { in Word32AtomicPairOr()
1236 const Operator* MachineOperatorBuilder::Word32AtomicPairXor() { in Word32AtomicPairXor()
1240 const Operator* MachineOperatorBuilder::Word32AtomicPairExchange() { in Word32AtomicPairExchange()
1244 const Operator* MachineOperatorBuilder::Word32AtomicPairCompareExchange() { in Word32AtomicPairCompareExchange()
1248 const Operator* MachineOperatorBuilder::Word64AtomicNarrowAdd( in Word64AtomicNarrowAdd()
1259 const Operator* MachineOperatorBuilder::Word64AtomicNarrowSub( in Word64AtomicNarrowSub()
1270 const Operator* MachineOperatorBuilder::Word64AtomicNarrowAnd( in Word64AtomicNarrowAnd()
1281 const Operator* MachineOperatorBuilder::Word64AtomicNarrowOr(MachineType type) { in Word64AtomicNarrowOr()
1291 const Operator* MachineOperatorBuilder::Word64AtomicNarrowXor( in Word64AtomicNarrowXor()
1302 const Operator* MachineOperatorBuilder::Word64AtomicNarrowExchange( in Word64AtomicNarrowExchange()
1313 const Operator* MachineOperatorBuilder::Word64AtomicNarrowCompareExchange( in Word64AtomicNarrowCompareExchange()
1324 const Operator* MachineOperatorBuilder::TaggedPoisonOnSpeculation() { in TaggedPoisonOnSpeculation()
1328 const Operator* MachineOperatorBuilder::Word32PoisonOnSpeculation() { in Word32PoisonOnSpeculation()
1332 const Operator* MachineOperatorBuilder::Word64PoisonOnSpeculation() { in Word64PoisonOnSpeculation()
1342 const Operator* MachineOperatorBuilder::Type##ExtractLane( \
1346 Operator1<int32_t>(IrOpcode::k##Type##ExtractLane, Operator::kPure, \
1349 const Operator* MachineOperatorBuilder::Type##ReplaceLane( \
1353 Operator1<int32_t>(IrOpcode::k##Type##ReplaceLane, Operator::kPure, \
1360 const Operator* MachineOperatorBuilder::I##format##Shl(int32_t shift) { \
1363 Operator1<int32_t>(IrOpcode::kI##format##Shl, Operator::kPure, \
1366 const Operator* MachineOperatorBuilder::I##format##ShrS(int32_t shift) { \
1369 Operator1<int32_t>(IrOpcode::kI##format##ShrS, Operator::kPure, \
1372 const Operator* MachineOperatorBuilder::I##format##ShrU(int32_t shift) { \
1375 Operator1<int32_t>(IrOpcode::kI##format##ShrU, Operator::kPure, \
1381 const Operator* MachineOperatorBuilder::S8x16Shuffle( in SIMD_FORMAT_LIST()
1386 Operator1<uint8_t*>(IrOpcode::kS8x16Shuffle, Operator::kPure, "Shuffle", in SIMD_FORMAT_LIST()