v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
constants-arm64.h
Go to the documentation of this file.
1// Copyright 2013 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_CODEGEN_ARM64_CONSTANTS_ARM64_H_
6#define V8_CODEGEN_ARM64_CONSTANTS_ARM64_H_
7
8#include "src/base/macros.h"
10
11// Assert that this is an LP64 system, or LLP64 on Windows.
12static_assert(sizeof(int) == sizeof(int32_t));
13#if defined(V8_OS_WIN)
14static_assert(sizeof(1L) == sizeof(int32_t));
15#else
16static_assert(sizeof(long) == sizeof(int64_t)); // NOLINT(runtime/int)
17static_assert(sizeof(1L) == sizeof(int64_t));
18#endif
19static_assert(sizeof(void*) == sizeof(int64_t));
20static_assert(sizeof(1) == sizeof(int32_t));
21
22// Get the standard printf format macros for C99 stdint types.
23#ifndef __STDC_FORMAT_MACROS
24#define __STDC_FORMAT_MACROS
25#endif
26#include <inttypes.h>
27
28namespace v8 {
29namespace internal {
30
31// The maximum size of the code range s.t. pc-relative calls are possible
32// between all Code objects in the range.
33constexpr size_t kMaxPCRelativeCodeRangeInMB = 128;
34
35constexpr uint8_t kInstrSize = 4;
36constexpr uint8_t kInstrSizeLog2 = 2;
37constexpr uint8_t kLoadLiteralScaleLog2 = 2;
39constexpr int kMaxLoadLiteralRange = 1 * MB;
40
41constexpr int kNumberOfRegisters = 32;
42constexpr int kNumberOfVRegisters = 32;
43// Callee saved registers are x19-x28.
45// Callee saved FP registers are d8-d15.
47constexpr int kWRegSizeInBits = 32;
48constexpr int kWRegSizeInBitsLog2 = 5;
49constexpr int kWRegSize = kWRegSizeInBits >> 3;
51constexpr int kXRegSizeInBits = 64;
52constexpr int kXRegSizeInBitsLog2 = 6;
53constexpr int kXRegSize = kXRegSizeInBits >> 3;
55constexpr int kSRegSizeInBits = 32;
56constexpr int kSRegSizeInBitsLog2 = 5;
57constexpr int kSRegSize = kSRegSizeInBits >> 3;
59constexpr int kDRegSizeInBits = 64;
60constexpr int kDRegSizeInBitsLog2 = 6;
61constexpr int kDRegSize = kDRegSizeInBits >> 3;
64constexpr int kBRegSizeInBits = 8;
65constexpr int kBRegSize = kBRegSizeInBits >> 3;
66constexpr int kHRegSizeInBits = 16;
67constexpr int kHRegSize = kHRegSizeInBits >> 3;
68constexpr int kQRegSizeInBits = 128;
69constexpr int kQRegSizeInBitsLog2 = 7;
70constexpr int kQRegSize = kQRegSizeInBits >> 3;
73constexpr int kVRegSize = kVRegSizeInBits >> 3;
74constexpr int64_t kWRegMask = 0x00000000ffffffffL;
75constexpr int64_t kXRegMask = 0xffffffffffffffffL;
76constexpr int64_t kSRegMask = 0x00000000ffffffffL;
77constexpr int64_t kDRegMask = 0xffffffffffffffffL;
78// TODO(all) check if the expression below works on all compilers or if it
79// triggers an overflow error.
80constexpr int64_t kDSignBit = 63;
81constexpr int64_t kDSignMask = 0x1LL << kDSignBit;
82constexpr int64_t kSSignBit = 31;
83constexpr int64_t kSSignMask = 0x1LL << kSSignBit;
84constexpr int64_t kXSignBit = 63;
85constexpr int64_t kXSignMask = 0x1LL << kXSignBit;
86constexpr int64_t kWSignBit = 31;
87constexpr int64_t kWSignMask = 0x1LL << kWSignBit;
88constexpr int64_t kDQuietNanBit = 51;
89constexpr int64_t kDQuietNanMask = 0x1LL << kDQuietNanBit;
90constexpr int64_t kSQuietNanBit = 22;
91constexpr int64_t kSQuietNanMask = 0x1LL << kSQuietNanBit;
92constexpr int64_t kHQuietNanBit = 9;
93constexpr int64_t kHQuietNanMask = 0x1LL << kHQuietNanBit;
94constexpr int64_t kByteMask = 0xffL;
95constexpr int64_t kHalfWordMask = 0xffffL;
96constexpr int64_t kWordMask = 0xffffffffL;
97constexpr uint64_t kXMaxUInt = 0xffffffffffffffffUL;
98constexpr uint64_t kWMaxUInt = 0xffffffffUL;
99constexpr int64_t kXMaxInt = 0x7fffffffffffffffL;
100constexpr int64_t kXMinInt = 0x8000000000000000L;
101constexpr int32_t kWMaxInt = 0x7fffffff;
102constexpr int32_t kWMinInt = 0x80000000;
103constexpr int kIp0Code = 16;
104constexpr int kIp1Code = 17;
105constexpr int kFramePointerRegCode = 29;
106constexpr int kLinkRegCode = 30;
107constexpr int kZeroRegCode = 31;
108constexpr int kSPRegInternalCode = 63;
109constexpr unsigned kRegCodeMask = 0x1f;
110constexpr unsigned kShiftAmountWRegMask = 0x1f;
111constexpr unsigned kShiftAmountXRegMask = 0x3f;
112// Standard machine types defined by AAPCS64.
113constexpr unsigned kHalfWordSize = 16;
114constexpr unsigned kHalfWordSizeLog2 = 4;
115constexpr unsigned kHalfWordSizeInBytes = kHalfWordSize >> 3;
117constexpr unsigned kWordSize = 32;
118constexpr unsigned kWordSizeLog2 = 5;
119constexpr unsigned kWordSizeInBytes = kWordSize >> 3;
120constexpr unsigned kWordSizeInBytesLog2 = kWordSizeLog2 - 3;
121constexpr unsigned kDoubleWordSize = 64;
122constexpr unsigned kDoubleWordSizeInBytes = kDoubleWordSize >> 3;
123constexpr unsigned kQuadWordSize = 128;
124constexpr unsigned kQuadWordSizeInBytes = kQuadWordSize >> 3;
125constexpr int kMaxLanesPerVector = 16;
126
127constexpr unsigned kAddressTagOffset = 56;
128constexpr unsigned kAddressTagWidth = 8;
129constexpr uint64_t kAddressTagMask = ((UINT64_C(1) << kAddressTagWidth) - 1)
131static_assert(kAddressTagMask == UINT64_C(0xff00000000000000),
132 "AddressTagMask must represent most-significant eight bits.");
133
134constexpr uint64_t kTTBRMask = UINT64_C(1) << 55;
135
136// AArch64 floating-point specifics. These match IEEE-754.
137constexpr unsigned kDoubleMantissaBits = 52;
138constexpr unsigned kDoubleExponentBits = 11;
139constexpr unsigned kDoubleExponentBias = 1023;
140constexpr unsigned kFloatMantissaBits = 23;
141constexpr unsigned kFloatExponentBits = 8;
142constexpr unsigned kFloatExponentBias = 127;
143constexpr unsigned kFloat16MantissaBits = 10;
144constexpr unsigned kFloat16ExponentBits = 5;
145constexpr unsigned kFloat16ExponentBias = 15;
146
147// The actual value of the kRootRegister is offset from the IsolateData's start
148// to take advantage of negative displacement values.
149constexpr int kRootRegisterBias = 256;
150
151using float16 = uint16_t;
152
153#define INSTRUCTION_FIELDS_LIST(V_) \
154 /* Register fields */ \
155 V_(Rd, 4, 0, Bits) /* Destination register. */ \
156 V_(Rn, 9, 5, Bits) /* First source register. */ \
157 V_(Rm, 20, 16, Bits) /* Second source register. */ \
158 V_(Ra, 14, 10, Bits) /* Third source register. */ \
159 V_(Rt, 4, 0, Bits) /* Load dest / store source. */ \
160 V_(Rt2, 14, 10, Bits) /* Load second dest / */ \
161 /* store second source. */ \
162 V_(Rs, 20, 16, Bits) /* Store-exclusive status */ \
163 V_(PrefetchMode, 4, 0, Bits) \
164 \
165 /* Common bits */ \
166 V_(SixtyFourBits, 31, 31, Bits) \
167 V_(FlagsUpdate, 29, 29, Bits) \
168 \
169 /* PC relative addressing */ \
170 V_(ImmPCRelHi, 23, 5, SignedBits) \
171 V_(ImmPCRelLo, 30, 29, Bits) \
172 \
173 /* Add/subtract/logical shift register */ \
174 V_(ShiftDP, 23, 22, Bits) \
175 V_(ImmDPShift, 15, 10, Bits) \
176 \
177 /* Add/subtract immediate */ \
178 V_(ImmAddSub, 21, 10, Bits) \
179 V_(ShiftAddSub, 23, 22, Bits) \
180 \
181 /* Add/subtract extend */ \
182 V_(ImmExtendShift, 12, 10, Bits) \
183 V_(ExtendMode, 15, 13, Bits) \
184 \
185 /* Move wide */ \
186 V_(ImmMoveWide, 20, 5, Bits) \
187 V_(ShiftMoveWide, 22, 21, Bits) \
188 \
189 /* Logical immediate, bitfield and extract */ \
190 V_(BitN, 22, 22, Bits) \
191 V_(ImmRotate, 21, 16, Bits) \
192 V_(ImmSetBits, 15, 10, Bits) \
193 V_(ImmR, 21, 16, Bits) \
194 V_(ImmS, 15, 10, Bits) \
195 \
196 /* Test and branch immediate */ \
197 V_(ImmTestBranch, 18, 5, SignedBits) \
198 V_(ImmTestBranchBit40, 23, 19, Bits) \
199 V_(ImmTestBranchBit5, 31, 31, Bits) \
200 \
201 /* Conditionals */ \
202 V_(Condition, 15, 12, Bits) \
203 V_(ConditionBranch, 3, 0, Bits) \
204 V_(Nzcv, 3, 0, Bits) \
205 V_(ImmCondCmp, 20, 16, Bits) \
206 V_(ImmCondBranch, 23, 5, SignedBits) \
207 \
208 /* Floating point */ \
209 V_(FPType, 23, 22, Bits) \
210 V_(ImmFP, 20, 13, Bits) \
211 V_(FPScale, 15, 10, Bits) \
212 \
213 /* Load Store */ \
214 V_(ImmLS, 20, 12, SignedBits) \
215 V_(ImmLSUnsigned, 21, 10, Bits) \
216 V_(ImmLSPair, 21, 15, SignedBits) \
217 V_(ImmShiftLS, 12, 12, Bits) \
218 V_(LSOpc, 23, 22, Bits) \
219 V_(LSVector, 26, 26, Bits) \
220 V_(LSSize, 31, 30, Bits) \
221 \
222 /* NEON generic fields */ \
223 V_(NEONQ, 30, 30, Bits) \
224 V_(NEONSize, 23, 22, Bits) \
225 V_(NEONLSSize, 11, 10, Bits) \
226 V_(NEONS, 12, 12, Bits) \
227 V_(NEONL, 21, 21, Bits) \
228 V_(NEONM, 20, 20, Bits) \
229 V_(NEONH, 11, 11, Bits) \
230 V_(ImmNEONExt, 14, 11, Bits) \
231 V_(ImmNEON5, 20, 16, Bits) \
232 V_(ImmNEON4, 14, 11, Bits) \
233 \
234 /* Other immediates */ \
235 V_(ImmUncondBranch, 25, 0, SignedBits) \
236 V_(ImmCmpBranch, 23, 5, SignedBits) \
237 V_(ImmLLiteral, 23, 5, SignedBits) \
238 V_(ImmException, 20, 5, Bits) \
239 V_(ImmHint, 11, 5, Bits) \
240 V_(ImmBarrierDomain, 11, 10, Bits) \
241 V_(ImmBarrierType, 9, 8, Bits) \
242 \
243 /* System (MRS, MSR) */ \
244 V_(ImmSystemRegister, 19, 5, Bits) \
245 V_(SysO0, 19, 19, Bits) \
246 V_(SysOp1, 18, 16, Bits) \
247 V_(SysOp2, 7, 5, Bits) \
248 V_(CRn, 15, 12, Bits) \
249 V_(CRm, 11, 8, Bits) \
250 \
251 /* Load-/store-exclusive */ \
252 V_(LoadStoreXLoad, 22, 22, Bits) \
253 V_(LoadStoreXNotExclusive, 23, 23, Bits) \
254 V_(LoadStoreXAcquireRelease, 15, 15, Bits) \
255 V_(LoadStoreXSizeLog2, 31, 30, Bits) \
256 V_(LoadStoreXPair, 21, 21, Bits) \
257 \
258 /* NEON load/store */ \
259 V_(NEONLoad, 22, 22, Bits) \
260 \
261 /* NEON Modified Immediate fields */ \
262 V_(ImmNEONabc, 18, 16, Bits) \
263 V_(ImmNEONdefgh, 9, 5, Bits) \
264 V_(NEONModImmOp, 29, 29, Bits) \
265 V_(NEONCmode, 15, 12, Bits) \
266 \
267 /* NEON Shift Immediate fields */ \
268 V_(ImmNEONImmhImmb, 22, 16, Bits) \
269 V_(ImmNEONImmh, 22, 19, Bits) \
270 V_(ImmNEONImmb, 18, 16, Bits)
271
272#define SYSTEM_REGISTER_FIELDS_LIST(V_, M_) \
273 /* NZCV */ \
274 V_(Flags, 31, 28, Bits, uint32_t) \
275 V_(N, 31, 31, Bits, bool) \
276 V_(Z, 30, 30, Bits, bool) \
277 V_(C, 29, 29, Bits, bool) \
278 V_(V, 28, 28, Bits, bool) \
279 M_(NZCV, Flags_mask) \
280 \
281 /* FPCR */ \
282 V_(AHP, 26, 26, Bits, bool) \
283 V_(DN, 25, 25, Bits, bool) \
284 V_(FZ, 24, 24, Bits, bool) \
285 V_(RMode, 23, 22, Bits, FPRounding) \
286 M_(FPCR, AHP_mask | DN_mask | FZ_mask | RMode_mask)
287
288// Fields offsets.
289#define DECLARE_FIELDS_OFFSETS(Name, HighBit, LowBit, unused_1, unused_2) \
290 constexpr int Name##_offset = LowBit; \
291 constexpr int Name##_width = HighBit - LowBit + 1; \
292 constexpr uint32_t Name##_mask = ((1 << Name##_width) - 1) << LowBit;
293#define DECLARE_INSTRUCTION_FIELDS_OFFSETS(Name, HighBit, LowBit, unused_1) \
294 DECLARE_FIELDS_OFFSETS(Name, HighBit, LowBit, unused_1, unused_2)
297#undef DECLARE_FIELDS_OFFSETS
298#undef DECLARE_INSTRUCTION_FIELDS_OFFSETS
299
300// ImmPCRel is a compound field (not present in INSTRUCTION_FIELDS_LIST), formed
301// from ImmPCRelLo and ImmPCRelHi.
302constexpr int ImmPCRel_mask = ImmPCRelLo_mask | ImmPCRelHi_mask;
303
304// Condition codes.
305enum Condition : int {
306 eq = 0, // Equal
307 ne = 1, // Not equal
308 hs = 2, // Unsigned higher or same (or carry set)
309 cs = hs, // --
310 lo = 3, // Unsigned lower (or carry clear)
311 cc = lo, // --
312 mi = 4, // Negative
313 pl = 5, // Positive or zero
314 vs = 6, // Signed overflow
315 vc = 7, // No signed overflow
316 hi = 8, // Unsigned higher
317 ls = 9, // Unsigned lower or same
318 ge = 10, // Signed greater than or equal
319 lt = 11, // Signed less than
320 gt = 12, // Signed greater than
321 le = 13, // Signed less than or equal
322 al = 14, // Always executed
323 nv = 15, // Behaves as always/al.
324
325 // Unified cross-platform condition names/aliases.
326 kEqual = eq,
327 kNotEqual = ne,
328 kLessThan = lt,
336 kOverflow = vs,
337 kNoOverflow = vc,
338 kZero = eq,
339 kNotZero = ne,
340};
341
343 // Conditions al and nv behave identically, as "always true". They can't be
344 // inverted, because there is no never condition.
345 DCHECK((cond != al) && (cond != nv));
346 return static_cast<Condition>(cond ^ 1);
347}
348
350
353
354 // Derive the flag combinations from the system register bit descriptions.
355 NFlag = N_mask,
356 ZFlag = Z_mask,
357 CFlag = C_mask,
358 VFlag = V_mask,
370
371 // Floating-point comparison results.
377
378enum Shift {
380 LSL = 0x0,
381 LSR = 0x1,
382 ASR = 0x2,
383 ROR = 0x3,
384 MSL = 0x4
386
387enum Extend {
389 UXTB = 0,
390 UXTH = 1,
391 UXTW = 2,
392 UXTX = 3,
393 SXTB = 4,
394 SXTH = 5,
395 SXTW = 6,
396 SXTX = 7
398
400 NOP = 0,
401 YIELD = 1,
402 WFE = 2,
403 WFI = 3,
404 SEV = 4,
405 SEVL = 5,
406 CSDB = 20,
407 BTI = 32,
408 BTI_c = 34,
409 BTI_j = 36,
410 BTI_jc = 38
412
413// In a guarded page, only BTI and PACI[AB]SP instructions are allowed to be
414// the target of indirect branches. Details on which kinds of branches each
415// instruction allows follow in the comments below:
417 // Do not emit a BTI instruction.
418 kNone,
419
420 // Emit a BTI instruction. Cannot be the target of indirect jumps/calls.
421 kBti,
422
423 // Emit a "BTI c" instruction. Can be the target of indirect jumps (BR) with
424 // x16/x17 as the target register, or indirect calls (BLR).
425 kBtiCall,
426
427 // Emit a "BTI j" instruction. Can be the target of indirect jumps (BR).
428 kBtiJump,
429
430 // Emit a "BTI jc" instruction, which is a combination of "BTI j" and "BTI c".
432
433 // Emit a PACIBSP instruction, which acts like a "BTI c" or a "BTI jc",
434 // based on the value of SCTLR_EL1.BT0.
436};
437
444
451
452// System/special register names.
453// This information is not encoded as one field but as the concatenation of
454// multiple fields (Op0<0>, Op1, Crn, Crm, Op2).
456 NZCV = ((0x1 << SysO0_offset) | (0x3 << SysOp1_offset) | (0x4 << CRn_offset) |
457 (0x2 << CRm_offset) | (0x0 << SysOp2_offset)) >>
458 ImmSystemRegister_offset,
459 FPCR = ((0x1 << SysO0_offset) | (0x3 << SysOp1_offset) | (0x4 << CRn_offset) |
460 (0x4 << CRm_offset) | (0x0 << SysOp2_offset)) >>
461 ImmSystemRegister_offset
463
464// Instruction enumerations.
465//
466// These are the masks that define a class of instructions, and the list of
467// instructions within each class. Each enumeration has a Fixed, FMask and
468// Mask value.
469//
470// Fixed: The fixed bits in this instruction class.
471// FMask: The mask used to extract the fixed bits in the class.
472// Mask: The mask used to identify the instructions within a class.
473//
474// The enumerations can be used like this:
475//
476// DCHECK(instr->Mask(PCRelAddressingFMask) == PCRelAddressingFixed);
477// switch(instr->Mask(PCRelAddressingMask)) {
478// case ADR: Format("adr 'Xd, 'AddrPCRelByte"); break;
479// case ADRP: Format("adrp 'Xd, 'AddrPCRelPage"); break;
480// default: printf("Unknown instruction\n");
481// }
482
483// Used to corrupt encodings by setting all bits when orred. Although currently
484// unallocated in AArch64, this encoding is not guaranteed to be undefined
485// indefinitely.
486constexpr uint32_t kUnallocatedInstruction = 0xffffffff;
487
488// Generic fields.
489using GenericInstrField = uint32_t;
490constexpr GenericInstrField SixtyFourBits = 0x80000000;
491constexpr GenericInstrField ThirtyTwoBits = 0x00000000;
492constexpr GenericInstrField FP32 = 0x00000000;
493constexpr GenericInstrField FP64 = 0x00400000;
494
495using NEONFormatField = uint32_t;
497constexpr NEONFormatField NEON_Q = 0x40000000;
498constexpr NEONFormatField NEON_sz = 0x00400000;
499constexpr NEONFormatField NEON_8B = 0x00000000;
501constexpr NEONFormatField NEON_4H = 0x00400000;
503constexpr NEONFormatField NEON_2S = 0x00800000;
505constexpr NEONFormatField NEON_1D = 0x00C00000;
506constexpr NEONFormatField NEON_2D = 0x00C00000 | NEON_Q;
507
508using NEONFPFormatField = uint32_t;
510constexpr NEONFPFormatField NEON_FP_4H = 0x00000000;
515
516using NEONLSFormatField = uint32_t;
518constexpr NEONLSFormatField LS_NEON_8B = 0x00000000;
520constexpr NEONLSFormatField LS_NEON_4H = 0x00000400;
522constexpr NEONLSFormatField LS_NEON_2S = 0x00000800;
524constexpr NEONLSFormatField LS_NEON_1D = 0x00000C00;
526
527using NEONScalarFormatField = uint32_t;
529constexpr NEONScalarFormatField NEONScalar = 0x10000000;
530constexpr NEONScalarFormatField NEON_B = 0x00000000;
531constexpr NEONScalarFormatField NEON_H = 0x00400000;
532constexpr NEONScalarFormatField NEON_S = 0x00800000;
533constexpr NEONScalarFormatField NEON_D = 0x00C00000;
534
535// PC relative addressing.
536using PCRelAddressingOp = uint32_t;
542
543// Add/sub (immediate, shifted and extended.)
544constexpr int kSFOffset = 31;
545using AddSubOp = uint32_t;
546constexpr AddSubOp AddSubOpMask = 0x60000000;
547constexpr AddSubOp AddSubSetFlagsBit = 0x20000000;
548constexpr AddSubOp ADD = 0x00000000;
550constexpr AddSubOp SUB = 0x40000000;
552
553#define ADD_SUB_OP_LIST(V) \
554 V(ADD); \
555 V(ADDS); \
556 V(SUB); \
557 V(SUBS)
558
559using AddSubImmediateOp = uint32_t;
563#define ADD_SUB_IMMEDIATE(A) \
564 constexpr AddSubImmediateOp A##_w_imm = AddSubImmediateFixed | A; \
565 constexpr AddSubImmediateOp A##_x_imm = \
566 AddSubImmediateFixed | A | SixtyFourBits
568#undef ADD_SUB_IMMEDIATE
569
570using AddSubShiftedOp = uint32_t;
571constexpr AddSubShiftedOp AddSubShiftedFixed = 0x0B000000;
572constexpr AddSubShiftedOp AddSubShiftedFMask = 0x1F200000;
573constexpr AddSubShiftedOp AddSubShiftedMask = 0xFF200000;
574#define ADD_SUB_SHIFTED(A) \
575 constexpr AddSubShiftedOp A##_w_shift = AddSubShiftedFixed | A; \
576 constexpr AddSubShiftedOp A##_x_shift = AddSubShiftedFixed | A | SixtyFourBits
578#undef ADD_SUB_SHIFTED
579
580using AddSubExtendedOp = uint32_t;
584#define ADD_SUB_EXTENDED(A) \
585 constexpr AddSubExtendedOp A##_w_ext = AddSubExtendedFixed | A; \
586 constexpr AddSubExtendedOp A##_x_ext = AddSubExtendedFixed | A | SixtyFourBits
588#undef ADD_SUB_EXTENDED
589
590// Add/sub with carry.
591using AddSubWithCarryOp = uint32_t;
597constexpr AddSubWithCarryOp ADC = ADC_w;
603constexpr AddSubWithCarryOp SBC = SBC_w;
607
608// Logical (immediate and shifted register).
609using LogicalOp = uint32_t;
610constexpr LogicalOp LogicalOpMask = 0x60200000;
611constexpr LogicalOp NOT = 0x00200000;
612constexpr LogicalOp AND = 0x00000000;
613constexpr LogicalOp BIC = AND | NOT;
614constexpr LogicalOp ORR = 0x20000000;
615constexpr LogicalOp ORN = ORR | NOT;
616constexpr LogicalOp EOR = 0x40000000;
617constexpr LogicalOp EON = EOR | NOT;
618constexpr LogicalOp ANDS = 0x60000000;
619constexpr LogicalOp BICS = ANDS | NOT;
620
621// Logical immediate.
622using LogicalImmediateOp = uint32_t;
638
639// Logical shifted register.
640using LogicalShiftedOp = uint32_t;
668
669// Move wide immediate.
670using MoveWideImmediateOp = uint32_t;
674constexpr MoveWideImmediateOp MOVN = 0x00000000;
675constexpr MoveWideImmediateOp MOVZ = 0x40000000;
676constexpr MoveWideImmediateOp MOVK = 0x60000000;
686
687// Bitfield.
688constexpr int kBitfieldNOffset = 22;
689using BitfieldOp = uint32_t;
690constexpr BitfieldOp BitfieldFixed = 0x13000000;
691constexpr BitfieldOp BitfieldFMask = 0x1F800000;
692constexpr BitfieldOp BitfieldMask = 0xFF800000;
693constexpr BitfieldOp SBFM_w = BitfieldFixed | 0x00000000;
694constexpr BitfieldOp SBFM_x = BitfieldFixed | 0x80000000;
696constexpr BitfieldOp BFM_w = BitfieldFixed | 0x20000000;
697constexpr BitfieldOp BFM_x = BitfieldFixed | 0xA0000000;
698constexpr BitfieldOp BFM = BFM_w;
699constexpr BitfieldOp UBFM_w = BitfieldFixed | 0x40000000;
700constexpr BitfieldOp UBFM_x = BitfieldFixed | 0xC0000000;
702// Bitfield N field.
703
704// Extract.
705using ExtractOp = uint32_t;
706constexpr ExtractOp ExtractFixed = 0x13800000;
707constexpr ExtractOp ExtractFMask = 0x1F800000;
708constexpr ExtractOp ExtractMask = 0xFFA00000;
709constexpr ExtractOp EXTR_w = ExtractFixed | 0x00000000;
710constexpr ExtractOp EXTR_x = ExtractFixed | 0x80000000;
712
713// Unconditional branch.
714using UnconditionalBranchOp = uint32_t;
718constexpr UnconditionalBranchOp B = UnconditionalBranchFixed | 0x00000000;
720
721// Unconditional branch to register.
724 0xD6000000;
726 0xFE000000;
728 0xFFFFFC1F;
735
736// Compare and branch.
737using CompareBranchOp = uint32_t;
738constexpr CompareBranchOp CompareBranchFixed = 0x34000000;
739constexpr CompareBranchOp CompareBranchFMask = 0x7E000000;
740constexpr CompareBranchOp CompareBranchMask = 0xFF000000;
741constexpr CompareBranchOp CBZ_w = CompareBranchFixed | 0x00000000;
742constexpr CompareBranchOp CBZ_x = CompareBranchFixed | 0x80000000;
747
748// Test and branch.
749using TestBranchOp = uint32_t;
750constexpr TestBranchOp TestBranchFixed = 0x36000000;
751constexpr TestBranchOp TestBranchFMask = 0x7E000000;
752constexpr TestBranchOp TestBranchMask = 0x7F000000;
753constexpr TestBranchOp TBZ = TestBranchFixed | 0x00000000;
754constexpr TestBranchOp TBNZ = TestBranchFixed | 0x01000000;
755
756// Conditional branch.
757using ConditionalBranchOp = uint32_t;
762
763// System.
764// System instruction encoding is complicated because some instructions use op
765// and CR fields to encode parameters. To handle this cleanly, the system
766// instructions are split into more than one group.
767
768using SystemOp = uint32_t;
769constexpr SystemOp SystemFixed = 0xD5000000;
770constexpr SystemOp SystemFMask = 0xFFC00000;
771
772using SystemSysRegOp = uint32_t;
773constexpr SystemSysRegOp SystemSysRegFixed = 0xD5100000;
774constexpr SystemSysRegOp SystemSysRegFMask = 0xFFD00000;
775constexpr SystemSysRegOp SystemSysRegMask = 0xFFF00000;
776constexpr SystemSysRegOp MRS = SystemSysRegFixed | 0x00200000;
777constexpr SystemSysRegOp MSR = SystemSysRegFixed | 0x00000000;
778
779using SystemHintOp = uint32_t;
780constexpr SystemHintOp SystemHintFixed = 0xD503201F;
781constexpr SystemHintOp SystemHintFMask = 0xFFFFF01F;
782constexpr SystemHintOp SystemHintMask = 0xFFFFF01F;
783constexpr SystemHintOp HINT = SystemHintFixed | 0x00000000;
784
785// Exception.
786using ExceptionOp = uint32_t;
787constexpr ExceptionOp ExceptionFixed = 0xD4000000;
788constexpr ExceptionOp ExceptionFMask = 0xFF000000;
789constexpr ExceptionOp ExceptionMask = 0xFFE0001F;
790constexpr ExceptionOp HLT = ExceptionFixed | 0x00400000;
791constexpr ExceptionOp BRK = ExceptionFixed | 0x00200000;
792constexpr ExceptionOp SVC = ExceptionFixed | 0x00000001;
793constexpr ExceptionOp HVC = ExceptionFixed | 0x00000002;
794constexpr ExceptionOp SMC = ExceptionFixed | 0x00000003;
795constexpr ExceptionOp DCPS1 = ExceptionFixed | 0x00A00001;
796constexpr ExceptionOp DCPS2 = ExceptionFixed | 0x00A00002;
797constexpr ExceptionOp DCPS3 = ExceptionFixed | 0x00A00003;
798// Code used to spot hlt instructions that should not be hit.
799constexpr int kHltBadCode = 0xbad;
800
801using MemBarrierOp = uint32_t;
802constexpr MemBarrierOp MemBarrierFixed = 0xD503309F;
803constexpr MemBarrierOp MemBarrierFMask = 0xFFFFF09F;
804constexpr MemBarrierOp MemBarrierMask = 0xFFFFF0FF;
805constexpr MemBarrierOp DSB = MemBarrierFixed | 0x00000000;
806constexpr MemBarrierOp DMB = MemBarrierFixed | 0x00000020;
807constexpr MemBarrierOp ISB = MemBarrierFixed | 0x00000040;
808
809using SystemPAuthOp = uint32_t;
810constexpr SystemPAuthOp SystemPAuthFixed = 0xD503211F;
811constexpr SystemPAuthOp SystemPAuthFMask = 0xFFFFFD1F;
812constexpr SystemPAuthOp SystemPAuthMask = 0xFFFFFFFF;
813constexpr SystemPAuthOp PACIB1716 = SystemPAuthFixed | 0x00000140;
814constexpr SystemPAuthOp AUTIB1716 = SystemPAuthFixed | 0x000001C0;
815constexpr SystemPAuthOp PACIBSP = SystemPAuthFixed | 0x00000360;
816constexpr SystemPAuthOp AUTIBSP = SystemPAuthFixed | 0x000003E0;
817
818// Any load or store (including pair).
819using LoadStoreAnyOp = uint32_t;
820constexpr LoadStoreAnyOp LoadStoreAnyFMask = 0x0A000000;
821constexpr LoadStoreAnyOp LoadStoreAnyFixed = 0x08000000;
822
823// Any load pair or store pair.
824using LoadStorePairAnyOp = uint32_t;
827
828#define LOAD_STORE_PAIR_OP_LIST(V) \
829 V(STP, w, 0x00000000); \
830 V(LDP, w, 0x00400000); \
831 V(LDPSW, x, 0x40400000); \
832 V(STP, x, 0x80000000); \
833 V(LDP, x, 0x80400000); \
834 V(STP, s, 0x04000000); \
835 V(LDP, s, 0x04400000); \
836 V(STP, d, 0x44000000); \
837 V(LDP, d, 0x44400000); \
838 V(STP, q, 0x84000000); \
839 V(LDP, q, 0x84400000)
840
841// Load/store pair (post, pre and offset.)
842using LoadStorePairOp = uint32_t;
843constexpr LoadStorePairOp LoadStorePairMask = 0xC4400000;
845#define LOAD_STORE_PAIR(A, B, C) constexpr LoadStorePairOp A##_##B = C
847#undef LOAD_STORE_PAIR
848
853#define LOAD_STORE_PAIR_POST_INDEX(A, B, C) \
854 constexpr LoadStorePairPostIndexOp A##_##B##_post = \
855 LoadStorePairPostIndexFixed | A##_##B
857#undef LOAD_STORE_PAIR_POST_INDEX
858
859using LoadStorePairPreIndexOp = uint32_t;
863#define LOAD_STORE_PAIR_PRE_INDEX(A, B, C) \
864 constexpr LoadStorePairPreIndexOp A##_##B##_pre = \
865 LoadStorePairPreIndexFixed | A##_##B
867#undef LOAD_STORE_PAIR_PRE_INDEX
868
869using LoadStorePairOffsetOp = uint32_t;
873#define LOAD_STORE_PAIR_OFFSET(A, B, C) \
874 constexpr LoadStorePairOffsetOp A##_##B##_off = \
875 LoadStorePairOffsetFixed | A##_##B
877#undef LOAD_STORE_PAIR_OFFSET
878
879// Load literal.
880using LoadLiteralOp = uint32_t;
881constexpr LoadLiteralOp LoadLiteralFixed = 0x18000000;
882constexpr LoadLiteralOp LoadLiteralFMask = 0x3B000000;
883constexpr LoadLiteralOp LoadLiteralMask = 0xFF000000;
884constexpr LoadLiteralOp LDR_w_lit = LoadLiteralFixed | 0x00000000;
885constexpr LoadLiteralOp LDR_x_lit = LoadLiteralFixed | 0x40000000;
887constexpr LoadLiteralOp PRFM_lit = LoadLiteralFixed | 0xC0000000;
888constexpr LoadLiteralOp LDR_s_lit = LoadLiteralFixed | 0x04000000;
889constexpr LoadLiteralOp LDR_d_lit = LoadLiteralFixed | 0x44000000;
890
891#define LOAD_STORE_OP_LIST(V) \
892 V(ST, RB, w, 0x00000000); \
893 V(ST, RH, w, 0x40000000); \
894 V(ST, R, w, 0x80000000); \
895 V(ST, R, x, 0xC0000000); \
896 V(LD, RB, w, 0x00400000); \
897 V(LD, RH, w, 0x40400000); \
898 V(LD, R, w, 0x80400000); \
899 V(LD, R, x, 0xC0400000); \
900 V(LD, RSB, x, 0x00800000); \
901 V(LD, RSH, x, 0x40800000); \
902 V(LD, RSW, x, 0x80800000); \
903 V(LD, RSB, w, 0x00C00000); \
904 V(LD, RSH, w, 0x40C00000); \
905 V(ST, R, b, 0x04000000); \
906 V(ST, R, h, 0x44000000); \
907 V(ST, R, s, 0x84000000); \
908 V(ST, R, d, 0xC4000000); \
909 V(ST, R, q, 0x04800000); \
910 V(LD, R, b, 0x04400000); \
911 V(LD, R, h, 0x44400000); \
912 V(LD, R, s, 0x84400000); \
913 V(LD, R, d, 0xC4400000); \
914 V(LD, R, q, 0x04C00000)
915
916// Load/store unscaled offset.
921#define LOAD_STORE_UNSCALED(A, B, C, D) \
922 constexpr LoadStoreUnscaledOffsetOp A##U##B##_##C = \
923 LoadStoreUnscaledOffsetFixed | D
925#undef LOAD_STORE_UNSCALED
926
927// Load/store (post, pre, offset and unsigned.)
928using LoadStoreOp = uint32_t;
929constexpr LoadStoreOp LoadStoreMask = 0xC4C00000;
930#define LOAD_STORE(A, B, C, D) constexpr LoadStoreOp A##B##_##C = D
932#undef LOAD_STORE
933constexpr LoadStoreOp PRFM = 0xC0800000;
934
935// Load/store post index.
936using LoadStorePostIndex = uint32_t;
940#define LOAD_STORE_POST_INDEX(A, B, C, D) \
941 constexpr LoadStorePostIndex A##B##_##C##_post = LoadStorePostIndexFixed | D
943#undef LOAD_STORE_POST_INDEX
944
945// Load/store pre index.
946using LoadStorePreIndex = uint32_t;
950#define LOAD_STORE_PRE_INDEX(A, B, C, D) \
951 constexpr LoadStorePreIndex A##B##_##C##_pre = LoadStorePreIndexFixed | D
953#undef LOAD_STORE_PRE_INDEX
954
955// Load/store unsigned offset.
956using LoadStoreUnsignedOffset = uint32_t;
962#define LOAD_STORE_UNSIGNED_OFFSET(A, B, C, D) \
963 constexpr LoadStoreUnsignedOffset A##B##_##C##_unsigned = \
964 LoadStoreUnsignedOffsetFixed | D
966#undef LOAD_STORE_UNSIGNED_OFFSET
967
968// Load/store register offset.
969using LoadStoreRegisterOffset = uint32_t;
975#define LOAD_STORE_REGISTER_OFFSET(A, B, C, D) \
976 constexpr LoadStoreRegisterOffset A##B##_##C##_reg = \
977 LoadStoreRegisterOffsetFixed | D
979#undef LOAD_STORE_REGISTER_OFFSET
980
981// Load/store acquire/release.
987 LoadStoreAcquireReleaseFixed | 0x00008000;
989 LoadStoreAcquireReleaseFixed | 0x00408000;
991 LoadStoreAcquireReleaseFixed | 0x00808000;
993 LoadStoreAcquireReleaseFixed | 0x00C08000;
995 LoadStoreAcquireReleaseFixed | 0x40008000;
997 LoadStoreAcquireReleaseFixed | 0x40408000;
999 LoadStoreAcquireReleaseFixed | 0x40808000;
1001 LoadStoreAcquireReleaseFixed | 0x40C08000;
1003 LoadStoreAcquireReleaseFixed | 0x80008000;
1005 LoadStoreAcquireReleaseFixed | 0x80408000;
1007 LoadStoreAcquireReleaseFixed | 0x80808000;
1009 LoadStoreAcquireReleaseFixed | 0x80C08000;
1011 LoadStoreAcquireReleaseFixed | 0xC0008000;
1013 LoadStoreAcquireReleaseFixed | 0xC0408000;
1015 LoadStoreAcquireReleaseFixed | 0xC0808000;
1017 LoadStoreAcquireReleaseFixed | 0xC0C08000;
1018
1019// Compare and swap acquire/release [Armv8.1].
1024 LoadStoreAcquireReleaseFixed | 0x80A00000;
1026 LoadStoreAcquireReleaseFixed | 0x00A00000;
1028 LoadStoreAcquireReleaseFixed | 0x40A00000;
1030 LoadStoreAcquireReleaseFixed | 0x00200000;
1057
1058#define ATOMIC_MEMORY_SIMPLE_OPC_LIST(V) \
1059 V(LDADD, 0x00000000); \
1060 V(LDCLR, 0x00001000); \
1061 V(LDEOR, 0x00002000); \
1062 V(LDSET, 0x00003000); \
1063 V(LDSMAX, 0x00004000); \
1064 V(LDSMIN, 0x00005000); \
1065 V(LDUMAX, 0x00006000); \
1066 V(LDUMIN, 0x00007000)
1067
1068// Atomic memory operations [Armv8.1].
1069using AtomicMemoryOp = uint32_t;
1070constexpr AtomicMemoryOp AtomicMemoryFixed = 0x38200000;
1071constexpr AtomicMemoryOp AtomicMemoryFMask = 0x3B200C00;
1072constexpr AtomicMemoryOp AtomicMemoryMask = 0xFFE0FC00;
1073constexpr AtomicMemoryOp SWPB = AtomicMemoryFixed | 0x00008000;
1074constexpr AtomicMemoryOp SWPAB = AtomicMemoryFixed | 0x00808000;
1075constexpr AtomicMemoryOp SWPLB = AtomicMemoryFixed | 0x00408000;
1076constexpr AtomicMemoryOp SWPALB = AtomicMemoryFixed | 0x00C08000;
1077constexpr AtomicMemoryOp SWPH = AtomicMemoryFixed | 0x40008000;
1078constexpr AtomicMemoryOp SWPAH = AtomicMemoryFixed | 0x40808000;
1079constexpr AtomicMemoryOp SWPLH = AtomicMemoryFixed | 0x40408000;
1080constexpr AtomicMemoryOp SWPALH = AtomicMemoryFixed | 0x40C08000;
1081constexpr AtomicMemoryOp SWP_w = AtomicMemoryFixed | 0x80008000;
1082constexpr AtomicMemoryOp SWPA_w = AtomicMemoryFixed | 0x80808000;
1083constexpr AtomicMemoryOp SWPL_w = AtomicMemoryFixed | 0x80408000;
1085constexpr AtomicMemoryOp SWP_x = AtomicMemoryFixed | 0xC0008000;
1086constexpr AtomicMemoryOp SWPA_x = AtomicMemoryFixed | 0xC0808000;
1087constexpr AtomicMemoryOp SWPL_x = AtomicMemoryFixed | 0xC0408000;
1089
1092#define ATOMIC_MEMORY_SIMPLE(N, OP) \
1093 constexpr AtomicMemoryOp N##Op = OP; \
1094 constexpr AtomicMemoryOp N##B = AtomicMemoryFixed | OP; \
1095 constexpr AtomicMemoryOp N##AB = AtomicMemoryFixed | OP | 0x00800000; \
1096 constexpr AtomicMemoryOp N##LB = AtomicMemoryFixed | OP | 0x00400000; \
1097 constexpr AtomicMemoryOp N##ALB = AtomicMemoryFixed | OP | 0x00C00000; \
1098 constexpr AtomicMemoryOp N##H = AtomicMemoryFixed | OP | 0x40000000; \
1099 constexpr AtomicMemoryOp N##AH = AtomicMemoryFixed | OP | 0x40800000; \
1100 constexpr AtomicMemoryOp N##LH = AtomicMemoryFixed | OP | 0x40400000; \
1101 constexpr AtomicMemoryOp N##ALH = AtomicMemoryFixed | OP | 0x40C00000; \
1102 constexpr AtomicMemoryOp N##_w = AtomicMemoryFixed | OP | 0x80000000; \
1103 constexpr AtomicMemoryOp N##A_w = AtomicMemoryFixed | OP | 0x80800000; \
1104 constexpr AtomicMemoryOp N##L_w = AtomicMemoryFixed | OP | 0x80400000; \
1105 constexpr AtomicMemoryOp N##AL_w = AtomicMemoryFixed | OP | 0x80C00000; \
1106 constexpr AtomicMemoryOp N##_x = AtomicMemoryFixed | OP | 0xC0000000; \
1107 constexpr AtomicMemoryOp N##A_x = AtomicMemoryFixed | OP | 0xC0800000; \
1108 constexpr AtomicMemoryOp N##L_x = AtomicMemoryFixed | OP | 0xC0400000; \
1109 constexpr AtomicMemoryOp N##AL_x = AtomicMemoryFixed | OP | 0xC0C00000
1110
1112#undef ATOMIC_MEMORY_SIMPLE
1113
1114// Conditional compare.
1115using ConditionalCompareOp = uint32_t;
1117constexpr ConditionalCompareOp CCMN = 0x20000000;
1118constexpr ConditionalCompareOp CCMP = 0x60000000;
1119
1120// Conditional compare register.
1123 0x1A400000;
1125 0x1FE00800;
1127 0xFFE00C10;
1136
1137// Conditional compare immediate.
1140 0x1A400800;
1142 0x1FE00800;
1144 0xFFE00C10;
1153
1154// Conditional select.
1155using ConditionalSelectOp = uint32_t;
1171
1172// Data processing 1 source.
1178 DataProcessing1SourceFixed | 0x00000000;
1182 DataProcessing1SourceFixed | 0x00000400;
1196
1197// Data processing 2 source.
1203 DataProcessing2SourceFixed | 0x00000800;
1205 DataProcessing2SourceFixed | 0x80000800;
1208 DataProcessing2SourceFixed | 0x00000C00;
1210 DataProcessing2SourceFixed | 0x80000C00;
1213 DataProcessing2SourceFixed | 0x00002000;
1215 DataProcessing2SourceFixed | 0x80002000;
1218 DataProcessing2SourceFixed | 0x00002400;
1220 DataProcessing2SourceFixed | 0x80002400;
1223 DataProcessing2SourceFixed | 0x00002800;
1225 DataProcessing2SourceFixed | 0x80002800;
1228 DataProcessing2SourceFixed | 0x00002C00;
1230 DataProcessing2SourceFixed | 0x80002C00;
1233 DataProcessing2SourceFixed | 0x00004000;
1235 DataProcessing2SourceFixed | 0x00004400;
1237 DataProcessing2SourceFixed | 0x00004800;
1241 DataProcessing2SourceFixed | 0x00005000;
1243 DataProcessing2SourceFixed | 0x00005400;
1245 DataProcessing2SourceFixed | 0x00005800;
1248
1249// Data processing 3 source.
1255 DataProcessing3SourceFixed | 0x00000000;
1257 DataProcessing3SourceFixed | 0x80000000;
1260 DataProcessing3SourceFixed | 0x00008000;
1262 DataProcessing3SourceFixed | 0x80008000;
1265 DataProcessing3SourceFixed | 0x80200000;
1267 DataProcessing3SourceFixed | 0x80208000;
1269 DataProcessing3SourceFixed | 0x80400000;
1271 DataProcessing3SourceFixed | 0x80A00000;
1273 DataProcessing3SourceFixed | 0x80A08000;
1275 DataProcessing3SourceFixed | 0x80C00000;
1276
1277// Floating point compare.
1278using FPCompareOp = uint32_t;
1279constexpr FPCompareOp FPCompareFixed = 0x1E202000;
1280constexpr FPCompareOp FPCompareFMask = 0x5F203C00;
1281constexpr FPCompareOp FPCompareMask = 0xFFE0FC1F;
1282constexpr FPCompareOp FCMP_s = FPCompareFixed | 0x00000000;
1283constexpr FPCompareOp FCMP_d = FPCompareFixed | FP64 | 0x00000000;
1285constexpr FPCompareOp FCMP_s_zero = FPCompareFixed | 0x00000008;
1286constexpr FPCompareOp FCMP_d_zero = FPCompareFixed | FP64 | 0x00000008;
1288constexpr FPCompareOp FCMPE_s = FPCompareFixed | 0x00000010;
1289constexpr FPCompareOp FCMPE_d = FPCompareFixed | FP64 | 0x00000010;
1290constexpr FPCompareOp FCMPE_s_zero = FPCompareFixed | 0x00000018;
1291constexpr FPCompareOp FCMPE_d_zero = FPCompareFixed | FP64 | 0x00000018;
1292
1293// Floating point conditional compare.
1294using FPConditionalCompareOp = uint32_t;
1299 FPConditionalCompareFixed | 0x00000000;
1301 FPConditionalCompareFixed | FP64 | 0x00000000;
1304 FPConditionalCompareFixed | 0x00000010;
1306 FPConditionalCompareFixed | FP64 | 0x00000010;
1308
1309// Floating point conditional select.
1310using FPConditionalSelectOp = uint32_t;
1316 FPConditionalSelectFixed | FP64 | 0x00000000;
1318
1319// Floating point immediate.
1320using FPImmediateOp = uint32_t;
1321constexpr FPImmediateOp FPImmediateFixed = 0x1E201000;
1322constexpr FPImmediateOp FPImmediateFMask = 0x5F201C00;
1323constexpr FPImmediateOp FPImmediateMask = 0xFFE01C00;
1326
1327// Floating point data processing 1 source.
1333 FPDataProcessing1SourceFixed | 0x00000000;
1335 FPDataProcessing1SourceFixed | FP64 | 0x00000000;
1338 FPDataProcessing1SourceFixed | 0x00008000;
1340 FPDataProcessing1SourceFixed | FP64 | 0x00008000;
1343 FPDataProcessing1SourceFixed | 0x00010000;
1345 FPDataProcessing1SourceFixed | FP64 | 0x00010000;
1348 FPDataProcessing1SourceFixed | 0x00018000;
1350 FPDataProcessing1SourceFixed | FP64 | 0x00018000;
1353 FPDataProcessing1SourceFixed | 0x00028000;
1355 FPDataProcessing1SourceFixed | FP64 | 0x00020000;
1357 FPDataProcessing1SourceFixed | 0x00038000;
1359 FPDataProcessing1SourceFixed | FP64 | 0x00038000;
1361 FPDataProcessing1SourceFixed | 0x00C20000;
1363 FPDataProcessing1SourceFixed | 0x00C28000;
1365 FPDataProcessing1SourceFixed | 0x00040000;
1367 FPDataProcessing1SourceFixed | FP64 | 0x00040000;
1370 FPDataProcessing1SourceFixed | 0x00048000;
1372 FPDataProcessing1SourceFixed | FP64 | 0x00048000;
1375 FPDataProcessing1SourceFixed | 0x00050000;
1377 FPDataProcessing1SourceFixed | FP64 | 0x00050000;
1380 FPDataProcessing1SourceFixed | 0x00058000;
1382 FPDataProcessing1SourceFixed | FP64 | 0x00058000;
1385 FPDataProcessing1SourceFixed | 0x00060000;
1387 FPDataProcessing1SourceFixed | FP64 | 0x00060000;
1390 FPDataProcessing1SourceFixed | 0x00070000;
1392 FPDataProcessing1SourceFixed | FP64 | 0x00070000;
1395 FPDataProcessing1SourceFixed | 0x00078000;
1397 FPDataProcessing1SourceFixed | FP64 | 0x00078000;
1399
1400// Floating point data processing 2 source.
1406 FPDataProcessing2SourceFixed | 0x00000000;
1410 FPDataProcessing2SourceFixed | 0x00001000;
1414 FPDataProcessing2SourceFixed | 0x00002000;
1418 FPDataProcessing2SourceFixed | 0x00003000;
1422 FPDataProcessing2SourceFixed | 0x00004000;
1426 FPDataProcessing2SourceFixed | 0x00005000;
1430 FPDataProcessing2SourceFixed | 0x00006000;
1434 FPDataProcessing2SourceFixed | 0x00007000;
1438 FPDataProcessing2SourceFixed | 0x00008000;
1441
1442// Floating point data processing 3 source.
1448 FPDataProcessing3SourceFixed | 0x00000000;
1450 FPDataProcessing3SourceFixed | 0x00008000;
1452 FPDataProcessing3SourceFixed | 0x00200000;
1454 FPDataProcessing3SourceFixed | 0x00208000;
1456 FPDataProcessing3SourceFixed | 0x00400000;
1458 FPDataProcessing3SourceFixed | 0x00408000;
1460 FPDataProcessing3SourceFixed | 0x00600000;
1462 FPDataProcessing3SourceFixed | 0x00608000;
1463
1464// Conversion between floating point and integer.
1465using FPIntegerConvertOp = uint32_t;
1534 FPIntegerConvertFixed | SixtyFourBits | 0x008F0000;
1536 FPIntegerConvertFixed | SixtyFourBits | 0x008E0000;
1538 FPIntegerConvertFixed | FP64 | 0x001E0000;
1539
1540// Conversion between fixed point and floating point.
1541using FPFixedPointConvertOp = uint32_t;
1546 FPFixedPointConvertFixed | 0x00180000;
1553 FPFixedPointConvertFixed | 0x00190000;
1560 FPFixedPointConvertFixed | 0x00020000;
1567 FPFixedPointConvertFixed | 0x00030000;
1573
1574// NEON instructions with two register operands.
1575using NEON2RegMiscOp = uint32_t;
1576constexpr NEON2RegMiscOp NEON2RegMiscFixed = 0x0E200800;
1577constexpr NEON2RegMiscOp NEON2RegMiscFMask = 0x9F260C00;
1579constexpr NEON2RegMiscOp NEON2RegMiscMask = 0xBF3FFC00;
1580constexpr NEON2RegMiscOp NEON2RegMiscUBit = 0x20000000;
1608
1609constexpr NEON2RegMiscOp NEON2RegMiscOpcode = 0x0001F000;
1615
1616// These instructions use only one bit of the size field. The other bit is
1617// used to distinguish between instructions.
1653
1656
1657// NEON instructions with three same-type operands.
1658using NEON3SameOp = uint32_t;
1659constexpr NEON3SameOp NEON3SameFixed = 0x0E200400;
1660constexpr NEON3SameOp NEON3SameFMask = 0x9F200400;
1661constexpr NEON3SameOp NEON3SameMask = 0xBF20FC00;
1662constexpr NEON3SameOp NEON3SameUBit = 0x20000000;
1663constexpr NEON3SameOp NEON_ADD = NEON3SameFixed | 0x00008000;
1664constexpr NEON3SameOp NEON_ADDP = NEON3SameFixed | 0x0000B800;
1665constexpr NEON3SameOp NEON_SHADD = NEON3SameFixed | 0x00000000;
1666constexpr NEON3SameOp NEON_SHSUB = NEON3SameFixed | 0x00002000;
1667constexpr NEON3SameOp NEON_SRHADD = NEON3SameFixed | 0x00001000;
1669constexpr NEON3SameOp NEON_CMGE = NEON3SameFixed | 0x00003800;
1670constexpr NEON3SameOp NEON_CMGT = NEON3SameFixed | 0x00003000;
1673constexpr NEON3SameOp NEON_CMTST = NEON3SameFixed | 0x00008800;
1674constexpr NEON3SameOp NEON_MLA = NEON3SameFixed | 0x00009000;
1675constexpr NEON3SameOp NEON_MLS = NEON3SameFixed | 0x20009000;
1676constexpr NEON3SameOp NEON_MUL = NEON3SameFixed | 0x00009800;
1677constexpr NEON3SameOp NEON_PMUL = NEON3SameFixed | 0x20009800;
1678constexpr NEON3SameOp NEON_SRSHL = NEON3SameFixed | 0x00005000;
1679constexpr NEON3SameOp NEON_SQSHL = NEON3SameFixed | 0x00004800;
1680constexpr NEON3SameOp NEON_SQRSHL = NEON3SameFixed | 0x00005800;
1681constexpr NEON3SameOp NEON_SSHL = NEON3SameFixed | 0x00004000;
1682constexpr NEON3SameOp NEON_SMAX = NEON3SameFixed | 0x00006000;
1683constexpr NEON3SameOp NEON_SMAXP = NEON3SameFixed | 0x0000A000;
1684constexpr NEON3SameOp NEON_SMIN = NEON3SameFixed | 0x00006800;
1685constexpr NEON3SameOp NEON_SMINP = NEON3SameFixed | 0x0000A800;
1686constexpr NEON3SameOp NEON_SABD = NEON3SameFixed | 0x00007000;
1687constexpr NEON3SameOp NEON_SABA = NEON3SameFixed | 0x00007800;
1690constexpr NEON3SameOp NEON_SQADD = NEON3SameFixed | 0x00000800;
1691constexpr NEON3SameOp NEON_SQSUB = NEON3SameFixed | 0x00002800;
1708constexpr NEON3SameOp NEON_SQDMULH = NEON3SameFixed | 0x0000B000;
1710
1711// NEON floating point instructions with three same-type operands.
1715constexpr NEON3SameOp NEON_FADD = NEON3SameFixed | 0x0000D000;
1716constexpr NEON3SameOp NEON_FSUB = NEON3SameFixed | 0x0080D000;
1717constexpr NEON3SameOp NEON_FMUL = NEON3SameFixed | 0x2000D800;
1718constexpr NEON3SameOp NEON_FDIV = NEON3SameFixed | 0x2000F800;
1719constexpr NEON3SameOp NEON_FMAX = NEON3SameFixed | 0x0000F000;
1720constexpr NEON3SameOp NEON_FMAXNM = NEON3SameFixed | 0x0000C000;
1721constexpr NEON3SameOp NEON_FMAXP = NEON3SameFixed | 0x2000F000;
1722constexpr NEON3SameOp NEON_FMAXNMP = NEON3SameFixed | 0x2000C000;
1723constexpr NEON3SameOp NEON_FMIN = NEON3SameFixed | 0x0080F000;
1724constexpr NEON3SameOp NEON_FMINNM = NEON3SameFixed | 0x0080C000;
1725constexpr NEON3SameOp NEON_FMINP = NEON3SameFixed | 0x2080F000;
1726constexpr NEON3SameOp NEON_FMINNMP = NEON3SameFixed | 0x2080C000;
1727constexpr NEON3SameOp NEON_FMLA = NEON3SameFixed | 0x0000C800;
1728constexpr NEON3SameOp NEON_FMLS = NEON3SameFixed | 0x0080C800;
1729constexpr NEON3SameOp NEON_FMULX = NEON3SameFixed | 0x0000D800;
1730constexpr NEON3SameOp NEON_FRECPS = NEON3SameFixed | 0x0000F800;
1731constexpr NEON3SameOp NEON_FRSQRTS = NEON3SameFixed | 0x0080F800;
1732constexpr NEON3SameOp NEON_FABD = NEON3SameFixed | 0x2080D000;
1733constexpr NEON3SameOp NEON_FADDP = NEON3SameFixed | 0x2000D000;
1734constexpr NEON3SameOp NEON_FCMEQ = NEON3SameFixed | 0x0000E000;
1735constexpr NEON3SameOp NEON_FCMGE = NEON3SameFixed | 0x2000E000;
1736constexpr NEON3SameOp NEON_FCMGT = NEON3SameFixed | 0x2080E000;
1737constexpr NEON3SameOp NEON_FACGE = NEON3SameFixed | 0x2000E800;
1738constexpr NEON3SameOp NEON_FACGT = NEON3SameFixed | 0x2080E800;
1739
1740constexpr NEON3SameOp NEON3SameHPMask = 0x0020C000;
1741constexpr NEON3SameOp NEON3SameHPFixed = 0x0E400400;
1742constexpr NEON3SameOp NEON3SameHPFMask = 0x9F400400;
1743
1744// NEON logical instructions with three same-type operands.
1747constexpr NEON3SameOp NEON3SameLogicalMask = 0xBFE0FC00;
1757
1758// NEON instructions with three different-type operands.
1759using NEON3DifferentOp = uint32_t;
1816
1817// NEON instructions with three operands and extension.
1818using NEON3ExtensionOp = uint32_t;
1823
1824// NEON instructions operating across vectors.
1825using NEONAcrossLanesOp = uint32_t;
1836
1837// NEON floating point across instructions.
1839 NEONAcrossLanesFixed | 0x0000C000;
1841 NEONAcrossLanesFMask | 0x0000C000;
1843 NEONAcrossLanesMask | 0x00800000;
1844
1849
1850// NEON instructions with indexed element operand.
1851using NEONByIndexedElementOp = uint32_t;
1856 NEONByIndexedElementFixed | 0x00008000;
1858 NEONByIndexedElementFixed | 0x20000000;
1860 NEONByIndexedElementFixed | 0x20004000;
1862 NEONByIndexedElementFixed | 0x0000A000;
1864 NEONByIndexedElementFixed | 0x00002000;
1866 NEONByIndexedElementFixed | 0x00006000;
1868 NEONByIndexedElementFixed | 0x2000A000;
1870 NEONByIndexedElementFixed | 0x20002000;
1872 NEONByIndexedElementFixed | 0x20006000;
1874 NEONByIndexedElementFixed | 0x0000B000;
1876 NEONByIndexedElementFixed | 0x00003000;
1878 NEONByIndexedElementFixed | 0x00007000;
1880 NEONByIndexedElementFixed | 0x0000C000;
1882 NEONByIndexedElementFixed | 0x0000D000;
1883
1884// Floating point instructions.
1886 NEONByIndexedElementFixed | 0x00800000;
1888 NEONByIndexedElementMask | 0x00800000;
1890 NEONByIndexedElementFPFixed | 0x00001000;
1892 NEONByIndexedElementFPFixed | 0x00005000;
1894 NEONByIndexedElementFPFixed | 0x00009000;
1896 NEONByIndexedElementFPFixed | 0x20009000;
1897
1898// NEON modified immediate.
1904 NEONModifiedImmediateFixed | 0x00000000;
1906 NEONModifiedImmediateFixed | 0x20000000;
1908 NEONModifiedImmediateFixed | 0x00001000;
1910 NEONModifiedImmediateFixed | 0x20001000;
1911
1912// NEON extract.
1913using NEONExtractOp = uint32_t;
1914constexpr NEONExtractOp NEONExtractFixed = 0x2E000000;
1915constexpr NEONExtractOp NEONExtractFMask = 0xBF208400;
1916constexpr NEONExtractOp NEONExtractMask = 0xBFE08400;
1917constexpr NEONExtractOp NEON_EXT = NEONExtractFixed | 0x00000000;
1918
1919using NEONLoadStoreMultiOp = uint32_t;
1928
1929// NEON load/store multiple structures.
1966
1967// NEON load/store multiple structures with post-index addressing.
2005
2006using NEONLoadStoreSingleOp = uint32_t;
2018
2019// NEON load/store single structure.
2022 0x0D000000;
2024 0xBF9F0000;
2026 0xBFFFE000;
2065
2084
2103
2122
2123// NEON load/store single structure with post-index addressing.
2151
2170
2189
2208
2209// NEON register copy.
2210using NEONCopyOp = uint32_t;
2211constexpr NEONCopyOp NEONCopyFixed = 0x0E000400;
2212constexpr NEONCopyOp NEONCopyFMask = 0x9FE08400;
2213constexpr NEONCopyOp NEONCopyMask = 0x3FE08400;
2224constexpr NEONCopyOp NEON_SMOV = NEONCopyFixed | 0x00002800;
2225constexpr NEONCopyOp NEON_UMOV = NEONCopyFixed | 0x00003800;
2226
2227// NEON scalar instructions with indexed element operand.
2230 0x5F000000;
2232 0xDF000400;
2234 0xFF00F400;
2245
2246// Floating point instructions.
2250 NEONScalarByIndexedElementMask | 0x00800000;
2259
2260// NEON shift immediate.
2261using NEONShiftImmediateOp = uint32_t;
2268 NEONShiftImmediateFixed | 0x0000A000;
2270 NEONShiftImmediateFixed | 0x2000A000;
2275 NEONShiftImmediateFixed | 0x00008800;
2277 NEONShiftImmediateFixed | 0x20009000;
2279 NEONShiftImmediateFixed | 0x20009800;
2281 NEONShiftImmediateFixed | 0x00009000;
2283 NEONShiftImmediateFixed | 0x00009800;
2285 NEONShiftImmediateFixed | 0x20008000;
2287 NEONShiftImmediateFixed | 0x20008800;
2290 NEONShiftImmediateFixed | 0x00002000;
2293 NEONShiftImmediateFixed | 0x20002000;
2296 NEONShiftImmediateFixed | 0x00003000;
2299 NEONShiftImmediateFixed | 0x20003000;
2301 NEONShiftImmediateFixed | 0x20006000;
2303 NEONShiftImmediateFixed | 0x0000E000;
2305 NEONShiftImmediateFixed | 0x2000E000;
2307 NEONShiftImmediateFixed | 0x0000F800;
2309 NEONShiftImmediateFixed | 0x2000F800;
2311 NEONShiftImmediateFixed | 0x00007000;
2313 NEONShiftImmediateFixed | 0x20007000;
2314
2315// NEON scalar register copy.
2316using NEONScalarCopyOp = uint32_t;
2322
2323// NEON scalar pairwise instructions.
2324using NEONScalarPairwiseOp = uint32_t;
2329 NEONScalarPairwiseFixed | 0x0081B000;
2331 NEONScalarPairwiseFixed | 0x2000C000;
2333 NEONScalarPairwiseFixed | 0x2080C000;
2335 NEONScalarPairwiseFixed | 0x2000D000;
2337 NEONScalarPairwiseFixed | 0x2000F000;
2339 NEONScalarPairwiseFixed | 0x2080F000;
2340
2341// NEON scalar shift immediate.
2394
2395// NEON table.
2396using NEONTableOp = uint32_t;
2397constexpr NEONTableOp NEONTableFixed = 0x0E000000;
2398constexpr NEONTableOp NEONTableFMask = 0xBF208C00;
2399constexpr NEONTableOp NEONTableExt = 0x00001000;
2400constexpr NEONTableOp NEONTableMask = 0xBF20FC00;
2401constexpr NEONTableOp NEON_TBL_1v = NEONTableFixed | 0x00000000;
2402constexpr NEONTableOp NEON_TBL_2v = NEONTableFixed | 0x00002000;
2403constexpr NEONTableOp NEON_TBL_3v = NEONTableFixed | 0x00004000;
2404constexpr NEONTableOp NEON_TBL_4v = NEONTableFixed | 0x00006000;
2409
2410// NEON SHA3
2411using NEONSHA3Op = uint32_t;
2412constexpr NEONSHA3Op NEONSHA3Fixed = 0xce000000;
2413constexpr NEONSHA3Op NEONSHA3FMask = 0xce000000;
2414constexpr NEONSHA3Op NEONSHA3Mask = 0xcee00000;
2415constexpr NEONSHA3Op NEON_BCAX = NEONSHA3Fixed | 0x00200000;
2417
2418// NEON perm.
2419using NEONPermOp = uint32_t;
2420constexpr NEONPermOp NEONPermFixed = 0x0E000800;
2421constexpr NEONPermOp NEONPermFMask = 0xBF208C00;
2422constexpr NEONPermOp NEONPermMask = 0x3F20FC00;
2423constexpr NEONPermOp NEON_UZP1 = NEONPermFixed | 0x00001000;
2424constexpr NEONPermOp NEON_TRN1 = NEONPermFixed | 0x00002000;
2425constexpr NEONPermOp NEON_ZIP1 = NEONPermFixed | 0x00003000;
2426constexpr NEONPermOp NEON_UZP2 = NEONPermFixed | 0x00005000;
2427constexpr NEONPermOp NEON_TRN2 = NEONPermFixed | 0x00006000;
2428constexpr NEONPermOp NEON_ZIP2 = NEONPermFixed | 0x00007000;
2429
2430// NEON scalar instructions with two register operands.
2431using NEONScalar2RegMiscOp = uint32_t;
2462
2466
2468 NEONScalar2RegMiscMask | 0x00800000;
2488 NEONScalar2RegMiscFixed | 0x0081F000;
2511
2512// NEON scalar instructions with three same-type operands.
2513using NEONScalar3SameOp = uint32_t;
2552
2553// NEON floating point scalar instructions with three same-type operands.
2555 NEONScalar3SameFixed | 0x0000C000;
2557 NEONScalar3SameFMask | 0x0000C000;
2559 NEONScalar3SameMask | 0x00800000;
2577
2578// NEON scalar instructions with three different-type operands.
2579using NEONScalar3DiffOp = uint32_t;
2590
2591// Unimplemented and unallocated instructions. These are defined to make fixed
2592// bit assertion easier.
2593using UnimplementedOp = uint32_t;
2596
2597using UnallocatedOp = uint32_t;
2598constexpr UnallocatedOp UnallocatedFixed = 0x00000000;
2599constexpr UnallocatedOp UnallocatedFMask = 0x00000000;
2600
2601} // namespace internal
2602} // namespace v8
2603
2604#endif // V8_CODEGEN_ARM64_CONSTANTS_ARM64_H_
#define ADD_SUB_OP_LIST(V)
#define ADD_SUB_IMMEDIATE(A)
#define LOAD_STORE_UNSCALED(A, B, C, D)
#define LOAD_STORE_PAIR_PRE_INDEX(A, B, C)
#define LOAD_STORE_POST_INDEX(A, B, C, D)
#define INSTRUCTION_FIELDS_LIST(V_)
#define LOAD_STORE_PAIR_OP_LIST(V)
#define LOAD_STORE_PAIR_POST_INDEX(A, B, C)
#define LOAD_STORE(A, B, C, D)
#define LOAD_STORE_REGISTER_OFFSET(A, B, C, D)
#define LOAD_STORE_OP_LIST(V)
#define ATOMIC_MEMORY_SIMPLE_OPC_LIST(V)
#define DECLARE_FIELDS_OFFSETS(Name, HighBit, LowBit, unused_1, unused_2)
#define SYSTEM_REGISTER_FIELDS_LIST(V_, M_)
#define LOAD_STORE_UNSIGNED_OFFSET(A, B, C, D)
#define LOAD_STORE_PAIR(A, B, C)
#define ATOMIC_MEMORY_SIMPLE(N, OP)
#define ADD_SUB_SHIFTED(A)
#define DECLARE_INSTRUCTION_FIELDS_OFFSETS(Name, HighBit, LowBit, unused_1)
#define LOAD_STORE_PAIR_OFFSET(A, B, C)
#define LOAD_STORE_PRE_INDEX(A, B, C, D)
#define ADD_SUB_EXTENDED(A)
int int32_t
Definition unicode.cc:40
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_LD3_post
constexpr NEONScalar3SameOp NEONScalar3SameFPFixed
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST4_d_post
constexpr DataProcessing1SourceOp RBIT_w
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingle2
constexpr NEONScalarPairwiseOp NEON_FMINNMP_scalar
constexpr NEON2RegMiscOp NEON_FNEG
constexpr FPDataProcessing1SourceOp FSQRT_d
constexpr FPDataProcessing2SourceOp FMUL_s
constexpr FPFixedPointConvertOp SCVTF_dw_fixed
constexpr NEONTableOp NEON_TBX_4v
constexpr int32_t kWMinInt
constexpr NEON3SameOp NEON_FMULX
constexpr FPDataProcessing1SourceOp FMOV
constexpr DataProcessing1SourceOp REV_x
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD3_d_post
constexpr LogicalShiftedOp EOR_w
constexpr NEON3DifferentOp NEON3DifferentFixed
constexpr LogicalShiftedOp ORN_shift
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST4_s_post
constexpr unsigned kQuadWordSizeInBytes
constexpr int kVRegSize
constexpr NEONFormatField NEON_Q
constexpr FPDataProcessing1SourceOp FRINTA
constexpr LoadStoreAnyOp LoadStoreAnyFixed
constexpr FPConditionalCompareOp FCCMP_d
constexpr LogicalShiftedOp LogicalShiftedMask
constexpr GenericInstrField SixtyFourBits
constexpr ConditionalSelectOp ConditionalSelectFMask
constexpr Opcode ADD
constexpr NEONFormatField NEON_8B
constexpr BitfieldOp BFM_x
constexpr LoadStoreAcquireReleaseOp LDAR_h
constexpr NEONShiftImmediateOp NEON_SSRA
constexpr NEONScalar3SameOp NEON_UQADD_scalar
constexpr LogicalShiftedOp ORN_w
constexpr LogicalShiftedOp EON_shift
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingle4
uint32_t NEONScalarByIndexedElementOp
uint32_t BitfieldOp
constexpr NEONScalar2RegMiscOp NEON_FCVTNS_scalar
constexpr NEONScalar3SameOp NEON_CMGE_scalar
constexpr MiscInstructionsBits74 CLZ
constexpr AddSubShiftedOp AddSubShiftedMask
constexpr TestBranchOp TestBranchFMask
constexpr FPIntegerConvertOp FCVTNU_xd
uint32_t AddSubWithCarryOp
constexpr NEONCopyOp NEON_UMOV
constexpr UnconditionalBranchOp BL
constexpr NEONLoadStoreMultiStructOp NEON_LD3
constexpr ConditionalCompareImmediateOp CCMN_w_imm
constexpr Opcode ORR
constexpr NEONLoadStoreSingleStructOp NEON_LD3_h
constexpr NEONAcrossLanesOp NEONAcrossLanesFMask
constexpr FPIntegerConvertOp FCVTZS_wd
uint32_t ConditionalCompareImmediateOp
constexpr NEON3SameOp NEON_SMAX
constexpr NEONFPFormatField NEONFPFormatFieldMask
constexpr CompareBranchOp CompareBranchFixed
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST3_b_post
constexpr NEONScalarPairwiseOp NEON_FMAXP_scalar
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingleL
constexpr NEON3SameOp NEON_SABD
constexpr DataProcessing2SourceOp CRC32X
constexpr ConditionalCompareRegisterOp CCMN_x
constexpr NEONLoadStoreSingleStructOp NEON_ST1_b
constexpr ConditionalCompareImmediateOp CCMP_w_imm
constexpr FPCompareOp FCMP_d_zero
constexpr NEONFormatField NEON_16B
constexpr NEON2RegMiscOp NEON_FCMLT_zero
constexpr FPConditionalSelectOp FPConditionalSelectMask
constexpr NEON2RegMiscOp NEON2RegMiscOpcode
constexpr LoadStorePairPreIndexOp LoadStorePairPreIndexFMask
constexpr FPIntegerConvertOp FCVTAS_ws
uint32_t NEONScalarCopyOp
constexpr NEONScalar2RegMiscOp NEON_FRECPE_scalar
constexpr NEONScalar2RegMiscOp NEON_FCVTAU_scalar
constexpr unsigned kDoubleExponentBias
constexpr NEON3SameOp NEON3SameHPFMask
constexpr LogicalShiftedOp BICS_shift
constexpr NEONLoadStoreSingleStructOp NEON_LD1_s
constexpr NEON2RegMiscOp NEON2RegMiscMask
uint32_t NEONLoadStoreMultiStructPostIndexOp
constexpr int kMaxLoadLiteralRange
constexpr NEON3SameOp NEON_FCMGE
constexpr BitfieldOp UBFM_w
constexpr ExceptionOp BRK
constexpr NEONLoadStoreMultiStructOp NEON_ST3
constexpr int64_t kByteMask
constexpr FPIntegerConvertOp FCVTZU_xd
uint32_t UnimplementedOp
constexpr FPIntegerConvertOp FCVTNU
constexpr NEON3SameOp NEON3SameFMask
constexpr FPCompareOp FCMPE_d_zero
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD4_s_post
uint32_t NEONAcrossLanesOp
uint32_t LogicalImmediateOp
constexpr NEON2RegMiscOp NEON_UADDLP
constexpr DataProcessing3SourceOp MSUB_x
constexpr unsigned kHalfWordSizeInBytesLog2
constexpr NEONScalarByIndexedElementOp NEON_SQDMLSL_byelement_scalar
constexpr NEONScalarPairwiseOp NEON_FADDP_scalar
constexpr LogicalShiftedOp BIC_shift
constexpr NEONLoadStoreSingleStructOp NEON_LD2_h
constexpr LogicalShiftedOp ORN_x
constexpr LoadStorePostIndex LoadStorePostIndexMask
constexpr NEONSHA3Op NEON_EOR3
constexpr NEON3SameOp NEON_FADD
constexpr LoadStorePostIndex LoadStorePostIndexFMask
constexpr NEONScalar2RegMiscOp NEON_FCVTMS_scalar
constexpr FPFixedPointConvertOp SCVTF_sx_fixed
constexpr Opcode AND
constexpr DataProcessing2SourceOp LSLV_w
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD1_s_post
constexpr DataProcessing3SourceOp SMSUBL_x
constexpr LoadStoreAcquireReleaseOp LSEBit_o0
constexpr FPConditionalCompareOp FCCMP
constexpr NEONLoadStoreSingleStructOp NEON_LD3_d
constexpr int kVRegSizeInBits
constexpr NEON2RegMiscOp NEON_CMGT_zero
constexpr ExceptionOp ExceptionFixed
constexpr FPDataProcessing3SourceOp FNMSUB_d
constexpr NEON3SameOp NEON_FRECPS
constexpr NEONLSFormatField LS_NEON_1D
constexpr FPDataProcessing1SourceOp FRINTX_d
constexpr MoveWideImmediateOp MOVZ
constexpr BitfieldOp SBFM_w
constexpr AtomicMemoryOp AtomicMemoryFixed
constexpr FPIntegerConvertOp UCVTF_sx
constexpr MoveWideImmediateOp MOVN
constexpr NEON3SameOp NEON_SQADD
constexpr FPDataProcessing3SourceOp FNMSUB_s
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD1_h_post
constexpr FPDataProcessing1SourceOp FMOV_s
constexpr NEON3DifferentOp NEON_SABAL
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingle_h
constexpr FPDataProcessing1SourceOp FRINTM_d
uint32_t NEON3ExtensionOp
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructLoad4
constexpr int64_t kXSignBit
constexpr NEONScalar3SameOp NEON_SSHL_scalar
constexpr FPDataProcessing2SourceOp FMIN_s
constexpr DataProcessing3SourceOp DataProcessing3SourceFMask
constexpr NEONScalar3SameOp NEON_UQSUB_scalar
constexpr NEONLoadStoreSingleStructOp NEON_LD2_s
constexpr FPFixedPointConvertOp FCVTZS_xs_fixed
constexpr ConditionalCompareRegisterOp ConditionalCompareRegisterFixed
constexpr NEONScalar2RegMiscOp NEON_FCVTNU_scalar
constexpr NEONLoadStoreSingleStructOp NEON_ST3_h
constexpr int kSFOffset
constexpr FPDataProcessing3SourceOp FPDataProcessing3SourceFMask
constexpr LogicalOp EON
constexpr int kIp0Code
constexpr NEONScalarFormatField NEON_H
constexpr LogicalShiftedOp EOR_x
constexpr Opcode BIC
constexpr NEONLoadStoreMultiStructOp NEON_ST1_4v
uint32_t NEONModifiedImmediateOp
constexpr NEONModifiedImmediateOp NEONModifiedImmediate_BIC
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD4_d_post
constexpr NEONShiftImmediateOp NEON_RSHRN
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD3_b_post
constexpr FPDataProcessing2SourceOp FSUB_d
constexpr NEON2RegMiscOp NEON_FCVTMU
constexpr DataProcessing2SourceOp CRC32CB
constexpr GenericInstrField FP64
constexpr AddSubOp ADDS
uint32_t NEONExtractOp
constexpr int kSRegSizeInBitsLog2
constexpr NEONShiftImmediateOp NEON_URSHR
constexpr LoadStoreAcquireReleaseOp CASB
constexpr FPDataProcessing1SourceOp FPDataProcessing1SourceFMask
constexpr NEONScalarShiftImmediateOp NEONScalarShiftImmediateFMask
constexpr NEONByIndexedElementOp NEONByIndexedElementFPMask
constexpr NEONScalar3SameOp NEON_UQSHL_scalar
constexpr DataProcessing2SourceOp CRC32B
constexpr LoadStoreAcquireReleaseOp LSEBit_sz
constexpr NEON3SameOp NEON3SameLogicalMask
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingle_b
constexpr DataProcessing1SourceOp DataProcessing1SourceMask
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST3_s_post
constexpr DataProcessing2SourceOp ASRV
constexpr LoadStoreOp PRFM
constexpr NEONScalar2RegMiscOp NEON_SUQADD_scalar
constexpr LoadStoreAcquireReleaseOp STLR_h
constexpr LoadStoreAcquireReleaseOp CASPA_w
constexpr NEONScalarByIndexedElementOp NEONScalarByIndexedElementFixed
constexpr NEONCopyOp NEONCopyUmovMask
constexpr NEONScalar2RegMiscOp NEON_FCVTPU_scalar
constexpr UnconditionalBranchToRegisterOp BLR
constexpr unsigned kHalfWordSizeLog2
constexpr NEON3ExtensionOp NEON3ExtensionFMask
constexpr AtomicMemoryOp SWPALB
uint32_t LoadLiteralOp
constexpr FPDataProcessing1SourceOp FCVT_hs
constexpr NEON2RegMiscOp NEON_ABS
constexpr ExceptionOp DCPS3
constexpr NEONShiftImmediateOp NEON_FCVTZS_imm
constexpr NEON2RegMiscOp NEON_FCVTAS
constexpr AddSubWithCarryOp ADC_w
constexpr FPFixedPointConvertOp FPFixedPointConvertMask
constexpr NEONLoadStoreSingleStructOp NEON_LD4_b
constexpr unsigned kFloat16ExponentBits
constexpr NEONScalarShiftImmediateOp NEON_SQRSHRN_scalar
constexpr NEONAcrossLanesOp NEONAcrossLanesFixed
constexpr NEONLoadStoreSingleStructOp NEON_LD1_b
constexpr NEONScalarShiftImmediateOp NEON_SQSHLU_scalar
constexpr FPCompareOp FCMP_d
constexpr NEONScalarByIndexedElementOp NEON_FMUL_byelement_scalar
constexpr FPDataProcessing1SourceOp FRINTN_d
constexpr LoadStoreAcquireReleaseOp CAS_x
constexpr NEONScalarPairwiseOp NEON_ADDP_scalar
constexpr NEONShiftImmediateOp NEON_UQSHRN
constexpr FPDataProcessing1SourceOp FRINTX_s
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructMask
constexpr AddSubImmediateOp AddSubImmediateMask
constexpr NEON3SameOp NEON_UMAXP
constexpr ConditionalCompareRegisterOp CCMP_x
constexpr LogicalImmediateOp ORR_x_imm
uint32_t NEONShiftImmediateOp
constexpr NEONShiftImmediateOp NEON_SSHR
constexpr NEON3SameOp NEON_PMUL
constexpr FPIntegerConvertOp FCVTMU_ws
constexpr NEON3DifferentOp NEON_SMLSL2
constexpr NEON3SameOp NEON_CMGE
constexpr BitfieldOp BFM
uint32_t UnallocatedOp
uint32_t AtomicMemoryOp
constexpr unsigned kFloatMantissaBits
constexpr FPIntegerConvertOp FCVTPS
constexpr FPConditionalCompareOp FPConditionalCompareFixed
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD4_h_post
constexpr NEONLSFormatField LS_NEON_2D
constexpr LogicalShiftedOp AND_shift
constexpr NEONScalar3SameOp NEON_SQADD_scalar
constexpr LoadStoreAcquireReleaseOp CASA_w
constexpr NEONScalar2RegMiscOp NEON_NEG_scalar_opcode
constexpr NEON3SameOp NEON_SUB
constexpr NEON3SameOp NEON3SameUBit
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructLoad1
constexpr unsigned kWordSizeInBytes
constexpr NEON3SameOp NEON3SameLogicalFixed
constexpr FPIntegerConvertOp FCVTMS
constexpr NEON3SameOp NEON_BSL
constexpr FPIntegerConvertOp FCVTZU_xs
constexpr FPIntegerConvertOp FCVTPU_xs
constexpr NEON3SameOp NEON3SameHPFixed
constexpr NEON3SameOp NEON_UHADD
constexpr FPDataProcessing2SourceOp FPDataProcessing2SourceMask
constexpr NEON3SameOp NEON_FABD
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructLoad3
uint32_t FPIntegerConvertOp
constexpr AtomicMemoryOp SWPLB
constexpr FPIntegerConvertOp FCVTMU_xs
constexpr LoadStoreAcquireReleaseOp CASALH
constexpr FPCompareOp FCMPE_s
constexpr NEON3SameOp NEON_UHSUB
constexpr NEONLoadStoreMultiOp NEONLoadStoreMulti4
constexpr SystemHintOp SystemHintFMask
constexpr NEONLoadStoreMultiStructPostIndexOp NEONLoadStoreMultiStructPostIndexMask
constexpr ExceptionOp SMC
constexpr LoadStoreAcquireReleaseOp CASPFixed
uint32_t ConditionalCompareRegisterOp
constexpr NEONTableOp NEON_TBL_2v
constexpr NEONScalarShiftImmediateOp NEON_FCVTZS_imm_scalar
constexpr FPCompareOp FCMP_s_zero
uint32_t NEONLoadStoreSingleOp
constexpr NEONFPFormatField NEON_FP_2D
constexpr int kQRegSizeInBitsLog2
constexpr NEONTableOp NEONTableFixed
constexpr NEONLoadStoreMultiOp NEONLoadStoreMulti1_1v
constexpr FPIntegerConvertOp FCVTPS_wd
uint32_t LoadStorePreIndex
constexpr NEONLoadStoreMultiStructOp NEON_LD2
constexpr LoadStoreAcquireReleaseOp STLXR_x
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD3R_post
constexpr NEONAcrossLanesOp NEON_SMINV
constexpr NEONScalarShiftImmediateOp NEON_URSHR_scalar
constexpr LogicalImmediateOp AND_x_imm
constexpr int64_t kWRegMask
constexpr NEONLoadStoreSingleStructPostIndexOp NEONLoadStoreSingleStructPostIndexMask
constexpr AtomicMemoryOp AtomicMemoryMask
constexpr DataProcessing3SourceOp MSUB_w
constexpr FPFixedPointConvertOp FPFixedPointConvertFMask
constexpr AddSubOp AddSubSetFlagsBit
constexpr NEONScalarShiftImmediateOp NEON_UCVTF_imm_scalar
constexpr NEONLoadStoreSingleStructOp NEON_LD1_h
constexpr NEONFormatField NEON_sz
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_LD4_post
constexpr ConditionalBranchOp ConditionalBranchMask
uint32_t AddSubExtendedOp
constexpr unsigned kWordSizeLog2
constexpr NEONFormatField NEON_2S
constexpr FPCompareOp FCMP_zero
constexpr NEONByIndexedElementOp NEONByIndexedElementFixed
constexpr NEON3DifferentOp NEON3DifferentFMask
constexpr LoadStoreAcquireReleaseOp CASH
constexpr FPDataProcessing3SourceOp FMADD_d
constexpr NEONShiftImmediateOp NEON_SRSHR
uint32_t NEONLSFormatField
constexpr NEONScalar3SameOp NEON_ADD_scalar
constexpr NEON3SameOp NEON_FACGE
constexpr NEON3SameOp NEON_UMIN
constexpr NEON2RegMiscOp NEON_SADALP
constexpr LoadStoreAcquireReleaseOp LDAR_x
constexpr uint8_t kLoadLiteralScaleLog2
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD3_h_post
constexpr ConditionalSelectOp CSINC_w
constexpr NEON3SameOp NEON_FMLS
constexpr NEON3SameOp NEON_ORN
constexpr FPFixedPointConvertOp UCVTF_dx_fixed
constexpr MoveWideImmediateOp MoveWideImmediateFixed
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingleLenMask
constexpr BitfieldOp SBFM_x
constexpr FPDataProcessing1SourceOp FRINTZ_d
constexpr FPFixedPointConvertOp UCVTF_dw_fixed
constexpr DataProcessing2SourceOp LSLV_x
constexpr LoadStoreUnscaledOffsetOp LoadStoreUnscaledOffsetFMask
constexpr FPDataProcessing1SourceOp FNEG_d
constexpr LoadStoreAcquireReleaseOp LoadStoreAcquireReleaseFMask
constexpr NEONScalarShiftImmediateOp NEON_URSRA_scalar
uint32_t ConditionalSelectOp
constexpr NEON3DifferentOp NEON_SADDL2
constexpr NEONLoadStoreMultiOp NEONLoadStoreMulti1_2v
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST2_d_post
constexpr ConditionalSelectOp CSEL_x
uint32_t LoadStorePairPreIndexOp
constexpr TestBranchOp TBZ
constexpr int64_t kWSignBit
uint32_t SystemHintOp
constexpr NEON2RegMiscOp NEON_CMLT_zero
constexpr LoadStoreAcquireReleaseOp CASPAL_x
constexpr int kSRegSizeLog2
constexpr FPIntegerConvertOp FCVTMS_xd
constexpr NEONScalar2RegMiscOp NEON_ABS_scalar
constexpr NEONLoadStoreMultiStructOp NEON_ST1_3v
constexpr NEON3SameOp NEON_CMGT
constexpr DataProcessing3SourceOp MSUB
constexpr NEONCopyOp NEONCopyInsGeneralMask
constexpr NEONLoadStoreMultiStructOp NEON_LD1_3v
constexpr FPDataProcessing1SourceOp FRINTP
constexpr FPDataProcessing2SourceOp FSUB
constexpr int kSRegSize
constexpr NEON2RegMiscOp NEON_FCVTZS
constexpr LoadStorePairPostIndexOp LoadStorePairPostIndexFMask
constexpr ExceptionOp HVC
constexpr int kIp1Code
constexpr LoadStoreAcquireReleaseOp CASA_x
uint32_t ConditionalCompareOp
constexpr ShiftOp LSR
constexpr NEONLoadStoreMultiOp NEONLoadStoreMulti1_4v
constexpr AtomicMemoryOp SWPAL_w
uint32_t FPDataProcessing3SourceOp
constexpr AddSubExtendedOp AddSubExtendedMask
constexpr NEONScalar2RegMiscOp NEON_USQADD_scalar
constexpr PCRelAddressingOp ADRP
constexpr LoadStoreAcquireReleaseOp CASLH
constexpr NEON2RegMiscOp NEON_RBIT_NOT
constexpr LoadStoreAcquireReleaseOp LDAR_w
constexpr DataProcessing2SourceOp CRC32H
constexpr LoadStoreAcquireReleaseOp CASAH
constexpr int kWRegSizeLog2
constexpr TestBranchOp TestBranchFixed
constexpr int kNumberOfCalleeSavedVRegisters
constexpr FPFixedPointConvertOp FCVTZU_fixed
constexpr int64_t kDSignMask
constexpr int64_t kSRegMask
constexpr AddSubOp SUBS
constexpr FPIntegerConvertOp FCVTNS_xs
constexpr NEONAcrossLanesOp NEON_UMINV
constexpr NEONFormatField NEON_1D
constexpr NEON3DifferentOp NEON_SQDMULL2
constexpr FPDataProcessing3SourceOp FMADD_s
constexpr DataProcessing2SourceOp CRC32CH
constexpr FPDataProcessing1SourceOp FCVT_dh
constexpr UnallocatedOp UnallocatedFixed
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST1_s_post
constexpr NEONTableOp NEON_TBL_1v
constexpr NEON2RegMiscOp NEON_FCVTN
constexpr NEONScalar3SameOp NEON_SQRDMULH_scalar
constexpr NEONLoadStoreSingleStructOp NEON_LD1R
constexpr NEONScalar2RegMiscOp NEON_FRECPX_scalar
uint32_t FPDataProcessing2SourceOp
constexpr NEON3SameOp NEON_URHADD
constexpr NEON3SameOp NEON3SameLogicalFMask
constexpr NEON3SameOp NEON_CMHI
constexpr NEON3DifferentOp NEON_SSUBW
constexpr LoadStorePairOffsetOp LoadStorePairOffsetMask
constexpr NEON3SameOp NEON_URSHL
constexpr FPDataProcessing3SourceOp FPDataProcessing3SourceFixed
constexpr int64_t kSQuietNanBit
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingleAllLanes
constexpr NEONByIndexedElementOp NEON_SQDMLSL_byelement
constexpr LogicalShiftedOp ANDS_x
constexpr ConditionalCompareImmediateOp CCMN_x_imm
constexpr ExtractOp ExtractFixed
constexpr FPDataProcessing1SourceOp FABS
constexpr NEONScalar3SameOp NEON_FRECPS_scalar
constexpr NEONLoadStoreSingleStructOp NEON_LD4_h
constexpr LogicalShiftedOp BICS_w
constexpr FPIntegerConvertOp FCVTMU_wd
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructStore1
constexpr FPFixedPointConvertOp FCVTZU_xd_fixed
constexpr int kHRegSize
constexpr NEON3DifferentOp NEON_SMULL2
constexpr LoadStoreAcquireReleaseOp CASAL_x
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD2_s_post
constexpr int kWRegSizeInBits
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_ST2_post
constexpr NEON2RegMiscOp NEON2RegMiscUBit
constexpr NEON3DifferentOp NEON3DifferentDot
constexpr FPDataProcessing2SourceOp FMAX_d
constexpr unsigned kShiftAmountXRegMask
constexpr DataProcessing3SourceOp DataProcessing3SourceMask
constexpr NEONPermOp NEON_ZIP1
constexpr int kZeroRegCode
constexpr NEON3DifferentOp NEON_SSUBL
constexpr int kNumberOfRegisters
constexpr NEON3DifferentOp NEON_SADDW
constexpr ShiftOp ASR
constexpr FPIntegerConvertOp FCVTPS_ws
constexpr NEONScalar3SameOp NEON_FACGT_scalar
constexpr NEON3SameOp NEON_UABD
constexpr FPDataProcessing3SourceOp FNMADD_d
constexpr unsigned kDoubleMantissaBits
constexpr FPDataProcessing2SourceOp FNMUL
constexpr NEONScalarPairwiseOp NEONScalarPairwiseFixed
constexpr NEONLoadStoreMultiOp NEONLoadStoreMultiL
constexpr NEON2RegMiscOp NEON_FCVTZU
constexpr NEON3SameOp NEON_FMAX
constexpr NEONLoadStoreSingleStructOp NEON_ST2_h
constexpr NEON3SameOp NEON_ADD
constexpr NEON2RegMiscOp NEON_FCVTMS
constexpr NEON2RegMiscOp NEON_FRINTM
constexpr NEONAcrossLanesOp NEONAcrossLanesMask
constexpr ConditionalCompareOp ConditionalCompareMask
constexpr FPFixedPointConvertOp SCVTF_fixed
constexpr NEONTableOp NEONTableMask
constexpr NEONShiftImmediateOp NEON_URSRA
constexpr NEON3SameOp NEON_UMAX
constexpr FPIntegerConvertOp FPIntegerConvertFixed
constexpr FPDataProcessing1SourceOp FRINTM_s
constexpr ShiftOp LSL
constexpr int B
constexpr NEONLoadStoreSingleStructOp NEON_LD4_d
constexpr NEONShiftImmediateOp NEON_SQSHRUN
constexpr FPDataProcessing1SourceOp FRINTA_s
constexpr ConditionalBranchOp ConditionalBranchFixed
constexpr BitfieldOp BitfieldFixed
constexpr NEON3SameOp NEON_UQADD
constexpr FPIntegerConvertOp FCVTZU
constexpr DataProcessing1SourceOp RBIT_x
constexpr NEONLoadStoreMultiStructOp NEON_ST2
uint32_t ExceptionOp
constexpr NEONAcrossLanesOp NEON_UMAXV
constexpr NEONScalar2RegMiscOp NEON_CMEQ_zero_scalar
constexpr NEONScalar2RegMiscOp NEON_UQXTN_scalar
constexpr int64_t kXMaxInt
constexpr FPDataProcessing2SourceOp FMAXNM_s
constexpr MemBarrierOp MemBarrierFixed
constexpr NEONFPFormatField NEON_FP_4S
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST2_b_post
constexpr LogicalImmediateOp EOR_w_imm
uint32_t UnconditionalBranchOp
constexpr FPDataProcessing2SourceOp FADD_s
constexpr unsigned kDoubleWordSize
constexpr NEONLoadStoreMultiStructOp NEONLoadStoreMultiStructStore
constexpr LoadStoreAnyOp LoadStoreAnyFMask
constexpr AddSubWithCarryOp AddSubWithCarryMask
constexpr ConditionalCompareOp CCMP
constexpr NEON3SameOp NEON_SHSUB
constexpr NEON3DifferentOp NEON_SMLAL2
constexpr DataProcessing1SourceOp REV32_x
constexpr NEON2RegMiscOp NEON_XTN
constexpr NEONModifiedImmediateOp NEONModifiedImmediateFMask
uint32_t NEONScalar2RegMiscOp
constexpr FPConditionalSelectOp FCSEL_d
constexpr NEON3SameOp NEON_SSHL
constexpr NEONByIndexedElementOp NEON_SQDMULH_byelement
constexpr int kMaxLanesPerVector
constexpr LogicalImmediateOp ORR_w_imm
constexpr LogicalShiftedOp ORR_w
constexpr NEONLoadStoreSingleStructPostIndexOp NEONLoadStoreSingleStructPostIndexFMask
constexpr NEONScalar2RegMiscOp NEON_FCVTZS_scalar
constexpr NEON2RegMiscOp NEON_FCMGE_zero
constexpr AddSubWithCarryOp SBC_x
constexpr LogicalShiftedOp ANDS_shift
constexpr LoadLiteralOp LoadLiteralFMask
constexpr NEONLSFormatField LS_NEON_4H
constexpr LoadStoreAcquireReleaseOp LoadStoreAcquireReleaseFixed
constexpr BitfieldOp BFM_w
constexpr NEONLoadStoreSingleStructPostIndexOp NEONLoadStoreSingleStructPostIndex
constexpr FPDataProcessing2SourceOp FNMUL_s
constexpr NEONScalar2RegMiscOp NEON_FRSQRTE_scalar
constexpr unsigned kFloatExponentBias
constexpr NEONScalarShiftImmediateOp NEON_SRSRA_scalar
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD4_b_post
constexpr NEONScalarShiftImmediateOp NEON_SHL_scalar
constexpr NEON2RegMiscOp NEON2RegMiscHPFixed
constexpr NEON3SameOp NEON_FMINNM
constexpr FPIntegerConvertOp FCVTPU_wd
constexpr FPFixedPointConvertOp SCVTF_dx_fixed
constexpr NEON2RegMiscOp NEON_URECPE
constexpr LoadStoreAcquireReleaseOp CASP_x
constexpr NEONLoadStoreMultiStructOp NEONLoadStoreMultiStructFixed
constexpr NEON3DifferentOp NEON_SUBHN2
constexpr NEON3DifferentOp NEON_ADDHN
constexpr NEON3SameOp NEON_FRSQRTS
constexpr FPIntegerConvertOp FCVTAU_ws
constexpr AtomicMemoryOp SWPA_x
constexpr FPIntegerConvertOp FCVTMS_ws
uint32_t FPConditionalCompareOp
constexpr FPDataProcessing3SourceOp FPDataProcessing3SourceMask
constexpr NEON3SameOp NEON_UABA
constexpr ConditionalCompareRegisterOp CCMN_w
constexpr SystemHintOp HINT
constexpr NEON2RegMiscOp NEON_URSQRTE
constexpr NEON2RegMiscOp NEON_FCVTAU
constexpr FPConditionalCompareOp FCCMP_s
uint32_t DataProcessing3SourceOp
constexpr int ImmPCRel_mask
constexpr UnconditionalBranchToRegisterOp UnconditionalBranchToRegisterFixed
constexpr NEON3SameOp NEON_FADDP
constexpr NEONModifiedImmediateOp NEONModifiedImmediate_ORR
constexpr LoadStoreAcquireReleaseOp STLXR_b
constexpr NEONScalar2RegMiscOp NEON_SQNEG_scalar
constexpr NEONScalar2RegMiscOp NEONScalar2RegMiscOpcode
constexpr NEONFormatField NEON_4H
constexpr ExtractOp ExtractMask
constexpr FPIntegerConvertOp UCVTF_dx
constexpr LoadStoreUnscaledOffsetOp LoadStoreUnscaledOffsetFixed
constexpr DataProcessing2SourceOp DataProcessing2SourceMask
constexpr LoadStoreAcquireReleaseOp LDAXR_h
constexpr NEONLoadStoreMultiStructOp NEON_LD1_2v
constexpr int64_t kSSignMask
constexpr int64_t kWordMask
uint32_t SystemPAuthOp
constexpr FPIntegerConvertOp FPIntegerConvertFMask
constexpr int64_t kSSignBit
constexpr unsigned kWordSizeInBytesLog2
constexpr LoadStoreAcquireReleaseOp CASAL_w
constexpr DataProcessing2SourceOp RORV
constexpr NEON3SameOp NEON_FMIN
constexpr FPFixedPointConvertOp UCVTF_fixed
constexpr DataProcessing2SourceOp DataProcessing2SourceFixed
constexpr NEONScalarShiftImmediateOp NEON_SQSHRN_scalar
constexpr NEONScalarByIndexedElementOp NEONScalarByIndexedElementFMask
constexpr FPConditionalCompareOp FPConditionalCompareMask
constexpr NEON3SameOp NEON_UQRSHL
constexpr NEON3DifferentOp NEON_UABAL
constexpr FPIntegerConvertOp FCVTAS_xd
constexpr SystemPAuthOp AUTIBSP
constexpr NEONScalar2RegMiscOp NEON_UCVTF_scalar
constexpr NEON2RegMiscOp NEON_FCVTL
constexpr NEONLoadStoreMultiOp NEONLoadStoreMulti2
constexpr LoadStorePairAnyOp LoadStorePairAnyFixed
constexpr FPDataProcessing3SourceOp FMSUB_d
constexpr FPImmediateOp FPImmediateMask
constexpr LoadStorePairOp LoadStorePairLBit
constexpr LogicalOp LogicalOpMask
constexpr unsigned kWordSize
constexpr NEON2RegMiscOp NEON_FRINTI
constexpr NEONScalar3SameOp NEONScalar3SameFixed
constexpr NEONCopyOp NEONCopyFixed
constexpr ExtractOp EXTR
uint32_t NEON3DifferentOp
constexpr NEON2RegMiscOp NEON_SQNEG
constexpr NEONByIndexedElementOp NEON_SQDMLAL_byelement
constexpr NEONLSFormatField LS_NEON_8H
constexpr BitfieldOp UBFM_x
constexpr NEONTableOp NEON_TBX_1v
constexpr int kFramePointerRegCode
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST4_b_post
constexpr FPDataProcessing1SourceOp FCVT_sh
constexpr NEONShiftImmediateOp NEONShiftImmediateFixed
constexpr NEONScalar3SameOp NEON_FRSQRTS_scalar
constexpr NEONLoadStoreSingleStructOp NEON_LD3_s
constexpr NEON2RegMiscOp NEON_UCVTF
constexpr NEON3ExtensionOp NEON3ExtensionFixed
constexpr NEON3DifferentOp NEON_PMULL2
constexpr SystemSysRegOp MRS
constexpr LoadStoreAcquireReleaseOp CASBFixed
constexpr LoadStorePreIndex LoadStorePreIndexFMask
constexpr DataProcessing2SourceOp LSLV
uint32_t NEONScalarPairwiseOp
constexpr NEON2RegMiscOp NEON_FCVTN_opcode
constexpr FPIntegerConvertOp FCVTMS_xs
uint32_t LoadStorePostIndex
constexpr uint8_t kLoadLiteralScale
constexpr NEON2RegMiscOp NEON_REV16
constexpr NEONShiftImmediateOp NEONShiftImmediateUBit
constexpr NEONScalar3DiffOp NEONScalar3DiffFMask
constexpr NEONScalar3SameOp NEON_URSHL_scalar
constexpr NEON3DifferentOp NEON_SQDMULL
constexpr NEON2RegMiscOp NEON_NEG
constexpr AddSubExtendedOp AddSubExtendedFMask
constexpr NEONLoadStoreSingleStructOp NEON_ST4_h
constexpr NEON3SameOp NEON_BIF
constexpr int64_t kHQuietNanMask
constexpr DataProcessing1SourceOp CLZ_w
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST3_d_post
constexpr LoadStoreUnsignedOffset PRFM_unsigned
constexpr FPDataProcessing2SourceOp FMAX
constexpr FPFixedPointConvertOp FCVTZS_wd_fixed
constexpr NEON2RegMiscOp NEON_REV64
constexpr AddSubWithCarryOp AddSubWithCarryFMask
constexpr unsigned kAddressTagWidth
constexpr NEONCopyOp NEON_DUP_GENERAL
constexpr ExceptionOp ExceptionMask
constexpr FPIntegerConvertOp FCVTMS_wd
constexpr FPDataProcessing2SourceOp FMAXNM
uint32_t LoadStoreUnsignedOffset
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD2_b_post
constexpr LoadStoreRegisterOffset LoadStoreRegisterOffsetFMask
constexpr NEONShiftImmediateOp NEON_UQSHL_imm
constexpr NEON3SameOp NEON_CMHS
constexpr NEON3SameOp NEON_UQSUB
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST1_d_post
constexpr int32_t kWMaxInt
constexpr FPDataProcessing2SourceOp FDIV_d
constexpr FPIntegerConvertOp FPIntegerConvertMask
constexpr NEONScalar3SameOp NEON_SQSUB_scalar
constexpr NEON3DifferentOp NEON_UADDL
constexpr LoadStorePairOp LoadStorePairMask
constexpr PCRelAddressingOp PCRelAddressingFMask
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_ST1_3v_post
constexpr LoadLiteralOp LoadLiteralFixed
constexpr SystemPAuthOp PACIB1716
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingle1
constexpr NEON3SameOp NEON_FDIV
constexpr SystemSysRegOp MSR
constexpr NEONFormatField NEON_8H
constexpr NEONScalar3SameOp NEON_SQRSHL_scalar
constexpr NEONLoadStoreSingleStructOp NEON_ST1_h
constexpr NEONTableOp NEON_TBX_3v
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructStore4
constexpr int64_t kXMinInt
constexpr AtomicMemoryOp SWPA_w
constexpr uint64_t kTTBRMask
uint32_t NEONLoadStoreMultiOp
constexpr NEONByIndexedElementOp NEON_UMULL_byelement
constexpr FPDataProcessing1SourceOp FCVT_hd
constexpr NEONScalarShiftImmediateOp NEON_SQSHRUN_scalar
uint32_t LoadStorePairOffsetOp
constexpr FPDataProcessing2SourceOp FMINNM
constexpr LoadStoreAcquireReleaseOp STLR_x
constexpr uint8_t kInstrSizeLog2
constexpr NEONShiftImmediateOp NEON_SLI
constexpr BitfieldOp BitfieldFMask
constexpr int64_t kDQuietNanMask
constexpr DataProcessing3SourceOp DataProcessing3SourceFixed
constexpr NEONScalarByIndexedElementOp NEON_SQRDMULH_byelement_scalar
constexpr DataProcessing3SourceOp SMADDL_x
constexpr NEONLoadStoreSingleStructOp NEON_LD4_s
constexpr NEON2RegMiscOp NEON_FRINTA
constexpr NEON3SameOp NEON_SMAXP
constexpr int64_t kHQuietNanBit
constexpr NEONSHA3Op NEONSHA3Mask
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_LD1_1v_post
constexpr NEONScalarShiftImmediateOp NEON_SSRA_scalar
constexpr NEONScalar2RegMiscOp NEONScalar2RegMiscMask
constexpr DataProcessing2SourceOp LSRV
constexpr unsigned kFloatExponentBits
constexpr NEONLoadStoreMultiStructPostIndexOp NEONLoadStoreMultiStructPostIndexFMask
constexpr CompareBranchOp CBZ_w
constexpr NEONSHA3Op NEONSHA3FMask
constexpr NEONScalarShiftImmediateOp NEONScalarShiftImmediateFixed
constexpr NEONAcrossLanesOp NEON_FMAXV
constexpr ConditionalSelectOp CSNEG
constexpr NEON3SameOp NEON_SHADD
constexpr FPDataProcessing1SourceOp FRINTM
constexpr unsigned kRegCodeMask
constexpr MoveWideImmediateOp MOVZ_x
constexpr NEON3SameOp NEON_ADDP
constexpr int kQRegSizeLog2
uint32_t SystemSysRegOp
constexpr NEONScalar2RegMiscOp NEON_SQXTN_scalar
constexpr FPCompareOp FCMPE_s_zero
constexpr NEON2RegMiscOp NEON_SADDLP
constexpr int64_t kXRegMask
constexpr FPIntegerConvertOp SCVTF_dw
constexpr AtomicMemoryOp SWPL_w
constexpr FPIntegerConvertOp FCVTZS_xs
constexpr NEON3DifferentOp NEON_SADDL
constexpr uint64_t kWMaxUInt
uint32_t FPConditionalSelectOp
constexpr SystemSysRegOp SystemSysRegFixed
constexpr DataProcessing1SourceOp REV_w
constexpr NEON3SameOp NEON_CMEQ
constexpr NEON3DifferentOp NEON_SABAL2
constexpr Opcode SBC
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_ST1_1v_post
constexpr AddSubShiftedOp AddSubShiftedFixed
constexpr int kXRegSizeInBitsLog2
constexpr FPIntegerConvertOp FCVTPS_xs
constexpr NEONScalar3DiffOp NEON_SQDMLAL_scalar
constexpr NEONPermOp NEON_TRN1
constexpr NEONByIndexedElementOp NEON_MUL_byelement
constexpr NEONShiftImmediateOp NEON_SQSHLU
constexpr NEONAcrossLanesOp NEON_FMINNMV
constexpr NEONScalar3SameOp NEON_CMTST_scalar
constexpr NEONScalar3SameOp NEON_FACGE_scalar
constexpr NEONScalarFormatField NEONScalar
constexpr NEON3SameOp NEON_MLA
constexpr AtomicMemoryOp SWPAH
constexpr NEONShiftImmediateOp NEON_USHLL
constexpr NEONScalar3SameOp NEON_SQSHL_scalar
constexpr NEON2RegMiscOp NEON_XTN_opcode
constexpr NEON2RegMiscOp NEON_REV32
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD1R_post
constexpr LogicalShiftedOp EON_w
constexpr DataProcessing3SourceOp MADD_w
constexpr NEONScalarFormatField NEONScalarFormatFieldMask
constexpr FPFixedPointConvertOp FCVTZU_ws_fixed
constexpr uint32_t kUnallocatedInstruction
constexpr FPIntegerConvertOp FCVTNU_wd
constexpr NEONScalarShiftImmediateOp NEON_USHR_scalar
constexpr DataProcessing2SourceOp LSRV_w
constexpr NEON2RegMiscOp NEON_FCMEQ_zero
constexpr DataProcessing3SourceOp UMADDL_x
constexpr NEONScalar2RegMiscOp NEONScalar2RegMiscFixed
constexpr NEON3DifferentOp NEON_SABDL2
constexpr NEONScalarShiftImmediateOp NEON_FCVTZU_imm_scalar
constexpr NEON2RegMiscOp NEON2RegMiscFixed
constexpr FPDataProcessing2SourceOp FDIV
constexpr int kBitfieldNOffset
constexpr FPDataProcessing2SourceOp FMIN_d
constexpr NEONShiftImmediateOp NEON_SQRSHRUN
constexpr NEONLoadStoreMultiStructOp NEON_LD4
constexpr DataProcessing1SourceOp RBIT
constexpr FPIntegerConvertOp FCVTPU_ws
constexpr LogicalShiftedOp BIC_x
constexpr NEON3SameOp NEON_FSUB
constexpr FPIntegerConvertOp UCVTF
constexpr LoadStoreUnsignedOffset LoadStoreUnsignedOffsetFMask
constexpr NEONLoadStoreMultiStructPostIndexOp NEONLoadStoreMultiStructPostIndex
constexpr DataProcessing2SourceOp SDIV_w
constexpr NEON3SameOp NEON_SQDMULH
constexpr NEON3DifferentOp NEON_SQDMLAL2
constexpr NEONScalar3SameOp NEONScalar3SameFPFMask
constexpr unsigned kQuadWordSize
constexpr FPIntegerConvertOp FCVTMU_xd
constexpr NEONCopyOp NEON_INS_GENERAL
constexpr NEONScalar2RegMiscOp NEON_SQXTUN_scalar
constexpr NEON2RegMiscOp NEON_CNT
constexpr NEONPermOp NEON_ZIP2
constexpr FPFixedPointConvertOp FCVTZS_fixed
constexpr NEONScalarPairwiseOp NEONScalarPairwiseFMask
constexpr NEONScalar3SameOp NEON_CMHI_scalar
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingle_s
constexpr NEONFPFormatField NEON_FP_8H
constexpr LogicalOp ORN
constexpr NEON3SameOp NEON_SMINP
constexpr FPConditionalCompareOp FCCMPE_d
constexpr DataProcessing1SourceOp CLS
constexpr NEONExtractOp NEON_EXT
constexpr LoadLiteralOp PRFM_lit
constexpr NEONPermOp NEON_TRN2
constexpr NEONLoadStoreMultiOp NEONLoadStoreMulti3
constexpr UnconditionalBranchToRegisterOp BR
constexpr NEONScalar3SameOp NEONScalar3SameFMask
constexpr DataProcessing1SourceOp CLS_w
constexpr LoadLiteralOp LDR_d_lit
uint32_t LoadStoreRegisterOffset
constexpr int kDRegSizeLog2
constexpr NEONScalar3SameOp NEON_UQRSHL_scalar
constexpr NEON2RegMiscOp NEON_FRSQRTE
constexpr FPDataProcessing2SourceOp FMINNM_d
constexpr CompareBranchOp CBNZ
constexpr FPIntegerConvertOp FCVTAS_wd
constexpr NEON3DifferentOp NEON_UMLSL2
constexpr FPIntegerConvertOp FCVTNU_ws
constexpr CompareBranchOp CompareBranchMask
constexpr ConditionalSelectOp CSINC
constexpr LogicalOp ANDS
constexpr NEONShiftImmediateOp NEON_USRA
constexpr NEONScalar3SameOp NEON_FCMEQ_scalar
constexpr NEON3DifferentOp NEON_UMLSL
constexpr NEONScalar3DiffOp NEON_SQDMLSL_scalar
constexpr AtomicMemoryOp SWPB
constexpr NEON3SameOp NEON_FMUL
constexpr NEON3SameOp NEON_FMINNMP
constexpr LogicalShiftedOp LogicalShiftedFixed
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructStore3
constexpr NEONAcrossLanesOp NEONAcrossLanesFPFixed
Condition NegateCondition(Condition cond)
constexpr NEON2RegMiscOp NEON_FCVTXN
constexpr FPIntegerConvertOp SCVTF_sx
constexpr FPDataProcessing1SourceOp FABS_d
constexpr ConditionalSelectOp CSINV_x
constexpr NEONPermOp NEONPermMask
constexpr int kWRegSizeInBitsLog2
constexpr NEONScalarShiftImmediateOp NEON_SSHR_scalar
uint32_t NEONScalarShiftImmediateOp
constexpr NEONCopyOp NEON_SMOV
constexpr AddSubWithCarryOp AddSubWithCarryFixed
constexpr SystemHintOp SystemHintFixed
constexpr int kBRegSize
constexpr FPIntegerConvertOp FCVTAS_xs
constexpr NEON2RegMiscOp NEON_SUQADD
constexpr NEONScalarShiftImmediateOp NEON_SQSHL_imm_scalar
constexpr NEONScalarShiftImmediateOp NEON_SLI_scalar
constexpr DataProcessing1SourceOp REV16_x
constexpr NEONScalar3DiffOp NEON_SQDMULL_scalar
constexpr NEONCopyOp NEONCopyInsElementMask
constexpr NEONScalarByIndexedElementOp NEON_FMULX_byelement_scalar
constexpr ConditionalCompareRegisterOp ConditionalCompareRegisterMask
constexpr int kBRegSizeInBits
constexpr NEONScalarByIndexedElementOp NEON_SQDMLAL_byelement_scalar
constexpr FPIntegerConvertOp FJCVTZS
constexpr NEONShiftImmediateOp NEON_UCVTF_imm
constexpr NEONScalar3SameOp NEON_FCMGT_scalar
uint32_t NEONScalarFormatField
constexpr NEON2RegMiscOp NEON_FRINTZ
constexpr ConditionalSelectOp CSINC_x
constexpr FPCompareOp FCMP
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST3_h_post
constexpr FPDataProcessing1SourceOp FRINTZ
constexpr FPIntegerConvertOp FCVTPU
constexpr FPIntegerConvertOp FCVTNS
constexpr NEONByIndexedElementOp NEON_FMULX_byelement
constexpr NEONExtractOp NEONExtractMask
constexpr int64_t kSQuietNanMask
constexpr NEONScalarPairwiseOp NEON_FMAXNMP_scalar
constexpr CompareBranchOp CBZ_x
constexpr NEON3SameOp NEON_ORR
constexpr NEON3DifferentOp NEON_SADDW2
constexpr NEONScalar3SameOp NEON_FCMGE_scalar
constexpr PCRelAddressingOp PCRelAddressingFixed
constexpr MoveWideImmediateOp MoveWideImmediateMask
constexpr UnconditionalBranchToRegisterOp UnconditionalBranchToRegisterFMask
constexpr LogicalImmediateOp ANDS_w_imm
constexpr NEONScalarCopyOp NEONScalarCopyFixed
constexpr NEON3SameOp NEON_FCMEQ
uint32_t LoadStoreAcquireReleaseOp
constexpr MoveWideImmediateOp MOVK
constexpr SystemPAuthOp SystemPAuthFixed
constexpr NEONLSFormatField LS_NEON_16B
constexpr BitfieldOp BitfieldMask
constexpr NEONLoadStoreSingleStructOp NEON_ST4_b
constexpr FPDataProcessing1SourceOp FRINTI
constexpr DataProcessing1SourceOp REV16
constexpr DataProcessing1SourceOp REV16_w
constexpr NEONCopyOp NEON_INS_ELEMENT
constexpr NEONScalarShiftImmediateOp NEON_SCVTF_imm_scalar
constexpr DataProcessing2SourceOp UDIV_x
constexpr NEONScalar2RegMiscOp NEON_SQABS_scalar
constexpr SystemPAuthOp SystemPAuthMask
constexpr FPIntegerConvertOp FCVTAU_xd
uint32_t LoadStorePairOp
constexpr size_t kMaxPCRelativeCodeRangeInMB
uint32_t DataProcessing2SourceOp
constexpr DataProcessing2SourceOp LSRV_x
constexpr NEONAcrossLanesOp NEON_SADDLV
constexpr NEON2RegMiscOp NEON_CMLE_zero
constexpr DataProcessing1SourceOp REV
constexpr FPDataProcessing1SourceOp FRINTI_s
constexpr FPIntegerConvertOp UCVTF_sw
constexpr UnconditionalBranchOp UnconditionalBranchFMask
constexpr LoadStoreRegisterOffset LoadStoreRegisterOffsetMask
constexpr NEON3DifferentOp NEON_UADDL2
uint32_t MemBarrierOp
constexpr AtomicMemoryOp SWP_x
constexpr FPDataProcessing1SourceOp FRINTX
constexpr NEONLoadStoreSingleStructOp NEON_LD2_d
constexpr NEONScalar2RegMiscOp NEON_FCMGT_zero_scalar
constexpr FPDataProcessing1SourceOp FRINTN
constexpr NEONScalar2RegMiscOp NEON_FCMLT_zero_scalar
constexpr unsigned kHalfWordSize
constexpr NEON2RegMiscOp NEON_UQXTN_opcode
constexpr DataProcessing2SourceOp DataProcessing2SourceFMask
constexpr LogicalShiftedOp ANDS_w
constexpr NEONShiftImmediateOp NEON_SQRSHRN
constexpr LoadStoreUnsignedOffset LoadStoreUnsignedOffsetFixed
uint32_t NEONLoadStoreMultiStructOp
constexpr NEONScalarShiftImmediateOp NEONScalarShiftImmediateMask
constexpr NEON3SameOp NEON3SameFPFMask
constexpr NEONFormatField NEON_4S
constexpr NEONLoadStoreSingleStructOp NEON_ST1_d
constexpr LogicalImmediateOp LogicalImmediateMask
constexpr NEON2RegMiscOp NEON_CMEQ_zero
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_ST1_2v_post
uint32_t MoveWideImmediateOp
constexpr NEON3SameOp NEON_UQSHL
constexpr FPIntegerConvertOp FCVTNS_wd
constexpr unsigned kFloat16MantissaBits
constexpr FPFixedPointConvertOp FCVTZS_ws_fixed
constexpr NEONSHA3Op NEONSHA3Fixed
constexpr MoveWideImmediateOp MOVK_w
constexpr NEON2RegMiscOp NEON_CLS
constexpr NEONAcrossLanesOp NEON_UADDLV
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST1_h_post
constexpr LoadStoreAcquireReleaseOp LSEBit_l
constexpr NEON3SameOp NEON_SMIN
constexpr LoadLiteralOp LoadLiteralMask
constexpr NEONScalar2RegMiscOp NEON_FCMLE_zero_scalar
constexpr FPConditionalCompareOp FCCMPE
constexpr FPDataProcessing2SourceOp FADD
constexpr NEONLoadStoreSingleStructOp NEON_LD3R
constexpr DataProcessing1SourceOp DataProcessing1SourceFMask
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_LD2_post
constexpr FPConditionalCompareOp FPConditionalCompareFMask
constexpr MemBarrierOp MemBarrierFMask
constexpr LoadStoreAcquireReleaseOp CASP_w
constexpr NEON3SameOp NEON_SQRDMULH
constexpr NEONLoadStoreSingleStructOp NEON_ST3_d
constexpr int kQRegSize
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingle3
constexpr FPIntegerConvertOp FCVTPS_xd
uint32_t FPFixedPointConvertOp
constexpr NEONAcrossLanesOp NEONAcrossLanesFPFMask
constexpr AddSubExtendedOp AddSubExtendedFixed
constexpr MemBarrierOp DSB
constexpr FPIntegerConvertOp FMOV_d1_x
constexpr NEONScalar2RegMiscOp NEON_CMGT_zero_scalar
constexpr NEONTableOp NEONTableExt
constexpr FPIntegerConvertOp FCVTNS_xd
constexpr FPIntegerConvertOp FCVTMU
constexpr NEON3SameOp NEON_AND
constexpr LoadStoreAcquireReleaseOp LDAXR_w
constexpr int64_t kDRegMask
constexpr LoadStorePairAnyOp LoadStorePairAnyFMask
constexpr NEONSHA3Op NEON_BCAX
constexpr NEONScalar2RegMiscOp NEON_CMGE_zero_scalar
constexpr LoadStoreAcquireReleaseOp CASPL_x
constexpr NEONScalar3DiffOp NEONScalar3DiffFixed
constexpr BitfieldOp SBFM
constexpr NEON3SameOp NEON_FMINP
constexpr NEONByIndexedElementOp NEON_SMLAL_byelement
constexpr NEONAcrossLanesOp NEON_SMAXV
constexpr NEON3SameOp NEON_FMAXNM
constexpr ExtractOp EXTR_x
constexpr NEON3ExtensionOp NEON_SDOT
constexpr NEONScalar2RegMiscOp NEON_CMLE_zero_scalar
constexpr FPDataProcessing3SourceOp FNMADD_s
constexpr NEONLoadStoreSingleOp NEONLoadStoreSingle_d
constexpr NEON3DifferentOp NEON_UABDL
constexpr FPDataProcessing2SourceOp FNMUL_d
constexpr LoadLiteralOp LDR_w_lit
constexpr FPDataProcessing2SourceOp FPDataProcessing2SourceFixed
constexpr PCRelAddressingOp PCRelAddressingMask
constexpr NEON3SameOp NEON_USHL
constexpr DataProcessing3SourceOp MADD_x
constexpr FPIntegerConvertOp FMOV_x_d1
constexpr SystemSysRegOp SystemSysRegMask
constexpr NEONScalarShiftImmediateOp NEON_SQRSHRUN_scalar
constexpr NEON3DifferentOp NEON_UABDL2
constexpr NEON3SameOp NEON3SameMask
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_ST1_4v_post
constexpr NEONPermOp NEON_UZP1
constexpr FPImmediateOp FPImmediateFMask
constexpr NEONScalar2RegMiscOp NEONScalar2RegMiscFMask
constexpr DataProcessing1SourceOp CLZ_x
constexpr FPConditionalSelectOp FPConditionalSelectFMask
constexpr int64_t kDQuietNanBit
constexpr int kWRegSize
constexpr NEONLoadStoreSingleStructOp NEON_LD1_d
constexpr NEONShiftImmediateOp NEON_SRSRA
constexpr NEON3SameOp NEON_SRSHL
uint32_t LoadStoreAnyOp
constexpr ConditionalCompareRegisterOp CCMP_w
constexpr FPConditionalCompareOp FCCMPE_s
uint32_t AddSubImmediateOp
constexpr NEONExtractOp NEONExtractFMask
constexpr LoadStoreAcquireReleaseOp CASPA_x
constexpr NEONAcrossLanesOp NEON_ADDV
constexpr FPDataProcessing1SourceOp FNEG_s
constexpr LogicalShiftedOp LogicalShiftedFMask
constexpr FPIntegerConvertOp FCVTAU_wd
constexpr CompareBranchOp CompareBranchFMask
constexpr LogicalImmediateOp LogicalImmediateFixed
constexpr NEONByIndexedElementOp NEON_FMLA_byelement
constexpr NEON3SameOp NEON3SameHPMask
constexpr UnconditionalBranchOp UnconditionalBranchMask
constexpr FPConditionalSelectOp FCSEL_s
constexpr NEON3SameOp NEON_SQSHL
constexpr FPCompareOp FPCompareFMask
constexpr int kLinkRegCode
uint32_t NEONScalar3SameOp
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructStore2
constexpr NEONPermOp NEONPermFMask
constexpr NEONByIndexedElementOp NEON_SMLSL_byelement
constexpr NEONScalar3SameOp NEON_USHL_scalar
uint32_t NEON2RegMiscOp
constexpr NEONCopyOp NEONCopyFMask
constexpr NEONShiftImmediateOp NEON_SSHLL
constexpr LoadStoreOp LoadStoreMask
constexpr DataProcessing2SourceOp CRC32CX
constexpr NEONScalarPairwiseOp NEON_FMINP_scalar
constexpr ConditionalBranchOp B_cond
constexpr NEONExtractOp NEONExtractFixed
constexpr NEONShiftImmediateOp NEON_SQSHRN
constexpr DataProcessing3SourceOp SMULH_x
constexpr int kHltBadCode
constexpr NEONScalarShiftImmediateOp NEON_USRA_scalar
constexpr Opcode SUB
constexpr FPIntegerConvertOp FMOV_dx
constexpr ExtractOp EXTR_w
constexpr NEONScalarByIndexedElementOp NEONScalarByIndexedElementFPFixed
constexpr FPDataProcessing1SourceOp FRINTA_d
constexpr NEONScalarFormatField NEON_D
uint32_t UnconditionalBranchToRegisterOp
constexpr NEONScalarShiftImmediateOp NEON_UQSHRN_scalar
constexpr DataProcessing3SourceOp UMULH_x
constexpr FPDataProcessing1SourceOp FPDataProcessing1SourceFixed
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructFixed
constexpr NEONModifiedImmediateOp NEONModifiedImmediateFixed
constexpr LogicalImmediateOp AND_w_imm
constexpr NEONScalar2RegMiscOp NEON_CMLT_zero_scalar
constexpr FPIntegerConvertOp FCVTAU
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD2_d_post
constexpr NEONLoadStoreSingleStructOp NEON_ST2_s
constexpr NEONScalar2RegMiscOp NEON_FCMGE_zero_scalar
constexpr NEONShiftImmediateOp NEON_SRI
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructLoad
constexpr ConditionalCompareImmediateOp ConditionalCompareImmediateFMask
constexpr AtomicMemoryOp AtomicMemoryFMask
constexpr NEONLoadStoreSingleStructOp NEON_ST4_d
constexpr NEONByIndexedElementOp NEON_FMLS_byelement
constexpr NEON3DifferentOp NEON_SQDMLSL2
constexpr NEON3DifferentOp NEON_UMULL
constexpr MemBarrierOp DMB
constexpr NEON3DifferentOp NEON_SQDMLAL
constexpr LogicalOp BICS
constexpr DataProcessing2SourceOp ASRV_w
constexpr LoadStoreAcquireReleaseOp LDAXR_b
constexpr int64_t kWSignMask
constexpr NEONLoadStoreSingleStructOp NEON_ST1_s
constexpr FPDataProcessing1SourceOp FMOV_d
constexpr NEON3DifferentOp NEON_USUBW2
constexpr NEON2RegMiscOp NEON_SQABS
constexpr NEON3DifferentOp NEON_USUBW
constexpr UnimplementedOp UnimplementedFMask
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD3_s_post
constexpr NEON2RegMiscOp NEON_UADALP
constexpr NEON3DifferentOp NEON_UADDW
constexpr LoadStoreAcquireReleaseOp CASHFixed
constexpr NEON3SameOp NEON_FACGT
constexpr ConditionalSelectOp CSEL_w
constexpr AddSubImmediateOp AddSubImmediateFixed
constexpr NEONScalarShiftImmediateOp NEON_SRI_scalar
constexpr NEONFPFormatField NEON_FP_2S
constexpr NEONShiftImmediateOp NEON_SHRN
constexpr AtomicMemoryOp SWP_w
constexpr UnconditionalBranchToRegisterOp UnconditionalBranchToRegisterMask
constexpr NEONCopyOp NEONCopyMask
constexpr unsigned kDoubleWordSizeInBytes
constexpr NEONScalar2RegMiscOp NEON_FCVTXN_scalar
constexpr NEON3SameOp NEON_BIC
constexpr LoadStoreAcquireReleaseOp STLR_w
constexpr FPDataProcessing2SourceOp FADD_d
constexpr TestBranchOp TBNZ
constexpr NEONScalar3SameOp NEON_SQDMULH_scalar
constexpr unsigned kShiftAmountWRegMask
constexpr LoadStoreRegisterOffset LoadStoreRegisterOffsetFixed
constexpr ConditionalCompareImmediateOp CCMP_x_imm
constexpr ConditionalSelectOp ConditionalSelectMask
constexpr NEON3SameOp NEON_CMTST
constexpr FPDataProcessing1SourceOp FNEG
constexpr NEON3SameOp NEON_FMAXNMP
constexpr FPCompareOp FCMP_s
constexpr DataProcessing1SourceOp CLS_x
uint32_t NEONLoadStoreSingleStructOp
constexpr MoveWideImmediateOp MoveWideImmediateFMask
uint32_t NEONScalar3DiffOp
constexpr NEONByIndexedElementOp NEONByIndexedElementMask
constexpr NEONModifiedImmediateOp NEONModifiedImmediateOpBit
constexpr ShiftOp ROR
constexpr NEON3DifferentOp NEON_RSUBHN
constexpr NEONAcrossLanesOp NEON_FMAXNMV
constexpr SystemPAuthOp SystemPAuthFMask
constexpr LoadStorePreIndex LoadStorePreIndexFixed
constexpr LogicalShiftedOp ORR_shift
constexpr LoadStoreAcquireReleaseOp CASPL_w
constexpr NEONLoadStoreSingleStructPostIndexOp NEONLoadStoreSingleStructPostIndexFixed
constexpr NEONLoadStoreMultiStructOp NEON_LD1_4v
constexpr NEONScalarByIndexedElementOp NEONScalarByIndexedElementFPMask
constexpr NEONScalarCopyOp NEONScalarCopyFMask
constexpr TestBranchOp TestBranchMask
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_ST3_post
constexpr AtomicMemoryOp SWPL_x
constexpr FPIntegerConvertOp FCVTZS_xd
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST1_b_post
constexpr ConditionalSelectOp ConditionalSelectFixed
constexpr FPDataProcessing2SourceOp FMAXNM_d
constexpr FPDataProcessing2SourceOp FMIN
constexpr int kDRegSizeInBitsLog2
constexpr NEON2RegMiscOp NEON_FABS
constexpr NEON2RegMiscOp NEON_FCVTPS
constexpr ConditionalBranchOp ConditionalBranchFMask
constexpr LoadStoreUnscaledOffsetOp LoadStoreUnscaledOffsetMask
constexpr LoadStoreAcquireReleaseOp STLXR_w
constexpr AddSubWithCarryOp ADCS_w
constexpr NEON3SameOp NEON3SameFPFixed
constexpr FPIntegerConvertOp FCVTZS
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_ST4_post
constexpr ExceptionOp HLT
constexpr NEONScalarShiftImmediateOp NEON_UQSHL_imm_scalar
constexpr MoveWideImmediateOp MOVN_x
constexpr NEON3DifferentOp NEON_UMLAL
constexpr NEONFormatField NEON_2D
constexpr CompareBranchOp CBNZ_w
constexpr NEONLoadStoreMultiStructOp NEONLoadStoreMultiStructFMask
constexpr NEON2RegMiscOp NEON_SQXTUN
constexpr NEON2RegMiscOp NEON_RBIT_NOT_opcode
constexpr MemBarrierOp MemBarrierMask
constexpr NEONLoadStoreSingleStructOp NEON_ST3_s
constexpr NEONByIndexedElementOp NEON_SQRDMULH_byelement
constexpr int kXRegSizeInBits
constexpr NEONScalar2RegMiscOp NEON_FCVTAS_scalar
constexpr NEON3SameOp NEON_MUL
constexpr NEON2RegMiscOp NEON_FCMGT_zero
constexpr NEONShiftImmediateOp NEON_SQSHL_imm
constexpr ConditionalCompareRegisterOp ConditionalCompareRegisterFMask
constexpr LoadStorePostIndex LoadStorePostIndexFixed
constexpr NEON3DifferentOp NEON_SSUBL2
constexpr AddSubShiftedOp AddSubShiftedFMask
constexpr DataProcessing2SourceOp SDIV
uint32_t GenericInstrField
constexpr AtomicMemoryOp AtomicMemorySimpleFMask
constexpr NEONScalarFormatField NEON_S
constexpr NEONScalar3SameOp NEON_SRSHL_scalar
constexpr NEONByIndexedElementOp NEON_UMLAL_byelement
constexpr int kNumberOfVRegisters
constexpr NEONTableOp NEON_TBL_3v
constexpr FPDataProcessing1SourceOp FCVT_sd
constexpr NEON3SameOp NEON_BIT
constexpr LogicalShiftedOp BICS_x
constexpr NEONScalarCopyOp NEON_DUP_ELEMENT_scalar
constexpr GenericInstrField FP32
constexpr NEON2RegMiscOp NEON_SHLL
constexpr ConditionalSelectOp CSINV
constexpr NEON3SameOp NEON_SQSUB
constexpr FPIntegerConvertOp FCVTZS_ws
constexpr LoadStoreAcquireReleaseOp LDAR_b
constexpr NEON3DifferentOp NEON_SABDL
constexpr FPCompareOp FCMPE_d
constexpr NEONScalar2RegMiscOp NEON_FCVTMU_scalar
constexpr NEON2RegMiscOp NEON2RegMiscFPMask
constexpr NEON3DifferentOp NEON_SSUBW2
constexpr NEON3DifferentOp NEON_UMLAL2
constexpr NEONLoadStoreMultiStructOp NEON_ST4
constexpr LoadStorePairPostIndexOp LoadStorePairPostIndexFixed
constexpr NEON2RegMiscOp NEON_FCMLE_zero
constexpr NEON3DifferentOp NEON_PMULL
constexpr uint8_t kInstrSize
constexpr int kSPRegInternalCode
constexpr int kSRegSizeInBits
constexpr FPDataProcessing1SourceOp FRINTN_s
constexpr ExceptionOp ExceptionFMask
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD4R_post
constexpr FPDataProcessing1SourceOp FRINTP_d
constexpr NEON3SameOp NEON_SQRSHL
constexpr NEON2RegMiscOp NEON_CMGE_zero
constexpr SystemSysRegOp SystemSysRegFMask
constexpr NEONAcrossLanesOp NEON_FMINV
constexpr NEONLoadStoreSingleStructOp NEON_ST2_d
constexpr FPDataProcessing1SourceOp FRINTP_s
uint32_t AddSubShiftedOp
constexpr FPIntegerConvertOp SCVTF_dx
constexpr SystemOp SystemFixed
constexpr Opcode ADC
constexpr FPFixedPointConvertOp SCVTF_sw_fixed
constexpr DataProcessing2SourceOp CRC32W
constexpr LoadLiteralOp LDR_s_lit
constexpr NEON3SameOp NEON_FMLA
uint32_t PCRelAddressingOp
constexpr NEON3DifferentOp NEON_SUBHN
constexpr NEONShiftImmediateOp NEON_UQRSHRN
constexpr NEON3SameOp NEON_FMAXP
constexpr MoveWideImmediateOp MOVK_x
constexpr NEONScalar3SameOp NEONScalar3SameMask
constexpr FPConditionalSelectOp FCSEL
constexpr DataProcessing2SourceOp UDIV_w
constexpr CompareBranchOp CBZ
constexpr NEON3SameOp NEON3SameFixed
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD1_b_post
constexpr NEONScalarFormatField NEON_B
constexpr unsigned kHalfWordSizeInBytes
constexpr NEONLoadStoreMultiStructOp NEONLoadStoreMultiStructLoad
uint32_t FPImmediateOp
constexpr LoadStorePreIndex LoadStorePreIndexMask
constexpr DataProcessing1SourceOp DataProcessing1SourceFixed
constexpr NEONShiftImmediateOp NEON_FCVTZU_imm
constexpr NEONByIndexedElementOp NEON_FMUL_byelement
constexpr FPDataProcessing1SourceOp FPDataProcessing1SourceMask
constexpr NEON2RegMiscOp NEON_FRINTP
constexpr uint64_t kXMaxUInt
constexpr NEONLSFormatField LS_NEON_2S
constexpr BitfieldOp UBFM
constexpr AddSubWithCarryOp SBC_w
constexpr NEON3SameOp NEON_MLS
constexpr DataProcessing3SourceOp MADD
constexpr NEONScalar3SameOp NEON_FABD_scalar
uint32_t TestBranchOp
constexpr AddSubWithCarryOp SBCS_x
constexpr NEONByIndexedElementOp NEON_SQDMULL_byelement
constexpr NEONLoadStoreMultiStructOp NEON_ST1_2v
constexpr NEON3SameOp NEON_SABA
constexpr FPIntegerConvertOp FMOV_ws
constexpr NEON3DifferentOp NEON_RADDHN2
constexpr NEONLoadStoreSingleStructOp NEON_ST3_b
constexpr LogicalShiftedOp AND_x
constexpr LogicalImmediateOp ANDS_x_imm
uint32_t LoadStoreUnscaledOffsetOp
constexpr Opcode EOR
constexpr LoadStoreAcquireReleaseOp CASAB
constexpr NEON3DifferentOp NEON_USUBL2
constexpr NEONLoadStoreSingleStructOp NEON_ST2_b
constexpr int kDRegSize
uint32_t DataProcessing1SourceOp
constexpr FPFixedPointConvertOp FCVTZS_xd_fixed
constexpr AddSubWithCarryOp SBCS_w
constexpr NEON3SameOp NEON3SameFPMask
constexpr MoveWideImmediateOp MOVN_w
constexpr int kQRegSizeInBits
constexpr NEONScalarCopyOp NEONScalarCopyMask
constexpr LoadStoreAcquireReleaseOp CASL_w
constexpr NEONByIndexedElementOp NEONByIndexedElementFPFixed
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD2R_post
constexpr FPIntegerConvertOp FCVTNU_xs
constexpr FPCompareOp FPCompareMask
constexpr NEON3DifferentOp NEON_SQDMLSL
constexpr LogicalShiftedOp EOR_shift
constexpr NEONScalar3SameOp NEON_CMEQ_scalar
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST2_s_post
constexpr UnconditionalBranchOp UnconditionalBranchFixed
constexpr int kRootRegisterBias
constexpr NEON3SameOp NEON_SRHADD
constexpr NEONLSFormatField LS_NEON_8B
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructStore
constexpr FPDataProcessing2SourceOp FPDataProcessing2SourceFMask
constexpr UnallocatedOp UnallocatedFMask
constexpr NEON3DifferentOp NEON_SMLSL
constexpr LoadLiteralOp LDR_x_lit
uint32_t NEONLoadStoreSingleStructPostIndexOp
constexpr FPCompareOp FPCompareFixed
constexpr NEONLoadStoreSingleStructOp NEON_ST4_s
constexpr NEONScalar3SameOp NEON_SUB_scalar
constexpr LogicalOp NOT
constexpr ConditionalSelectOp CSEL
constexpr int64_t kXSignMask
constexpr NEON2RegMiscOp NEON_NEG_opcode
constexpr NEON3DifferentOp NEON_RADDHN
constexpr ExceptionOp SVC
constexpr NEONShiftImmediateOp NEON_SCVTF_imm
constexpr LoadStoreAcquireReleaseOp LDAXR_x
constexpr NEON2RegMiscOp NEON_UQXTN
constexpr FPIntegerConvertOp FCVTAS
constexpr FPFixedPointConvertOp FPFixedPointConvertFixed
constexpr AtomicMemoryOp AtomicMemorySimpleOpMask
constexpr int kDRegSizeInBytesLog2
constexpr NEON2RegMiscOp NEON2RegMiscFMask
constexpr LoadStoreAcquireReleaseOp LoadStoreAcquireReleaseMask
constexpr NEONByIndexedElementOp NEON_MLA_byelement
constexpr NEONTableOp NEON_TBL_4v
constexpr NEONTableOp NEON_TBX_2v
uint32_t LoadStoreOp
constexpr uint64_t kAddressTagMask
constexpr LogicalImmediateOp EOR_x_imm
constexpr NEONShiftImmediateOp NEONShiftImmediateMask
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD1_d_post
constexpr NEONLoadStoreMultiStructOp NEONLoadStoreMultiStructMask
constexpr LogicalShiftedOp AND_w
constexpr NEON3DifferentOp NEON_UABAL2
uint32_t ConditionalBranchOp
constexpr DataProcessing2SourceOp RORV_x
constexpr unsigned kDoubleExponentBits
constexpr FPConditionalSelectOp FPConditionalSelectFixed
constexpr LoadStoreRegisterOffset PRFM_reg
constexpr SystemPAuthOp AUTIB1716
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_LD1_2v_post
constexpr ConditionalSelectOp CSNEG_x
constexpr UnconditionalBranchToRegisterOp RET
constexpr NEONScalarByIndexedElementOp NEON_FMLA_byelement_scalar
constexpr NEONScalarByIndexedElementOp NEON_SQDMULL_byelement_scalar
constexpr NEONPermOp NEONPermFixed
constexpr FPDataProcessing2SourceOp FMUL
constexpr NEON3DifferentOp NEON_ADDHN2
constexpr NEON2RegMiscOp NEON_FRECPE
constexpr CompareBranchOp CBNZ_x
uint32_t LogicalShiftedOp
constexpr FPIntegerConvertOp UCVTF_dw
constexpr AtomicMemoryOp SWPAL_x
constexpr LogicalImmediateOp LogicalImmediateFMask
constexpr NEONCopyOp NEONCopyDupElementMask
constexpr int kXRegSizeLog2
constexpr NEONScalar2RegMiscOp NEON_NEG_scalar
constexpr FPDataProcessing2SourceOp FMAX_s
constexpr NEONLSFormatField LS_NEON_4S
constexpr NEONShiftImmediateOp NEONShiftImmediateFMask
uint32_t NEONByIndexedElementOp
constexpr NEONScalar3SameOp NEON_CMHS_scalar
constexpr LoadStoreAcquireReleaseOp CAS_w
uint32_t NEONFPFormatField
constexpr NEON2RegMiscOp NEON_USQADD
constexpr int kNumberOfCalleeSavedRegisters
constexpr NEONShiftImmediateOp NEON_SHL
constexpr FPImmediateOp FMOV_s_imm
constexpr NEONModifiedImmediateOp NEONModifiedImmediate_MVNI
constexpr NEONScalarShiftImmediateOp NEON_UQRSHRN_scalar
constexpr FPIntegerConvertOp FCVTZU_ws
constexpr AtomicMemoryOp SWPH
constexpr LoadStoreAcquireReleaseOp STLXR_h
constexpr int kXRegSize
constexpr NEONScalar3SameOp NEON_FMULX_scalar
constexpr NEONByIndexedElementOp NEON_MLS_byelement
constexpr NEONScalar2RegMiscOp NEON_FCMEQ_zero_scalar
constexpr NEON3SameOp NEON3SameLogicalFormatMask
constexpr FPDataProcessing1SourceOp FABS_s
constexpr int64_t kHalfWordMask
constexpr unsigned kFloat16ExponentBias
constexpr NEONAcrossLanesOp NEONAcrossLanesFPMask
constexpr ConditionalSelectOp CSINV_w
constexpr ConditionalCompareImmediateOp ConditionalCompareImmediateFixed
constexpr NEONCopyOp NEON_DUP_ELEMENT
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_LD1_4v_post
constexpr NEONScalar2RegMiscOp NEON_FCVTZU_scalar
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructLoad2
constexpr NEON3SameOp NEON_UMINP
constexpr NEONCopyOp NEONCopySmovMask
constexpr MoveWideImmediateOp MOVZ_w
uint32_t CompareBranchOp
constexpr NEONLoadStoreSingleStructOp NEON_LD4R
constexpr FPDataProcessing2SourceOp FSUB_s
constexpr int64_t kDSignBit
constexpr ExceptionOp DCPS1
constexpr DataProcessing3SourceOp UMSUBL_x
constexpr NEON2RegMiscOp NEON_FRINTN
constexpr NEON3DifferentOp NEON3DifferentMask
constexpr NEON2RegMiscOp NEON_SCVTF
constexpr AtomicMemoryOp SWPLH
constexpr NEONPermOp NEON_UZP2
constexpr FPDataProcessing2SourceOp FMUL_d
constexpr LoadStorePairOffsetOp LoadStorePairOffsetFixed
constexpr NEONScalarByIndexedElementOp NEON_SQDMULH_byelement_scalar
constexpr LoadStorePairPostIndexOp LoadStorePairPostIndexMask
constexpr SystemHintOp SystemHintMask
uint32_t FPDataProcessing1SourceOp
constexpr FPFixedPointConvertOp FCVTZU_xs_fixed
constexpr NEONShiftImmediateOp NEON_USHR
constexpr NEONLoadStoreMultiStructOp NEON_LD1_1v
constexpr DataProcessing2SourceOp RORV_w
constexpr LoadStorePairOffsetOp LoadStorePairOffsetFMask
constexpr FPDataProcessing1SourceOp FSQRT
constexpr NEONScalarShiftImmediateOp NEON_SRSHR_scalar
constexpr FPIntegerConvertOp SCVTF_sw
constexpr NEONModifiedImmediateOp NEONModifiedImmediate_MOVI
constexpr NEONScalarByIndexedElementOp NEON_FMLS_byelement_scalar
constexpr LoadStorePairPreIndexOp LoadStorePairPreIndexFixed
constexpr FPFixedPointConvertOp UCVTF_sx_fixed
constexpr NEONLoadStoreSingleStructOp NEON_LD3_b
uint32_t LoadStorePairAnyOp
constexpr NEON3DifferentOp NEON_USUBL
constexpr NEONCopyOp NEONCopyDupGeneralMask
uint32_t LoadStorePairPostIndexOp
constexpr FPFixedPointConvertOp FCVTZU_wd_fixed
constexpr AddSubOp AddSubOpMask
constexpr FPFixedPointConvertOp UCVTF_sw_fixed
constexpr NEON3DifferentOp NEON_RSUBHN2
constexpr LoadStoreAcquireReleaseOp CASALB
constexpr UnimplementedOp UnimplementedFixed
constexpr NEONScalarPairwiseOp NEONScalarPairwiseMask
constexpr NEON2RegMiscOp NEON_FSQRT
constexpr AtomicMemoryOp SWPAB
constexpr LoadStoreAcquireReleaseOp STLR_b
constexpr NEONScalar2RegMiscOp NEON_FCVTPS_scalar
constexpr NEONFormatField NEONFormatFieldMask
constexpr LogicalShiftedOp ORR_x
constexpr DataProcessing2SourceOp UDIV
constexpr ConditionalCompareImmediateOp ConditionalCompareImmediateMask
constexpr AtomicMemoryOp SWPALH
constexpr NEONScalar3SameOp NEONScalar3SameFPMask
constexpr NEON3DifferentOp NEON_SMULL
constexpr LoadStoreAcquireReleaseOp CASFixed
constexpr SystemPAuthOp PACIBSP
constexpr NEONScalar3DiffOp NEONScalar3DiffMask
constexpr NEON2RegMiscOp NEON_FCVTL_opcode
too high values may cause the compiler to set high thresholds for inlining to as much as possible avoid inlined allocation of objects that cannot escape trace load stores from virtual maglev objects use TurboFan fast string builder analyze liveness of environment slots and zap dead values trace TurboFan load elimination emit data about basic block usage in builtins to this enable builtin reordering when run mksnapshot flag for emit warnings when applying builtin profile data verify register allocation in TurboFan randomly schedule instructions to stress dependency tracking enable store store elimination in TurboFan rewrite far to near simulate GC compiler thread race related to allow float parameters to be passed in simulator mode JS Wasm Run additional turbo_optimize_inlined_js_wasm_wrappers enable experimental feedback collection in generic lowering enable Turboshaft s WasmLoadElimination enable Turboshaft s low level load elimination for JS enable Turboshaft s escape analysis for string concatenation use enable Turbolev features that we want to ship in the not too far future trace individual Turboshaft reduction steps trace intermediate Turboshaft reduction steps invocation count threshold for early optimization Enables optimizations which favor memory size over execution speed Enables sampling allocation profiler with X as a sample interval min size of a semi the new space consists of two semi spaces max size of the Collect garbage after Collect garbage after keeps maps alive for< n > old space garbage collections print one detailed trace line in allocation gc speed threshold for starting incremental marking via a task in percent of available threshold for starting incremental marking immediately in percent of available Use a single schedule for determining a marking schedule between JS and C objects schedules the minor GC task with kUserVisible priority max worker number of concurrent for NumberOfWorkerThreads start background threads that allocate memory concurrent_array_buffer_sweeping use parallel threads to clear weak refs in the atomic pause trace progress of the incremental marking trace object counts and memory usage * MB
Definition flags.cc:2197
constexpr LogicalShiftedOp EON_x
constexpr NEON3DifferentOp NEON_UADDW2
constexpr FPIntegerConvertOp FCVTPU_xd
constexpr ConditionalSelectOp CSNEG_w
constexpr LoadLiteralOp LDRSW_x_lit
constexpr GenericInstrField ThirtyTwoBits
constexpr NEONByIndexedElementOp NEON_UMLSL_byelement
constexpr LoadStoreAcquireReleaseOp CASPAL_w
constexpr LoadStoreAcquireReleaseOp CASLB
constexpr LoadStoreUnsignedOffset LoadStoreUnsignedOffsetMask
constexpr NEONLoadStoreMultiStructPostIndexOp NEONLoadStoreMultiStructPostIndexFixed
constexpr FPIntegerConvertOp FMOV_sw
constexpr FPImmediateOp FMOV_d_imm
constexpr NEONScalar2RegMiscOp NEONScalar2RegMiscFPMask
constexpr DataProcessing2SourceOp CRC32CW
constexpr ExtractOp ExtractFMask
constexpr DataProcessing2SourceOp ASRV_x
constexpr FPIntegerConvertOp FMOV_xd
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST4_h_post
constexpr NEONFPFormatField NEON_FP_4H
constexpr ExceptionOp DCPS2
constexpr FPDataProcessing2SourceOp FDIV_s
constexpr NEONScalar2RegMiscOp NEON_SCVTF_scalar
constexpr int kHRegSizeInBits
uint32_t NEONFormatField
constexpr NEONLSFormatField NEONLSFormatFieldMask
constexpr FPDataProcessing1SourceOp FSQRT_s
constexpr MemBarrierOp ISB
constexpr FPDataProcessing1SourceOp FCVT_ds
constexpr NEON3SameOp NEON_EOR
constexpr LoadStorePairPreIndexOp LoadStorePairPreIndexMask
constexpr FPDataProcessing2SourceOp FMINNM_s
constexpr NEONScalarByIndexedElementOp NEONScalarByIndexedElementMask
constexpr FPDataProcessing1SourceOp FRINTI_d
constexpr NEONByIndexedElementOp NEONByIndexedElementFMask
constexpr NEONLoadStoreMultiStructOp NEON_ST1_1v
constexpr NEONLoadStoreSingleStructOp NEON_LD2R
constexpr PCRelAddressingOp ADR
constexpr FPIntegerConvertOp FCVTNS_ws
constexpr NEON2RegMiscOp NEON_FRINTX
constexpr NEON2RegMiscOp NEON_FCVTNS
constexpr NEONLoadStoreSingleStructOp NEON_LD2_b
constexpr NEONLoadStoreMultiStructPostIndexOp NEON_LD1_3v_post
constexpr LogicalShiftedOp BIC_w
constexpr NEONLoadStoreMultiOp NEONLoadStoreMulti1_3v
constexpr NEONLoadStoreSingleStructOp NEONLoadStoreSingleStructFMask
constexpr NEON3ExtensionOp NEON3ExtensionMask
constexpr NEON3SameOp NEON_FCMGT
constexpr FPImmediateOp FPImmediateFixed
constexpr FPDataProcessing1SourceOp FRINTZ_s
constexpr NEON3DifferentOp NEON_SMLAL
constexpr FPIntegerConvertOp FCVTAU_xs
constexpr AddSubWithCarryOp ADCS_x
constexpr FPIntegerConvertOp SCVTF
constexpr FPIntegerConvertOp FCVTZU_wd
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_ST2_h_post
constexpr unsigned kAddressTagOffset
constexpr NEON2RegMiscOp NEON_SQXTN
constexpr NEONLoadStoreSingleStructPostIndexOp NEON_LD2_h_post
constexpr NEON2RegMiscOp NEON_FCVTPU
constexpr AddSubWithCarryOp ADC_x
constexpr NEONTableOp NEONTableFMask
constexpr int kDRegSizeInBits
constexpr NEON2RegMiscOp NEON_CLZ
constexpr NEON2RegMiscOp NEON_FCVTNU
constexpr SystemOp SystemFMask
constexpr NEON3DifferentOp NEON_UMULL2
constexpr DataProcessing2SourceOp SDIV_x
constexpr AddSubImmediateOp AddSubImmediateFMask
constexpr LoadStoreAcquireReleaseOp CASL_x
constexpr NEONByIndexedElementOp NEON_SMULL_byelement
constexpr NEONScalar3SameOp NEON_CMGT_scalar
constexpr FPDataProcessing3SourceOp FMSUB_s
constexpr ConditionalCompareOp CCMN
#define DCHECK(condition)
Definition logging.h:482
#define NOTHING(...)
Definition macros.h:19