asmjit 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/asmjit.gemspec +1 -1
  4. data/ext/asmjit/asmjit/.editorconfig +10 -0
  5. data/ext/asmjit/asmjit/.github/FUNDING.yml +1 -0
  6. data/ext/asmjit/asmjit/.github/workflows/build-config.json +47 -0
  7. data/ext/asmjit/asmjit/.github/workflows/build.yml +156 -0
  8. data/ext/asmjit/asmjit/.gitignore +6 -0
  9. data/ext/asmjit/asmjit/CMakeLists.txt +611 -0
  10. data/ext/asmjit/asmjit/LICENSE.md +17 -0
  11. data/ext/asmjit/asmjit/README.md +69 -0
  12. data/ext/asmjit/asmjit/src/asmjit/a64.h +62 -0
  13. data/ext/asmjit/asmjit/src/asmjit/arm/a64archtraits_p.h +81 -0
  14. data/ext/asmjit/asmjit/src/asmjit/arm/a64assembler.cpp +5115 -0
  15. data/ext/asmjit/asmjit/src/asmjit/arm/a64assembler.h +72 -0
  16. data/ext/asmjit/asmjit/src/asmjit/arm/a64builder.cpp +51 -0
  17. data/ext/asmjit/asmjit/src/asmjit/arm/a64builder.h +57 -0
  18. data/ext/asmjit/asmjit/src/asmjit/arm/a64compiler.cpp +60 -0
  19. data/ext/asmjit/asmjit/src/asmjit/arm/a64compiler.h +247 -0
  20. data/ext/asmjit/asmjit/src/asmjit/arm/a64emithelper.cpp +464 -0
  21. data/ext/asmjit/asmjit/src/asmjit/arm/a64emithelper_p.h +50 -0
  22. data/ext/asmjit/asmjit/src/asmjit/arm/a64emitter.h +1228 -0
  23. data/ext/asmjit/asmjit/src/asmjit/arm/a64formatter.cpp +298 -0
  24. data/ext/asmjit/asmjit/src/asmjit/arm/a64formatter_p.h +59 -0
  25. data/ext/asmjit/asmjit/src/asmjit/arm/a64func.cpp +189 -0
  26. data/ext/asmjit/asmjit/src/asmjit/arm/a64func_p.h +33 -0
  27. data/ext/asmjit/asmjit/src/asmjit/arm/a64globals.h +1894 -0
  28. data/ext/asmjit/asmjit/src/asmjit/arm/a64instapi.cpp +278 -0
  29. data/ext/asmjit/asmjit/src/asmjit/arm/a64instapi_p.h +41 -0
  30. data/ext/asmjit/asmjit/src/asmjit/arm/a64instdb.cpp +1957 -0
  31. data/ext/asmjit/asmjit/src/asmjit/arm/a64instdb.h +74 -0
  32. data/ext/asmjit/asmjit/src/asmjit/arm/a64instdb_p.h +876 -0
  33. data/ext/asmjit/asmjit/src/asmjit/arm/a64operand.cpp +85 -0
  34. data/ext/asmjit/asmjit/src/asmjit/arm/a64operand.h +312 -0
  35. data/ext/asmjit/asmjit/src/asmjit/arm/a64rapass.cpp +852 -0
  36. data/ext/asmjit/asmjit/src/asmjit/arm/a64rapass_p.h +105 -0
  37. data/ext/asmjit/asmjit/src/asmjit/arm/a64utils.h +179 -0
  38. data/ext/asmjit/asmjit/src/asmjit/arm/armformatter.cpp +143 -0
  39. data/ext/asmjit/asmjit/src/asmjit/arm/armformatter_p.h +44 -0
  40. data/ext/asmjit/asmjit/src/asmjit/arm/armglobals.h +21 -0
  41. data/ext/asmjit/asmjit/src/asmjit/arm/armoperand.h +621 -0
  42. data/ext/asmjit/asmjit/src/asmjit/arm.h +62 -0
  43. data/ext/asmjit/asmjit/src/asmjit/asmjit-scope-begin.h +17 -0
  44. data/ext/asmjit/asmjit/src/asmjit/asmjit-scope-end.h +9 -0
  45. data/ext/asmjit/asmjit/src/asmjit/asmjit.h +33 -0
  46. data/ext/asmjit/asmjit/src/asmjit/core/api-build_p.h +55 -0
  47. data/ext/asmjit/asmjit/src/asmjit/core/api-config.h +613 -0
  48. data/ext/asmjit/asmjit/src/asmjit/core/archcommons.h +229 -0
  49. data/ext/asmjit/asmjit/src/asmjit/core/archtraits.cpp +160 -0
  50. data/ext/asmjit/asmjit/src/asmjit/core/archtraits.h +290 -0
  51. data/ext/asmjit/asmjit/src/asmjit/core/assembler.cpp +406 -0
  52. data/ext/asmjit/asmjit/src/asmjit/core/assembler.h +129 -0
  53. data/ext/asmjit/asmjit/src/asmjit/core/builder.cpp +889 -0
  54. data/ext/asmjit/asmjit/src/asmjit/core/builder.h +1391 -0
  55. data/ext/asmjit/asmjit/src/asmjit/core/codebuffer.h +113 -0
  56. data/ext/asmjit/asmjit/src/asmjit/core/codeholder.cpp +1149 -0
  57. data/ext/asmjit/asmjit/src/asmjit/core/codeholder.h +1035 -0
  58. data/ext/asmjit/asmjit/src/asmjit/core/codewriter.cpp +175 -0
  59. data/ext/asmjit/asmjit/src/asmjit/core/codewriter_p.h +179 -0
  60. data/ext/asmjit/asmjit/src/asmjit/core/compiler.cpp +582 -0
  61. data/ext/asmjit/asmjit/src/asmjit/core/compiler.h +737 -0
  62. data/ext/asmjit/asmjit/src/asmjit/core/compilerdefs.h +173 -0
  63. data/ext/asmjit/asmjit/src/asmjit/core/constpool.cpp +363 -0
  64. data/ext/asmjit/asmjit/src/asmjit/core/constpool.h +250 -0
  65. data/ext/asmjit/asmjit/src/asmjit/core/cpuinfo.cpp +1162 -0
  66. data/ext/asmjit/asmjit/src/asmjit/core/cpuinfo.h +813 -0
  67. data/ext/asmjit/asmjit/src/asmjit/core/emithelper.cpp +323 -0
  68. data/ext/asmjit/asmjit/src/asmjit/core/emithelper_p.h +58 -0
  69. data/ext/asmjit/asmjit/src/asmjit/core/emitter.cpp +333 -0
  70. data/ext/asmjit/asmjit/src/asmjit/core/emitter.h +741 -0
  71. data/ext/asmjit/asmjit/src/asmjit/core/emitterutils.cpp +129 -0
  72. data/ext/asmjit/asmjit/src/asmjit/core/emitterutils_p.h +89 -0
  73. data/ext/asmjit/asmjit/src/asmjit/core/environment.cpp +46 -0
  74. data/ext/asmjit/asmjit/src/asmjit/core/environment.h +508 -0
  75. data/ext/asmjit/asmjit/src/asmjit/core/errorhandler.cpp +14 -0
  76. data/ext/asmjit/asmjit/src/asmjit/core/errorhandler.h +228 -0
  77. data/ext/asmjit/asmjit/src/asmjit/core/formatter.cpp +584 -0
  78. data/ext/asmjit/asmjit/src/asmjit/core/formatter.h +247 -0
  79. data/ext/asmjit/asmjit/src/asmjit/core/formatter_p.h +34 -0
  80. data/ext/asmjit/asmjit/src/asmjit/core/func.cpp +286 -0
  81. data/ext/asmjit/asmjit/src/asmjit/core/func.h +1445 -0
  82. data/ext/asmjit/asmjit/src/asmjit/core/funcargscontext.cpp +293 -0
  83. data/ext/asmjit/asmjit/src/asmjit/core/funcargscontext_p.h +199 -0
  84. data/ext/asmjit/asmjit/src/asmjit/core/globals.cpp +133 -0
  85. data/ext/asmjit/asmjit/src/asmjit/core/globals.h +393 -0
  86. data/ext/asmjit/asmjit/src/asmjit/core/inst.cpp +113 -0
  87. data/ext/asmjit/asmjit/src/asmjit/core/inst.h +772 -0
  88. data/ext/asmjit/asmjit/src/asmjit/core/jitallocator.cpp +1242 -0
  89. data/ext/asmjit/asmjit/src/asmjit/core/jitallocator.h +261 -0
  90. data/ext/asmjit/asmjit/src/asmjit/core/jitruntime.cpp +80 -0
  91. data/ext/asmjit/asmjit/src/asmjit/core/jitruntime.h +89 -0
  92. data/ext/asmjit/asmjit/src/asmjit/core/logger.cpp +69 -0
  93. data/ext/asmjit/asmjit/src/asmjit/core/logger.h +198 -0
  94. data/ext/asmjit/asmjit/src/asmjit/core/misc_p.h +33 -0
  95. data/ext/asmjit/asmjit/src/asmjit/core/operand.cpp +132 -0
  96. data/ext/asmjit/asmjit/src/asmjit/core/operand.h +1611 -0
  97. data/ext/asmjit/asmjit/src/asmjit/core/osutils.cpp +84 -0
  98. data/ext/asmjit/asmjit/src/asmjit/core/osutils.h +61 -0
  99. data/ext/asmjit/asmjit/src/asmjit/core/osutils_p.h +68 -0
  100. data/ext/asmjit/asmjit/src/asmjit/core/raassignment_p.h +418 -0
  101. data/ext/asmjit/asmjit/src/asmjit/core/rabuilders_p.h +612 -0
  102. data/ext/asmjit/asmjit/src/asmjit/core/radefs_p.h +1204 -0
  103. data/ext/asmjit/asmjit/src/asmjit/core/ralocal.cpp +1166 -0
  104. data/ext/asmjit/asmjit/src/asmjit/core/ralocal_p.h +254 -0
  105. data/ext/asmjit/asmjit/src/asmjit/core/rapass.cpp +1969 -0
  106. data/ext/asmjit/asmjit/src/asmjit/core/rapass_p.h +1183 -0
  107. data/ext/asmjit/asmjit/src/asmjit/core/rastack.cpp +184 -0
  108. data/ext/asmjit/asmjit/src/asmjit/core/rastack_p.h +171 -0
  109. data/ext/asmjit/asmjit/src/asmjit/core/string.cpp +559 -0
  110. data/ext/asmjit/asmjit/src/asmjit/core/string.h +372 -0
  111. data/ext/asmjit/asmjit/src/asmjit/core/support.cpp +494 -0
  112. data/ext/asmjit/asmjit/src/asmjit/core/support.h +1773 -0
  113. data/ext/asmjit/asmjit/src/asmjit/core/target.cpp +14 -0
  114. data/ext/asmjit/asmjit/src/asmjit/core/target.h +53 -0
  115. data/ext/asmjit/asmjit/src/asmjit/core/type.cpp +74 -0
  116. data/ext/asmjit/asmjit/src/asmjit/core/type.h +419 -0
  117. data/ext/asmjit/asmjit/src/asmjit/core/virtmem.cpp +722 -0
  118. data/ext/asmjit/asmjit/src/asmjit/core/virtmem.h +242 -0
  119. data/ext/asmjit/asmjit/src/asmjit/core/zone.cpp +353 -0
  120. data/ext/asmjit/asmjit/src/asmjit/core/zone.h +615 -0
  121. data/ext/asmjit/asmjit/src/asmjit/core/zonehash.cpp +309 -0
  122. data/ext/asmjit/asmjit/src/asmjit/core/zonehash.h +186 -0
  123. data/ext/asmjit/asmjit/src/asmjit/core/zonelist.cpp +163 -0
  124. data/ext/asmjit/asmjit/src/asmjit/core/zonelist.h +209 -0
  125. data/ext/asmjit/asmjit/src/asmjit/core/zonestack.cpp +176 -0
  126. data/ext/asmjit/asmjit/src/asmjit/core/zonestack.h +239 -0
  127. data/ext/asmjit/asmjit/src/asmjit/core/zonestring.h +120 -0
  128. data/ext/asmjit/asmjit/src/asmjit/core/zonetree.cpp +99 -0
  129. data/ext/asmjit/asmjit/src/asmjit/core/zonetree.h +380 -0
  130. data/ext/asmjit/asmjit/src/asmjit/core/zonevector.cpp +356 -0
  131. data/ext/asmjit/asmjit/src/asmjit/core/zonevector.h +690 -0
  132. data/ext/asmjit/asmjit/src/asmjit/core.h +1861 -0
  133. data/ext/asmjit/asmjit/src/asmjit/x86/x86archtraits_p.h +148 -0
  134. data/ext/asmjit/asmjit/src/asmjit/x86/x86assembler.cpp +5110 -0
  135. data/ext/asmjit/asmjit/src/asmjit/x86/x86assembler.h +685 -0
  136. data/ext/asmjit/asmjit/src/asmjit/x86/x86builder.cpp +52 -0
  137. data/ext/asmjit/asmjit/src/asmjit/x86/x86builder.h +351 -0
  138. data/ext/asmjit/asmjit/src/asmjit/x86/x86compiler.cpp +61 -0
  139. data/ext/asmjit/asmjit/src/asmjit/x86/x86compiler.h +721 -0
  140. data/ext/asmjit/asmjit/src/asmjit/x86/x86emithelper.cpp +619 -0
  141. data/ext/asmjit/asmjit/src/asmjit/x86/x86emithelper_p.h +60 -0
  142. data/ext/asmjit/asmjit/src/asmjit/x86/x86emitter.h +4315 -0
  143. data/ext/asmjit/asmjit/src/asmjit/x86/x86formatter.cpp +944 -0
  144. data/ext/asmjit/asmjit/src/asmjit/x86/x86formatter_p.h +58 -0
  145. data/ext/asmjit/asmjit/src/asmjit/x86/x86func.cpp +503 -0
  146. data/ext/asmjit/asmjit/src/asmjit/x86/x86func_p.h +33 -0
  147. data/ext/asmjit/asmjit/src/asmjit/x86/x86globals.h +2169 -0
  148. data/ext/asmjit/asmjit/src/asmjit/x86/x86instapi.cpp +1732 -0
  149. data/ext/asmjit/asmjit/src/asmjit/x86/x86instapi_p.h +41 -0
  150. data/ext/asmjit/asmjit/src/asmjit/x86/x86instdb.cpp +4427 -0
  151. data/ext/asmjit/asmjit/src/asmjit/x86/x86instdb.h +563 -0
  152. data/ext/asmjit/asmjit/src/asmjit/x86/x86instdb_p.h +311 -0
  153. data/ext/asmjit/asmjit/src/asmjit/x86/x86opcode_p.h +436 -0
  154. data/ext/asmjit/asmjit/src/asmjit/x86/x86operand.cpp +231 -0
  155. data/ext/asmjit/asmjit/src/asmjit/x86/x86operand.h +1085 -0
  156. data/ext/asmjit/asmjit/src/asmjit/x86/x86rapass.cpp +1509 -0
  157. data/ext/asmjit/asmjit/src/asmjit/x86/x86rapass_p.h +94 -0
  158. data/ext/asmjit/asmjit/src/asmjit/x86.h +93 -0
  159. data/ext/asmjit/asmjit/src/asmjit.natvis +245 -0
  160. data/ext/asmjit/asmjit/test/asmjit_test_assembler.cpp +84 -0
  161. data/ext/asmjit/asmjit/test/asmjit_test_assembler.h +85 -0
  162. data/ext/asmjit/asmjit/test/asmjit_test_assembler_a64.cpp +4006 -0
  163. data/ext/asmjit/asmjit/test/asmjit_test_assembler_x64.cpp +17833 -0
  164. data/ext/asmjit/asmjit/test/asmjit_test_assembler_x86.cpp +8300 -0
  165. data/ext/asmjit/asmjit/test/asmjit_test_compiler.cpp +253 -0
  166. data/ext/asmjit/asmjit/test/asmjit_test_compiler.h +73 -0
  167. data/ext/asmjit/asmjit/test/asmjit_test_compiler_a64.cpp +690 -0
  168. data/ext/asmjit/asmjit/test/asmjit_test_compiler_x86.cpp +4317 -0
  169. data/ext/asmjit/asmjit/test/asmjit_test_emitters.cpp +197 -0
  170. data/ext/asmjit/asmjit/test/asmjit_test_instinfo.cpp +181 -0
  171. data/ext/asmjit/asmjit/test/asmjit_test_misc.h +257 -0
  172. data/ext/asmjit/asmjit/test/asmjit_test_perf.cpp +62 -0
  173. data/ext/asmjit/asmjit/test/asmjit_test_perf.h +61 -0
  174. data/ext/asmjit/asmjit/test/asmjit_test_perf_a64.cpp +699 -0
  175. data/ext/asmjit/asmjit/test/asmjit_test_perf_x86.cpp +5032 -0
  176. data/ext/asmjit/asmjit/test/asmjit_test_unit.cpp +172 -0
  177. data/ext/asmjit/asmjit/test/asmjit_test_x86_sections.cpp +172 -0
  178. data/ext/asmjit/asmjit/test/asmjitutils.h +38 -0
  179. data/ext/asmjit/asmjit/test/broken.cpp +312 -0
  180. data/ext/asmjit/asmjit/test/broken.h +148 -0
  181. data/ext/asmjit/asmjit/test/cmdline.h +61 -0
  182. data/ext/asmjit/asmjit/test/performancetimer.h +41 -0
  183. data/ext/asmjit/asmjit/tools/configure-makefiles.sh +13 -0
  184. data/ext/asmjit/asmjit/tools/configure-ninja.sh +13 -0
  185. data/ext/asmjit/asmjit/tools/configure-sanitizers.sh +13 -0
  186. data/ext/asmjit/asmjit/tools/configure-vs2019-x64.bat +2 -0
  187. data/ext/asmjit/asmjit/tools/configure-vs2019-x86.bat +2 -0
  188. data/ext/asmjit/asmjit/tools/configure-vs2022-x64.bat +2 -0
  189. data/ext/asmjit/asmjit/tools/configure-vs2022-x86.bat +2 -0
  190. data/ext/asmjit/asmjit/tools/configure-xcode.sh +8 -0
  191. data/ext/asmjit/asmjit/tools/enumgen.js +417 -0
  192. data/ext/asmjit/asmjit/tools/enumgen.sh +3 -0
  193. data/ext/asmjit/asmjit/tools/tablegen-arm.js +365 -0
  194. data/ext/asmjit/asmjit/tools/tablegen-arm.sh +3 -0
  195. data/ext/asmjit/asmjit/tools/tablegen-x86.js +2638 -0
  196. data/ext/asmjit/asmjit/tools/tablegen-x86.sh +3 -0
  197. data/ext/asmjit/asmjit/tools/tablegen.js +947 -0
  198. data/ext/asmjit/asmjit/tools/tablegen.sh +4 -0
  199. data/ext/asmjit/asmjit.cc +18 -0
  200. data/lib/asmjit/version.rb +1 -1
  201. metadata +197 -2
@@ -0,0 +1,1894 @@
1
+ // This file is part of AsmJit project <https://asmjit.com>
2
+ //
3
+ // See asmjit.h or LICENSE.md for license and copyright information
4
+ // SPDX-License-Identifier: Zlib
5
+
6
+ #ifndef ASMJIT_ARM_A64GLOBALS_H_INCLUDED
7
+ #define ASMJIT_ARM_A64GLOBALS_H_INCLUDED
8
+
9
+ #include "../arm/armglobals.h"
10
+
11
+ //! \namespace asmjit::a64
12
+ //! \ingroup asmjit_a64
13
+ //!
14
+ //! AArch64 backend.
15
+
16
+ ASMJIT_BEGIN_SUB_NAMESPACE(a64)
17
+
18
+ // a64 uses everything from arm namespace and adds into it.
19
+ using namespace arm;
20
+
21
+ //! \addtogroup asmjit_a64
22
+ //! \{
23
+
24
+ //! AArch64 instruction.
25
+ //!
26
+ //! \note Only used to hold ARM-specific enumerations and static functions.
27
+ struct Inst {
28
+ //! Instruction id.
29
+ enum Id : uint32_t {
30
+ // ${InstId:Begin}
31
+ kIdNone = 0, //!< Instruction ''.
32
+ kIdAdc, //!< Instruction 'adc'.
33
+ kIdAdcs, //!< Instruction 'adcs'.
34
+ kIdAdd, //!< Instruction 'add'.
35
+ kIdAddg, //!< Instruction 'addg'.
36
+ kIdAdds, //!< Instruction 'adds'.
37
+ kIdAdr, //!< Instruction 'adr'.
38
+ kIdAdrp, //!< Instruction 'adrp'.
39
+ kIdAnd, //!< Instruction 'and'.
40
+ kIdAnds, //!< Instruction 'ands'.
41
+ kIdAsr, //!< Instruction 'asr'.
42
+ kIdAsrv, //!< Instruction 'asrv'.
43
+ kIdAt, //!< Instruction 'at'.
44
+ kIdAutda, //!< Instruction 'autda'.
45
+ kIdAutdza, //!< Instruction 'autdza'.
46
+ kIdAutdb, //!< Instruction 'autdb'.
47
+ kIdAutdzb, //!< Instruction 'autdzb'.
48
+ kIdAutia, //!< Instruction 'autia'.
49
+ kIdAutia1716, //!< Instruction 'autia1716'.
50
+ kIdAutiasp, //!< Instruction 'autiasp'.
51
+ kIdAutiaz, //!< Instruction 'autiaz'.
52
+ kIdAutib, //!< Instruction 'autib'.
53
+ kIdAutib1716, //!< Instruction 'autib1716'.
54
+ kIdAutibsp, //!< Instruction 'autibsp'.
55
+ kIdAutibz, //!< Instruction 'autibz'.
56
+ kIdAutiza, //!< Instruction 'autiza'.
57
+ kIdAutizb, //!< Instruction 'autizb'.
58
+ kIdAxflag, //!< Instruction 'axflag'.
59
+ kIdB, //!< Instruction 'b'.
60
+ kIdBfc, //!< Instruction 'bfc'.
61
+ kIdBfi, //!< Instruction 'bfi'.
62
+ kIdBfm, //!< Instruction 'bfm'.
63
+ kIdBfxil, //!< Instruction 'bfxil'.
64
+ kIdBic, //!< Instruction 'bic'.
65
+ kIdBics, //!< Instruction 'bics'.
66
+ kIdBl, //!< Instruction 'bl'.
67
+ kIdBlr, //!< Instruction 'blr'.
68
+ kIdBr, //!< Instruction 'br'.
69
+ kIdBrk, //!< Instruction 'brk'.
70
+ kIdCas, //!< Instruction 'cas'.
71
+ kIdCasa, //!< Instruction 'casa'.
72
+ kIdCasab, //!< Instruction 'casab'.
73
+ kIdCasah, //!< Instruction 'casah'.
74
+ kIdCasal, //!< Instruction 'casal'.
75
+ kIdCasalb, //!< Instruction 'casalb'.
76
+ kIdCasalh, //!< Instruction 'casalh'.
77
+ kIdCasb, //!< Instruction 'casb'.
78
+ kIdCash, //!< Instruction 'cash'.
79
+ kIdCasl, //!< Instruction 'casl'.
80
+ kIdCaslb, //!< Instruction 'caslb'.
81
+ kIdCaslh, //!< Instruction 'caslh'.
82
+ kIdCasp, //!< Instruction 'casp'.
83
+ kIdCaspa, //!< Instruction 'caspa'.
84
+ kIdCaspal, //!< Instruction 'caspal'.
85
+ kIdCaspl, //!< Instruction 'caspl'.
86
+ kIdCbnz, //!< Instruction 'cbnz'.
87
+ kIdCbz, //!< Instruction 'cbz'.
88
+ kIdCcmn, //!< Instruction 'ccmn'.
89
+ kIdCcmp, //!< Instruction 'ccmp'.
90
+ kIdCfinv, //!< Instruction 'cfinv'.
91
+ kIdCinc, //!< Instruction 'cinc'.
92
+ kIdCinv, //!< Instruction 'cinv'.
93
+ kIdClrex, //!< Instruction 'clrex'.
94
+ kIdCls, //!< Instruction 'cls'.
95
+ kIdClz, //!< Instruction 'clz'.
96
+ kIdCmn, //!< Instruction 'cmn'.
97
+ kIdCmp, //!< Instruction 'cmp'.
98
+ kIdCmpp, //!< Instruction 'cmpp'.
99
+ kIdCneg, //!< Instruction 'cneg'.
100
+ kIdCrc32b, //!< Instruction 'crc32b'.
101
+ kIdCrc32cb, //!< Instruction 'crc32cb'.
102
+ kIdCrc32ch, //!< Instruction 'crc32ch'.
103
+ kIdCrc32cw, //!< Instruction 'crc32cw'.
104
+ kIdCrc32cx, //!< Instruction 'crc32cx'.
105
+ kIdCrc32h, //!< Instruction 'crc32h'.
106
+ kIdCrc32w, //!< Instruction 'crc32w'.
107
+ kIdCrc32x, //!< Instruction 'crc32x'.
108
+ kIdCsdb, //!< Instruction 'csdb'.
109
+ kIdCsel, //!< Instruction 'csel'.
110
+ kIdCset, //!< Instruction 'cset'.
111
+ kIdCsetm, //!< Instruction 'csetm'.
112
+ kIdCsinc, //!< Instruction 'csinc'.
113
+ kIdCsinv, //!< Instruction 'csinv'.
114
+ kIdCsneg, //!< Instruction 'csneg'.
115
+ kIdDc, //!< Instruction 'dc'.
116
+ kIdDcps1, //!< Instruction 'dcps1'.
117
+ kIdDcps2, //!< Instruction 'dcps2'.
118
+ kIdDcps3, //!< Instruction 'dcps3'.
119
+ kIdDgh, //!< Instruction 'dgh'.
120
+ kIdDmb, //!< Instruction 'dmb'.
121
+ kIdDrps, //!< Instruction 'drps'.
122
+ kIdDsb, //!< Instruction 'dsb'.
123
+ kIdEon, //!< Instruction 'eon'.
124
+ kIdEor, //!< Instruction 'eor'.
125
+ kIdEsb, //!< Instruction 'esb'.
126
+ kIdExtr, //!< Instruction 'extr'.
127
+ kIdEret, //!< Instruction 'eret'.
128
+ kIdGmi, //!< Instruction 'gmi'.
129
+ kIdHint, //!< Instruction 'hint'.
130
+ kIdHlt, //!< Instruction 'hlt'.
131
+ kIdHvc, //!< Instruction 'hvc'.
132
+ kIdIc, //!< Instruction 'ic'.
133
+ kIdIsb, //!< Instruction 'isb'.
134
+ kIdLdadd, //!< Instruction 'ldadd'.
135
+ kIdLdadda, //!< Instruction 'ldadda'.
136
+ kIdLdaddab, //!< Instruction 'ldaddab'.
137
+ kIdLdaddah, //!< Instruction 'ldaddah'.
138
+ kIdLdaddal, //!< Instruction 'ldaddal'.
139
+ kIdLdaddalb, //!< Instruction 'ldaddalb'.
140
+ kIdLdaddalh, //!< Instruction 'ldaddalh'.
141
+ kIdLdaddb, //!< Instruction 'ldaddb'.
142
+ kIdLdaddh, //!< Instruction 'ldaddh'.
143
+ kIdLdaddl, //!< Instruction 'ldaddl'.
144
+ kIdLdaddlb, //!< Instruction 'ldaddlb'.
145
+ kIdLdaddlh, //!< Instruction 'ldaddlh'.
146
+ kIdLdar, //!< Instruction 'ldar'.
147
+ kIdLdarb, //!< Instruction 'ldarb'.
148
+ kIdLdarh, //!< Instruction 'ldarh'.
149
+ kIdLdaxp, //!< Instruction 'ldaxp'.
150
+ kIdLdaxr, //!< Instruction 'ldaxr'.
151
+ kIdLdaxrb, //!< Instruction 'ldaxrb'.
152
+ kIdLdaxrh, //!< Instruction 'ldaxrh'.
153
+ kIdLdclr, //!< Instruction 'ldclr'.
154
+ kIdLdclra, //!< Instruction 'ldclra'.
155
+ kIdLdclrab, //!< Instruction 'ldclrab'.
156
+ kIdLdclrah, //!< Instruction 'ldclrah'.
157
+ kIdLdclral, //!< Instruction 'ldclral'.
158
+ kIdLdclralb, //!< Instruction 'ldclralb'.
159
+ kIdLdclralh, //!< Instruction 'ldclralh'.
160
+ kIdLdclrb, //!< Instruction 'ldclrb'.
161
+ kIdLdclrh, //!< Instruction 'ldclrh'.
162
+ kIdLdclrl, //!< Instruction 'ldclrl'.
163
+ kIdLdclrlb, //!< Instruction 'ldclrlb'.
164
+ kIdLdclrlh, //!< Instruction 'ldclrlh'.
165
+ kIdLdeor, //!< Instruction 'ldeor'.
166
+ kIdLdeora, //!< Instruction 'ldeora'.
167
+ kIdLdeorab, //!< Instruction 'ldeorab'.
168
+ kIdLdeorah, //!< Instruction 'ldeorah'.
169
+ kIdLdeoral, //!< Instruction 'ldeoral'.
170
+ kIdLdeoralb, //!< Instruction 'ldeoralb'.
171
+ kIdLdeoralh, //!< Instruction 'ldeoralh'.
172
+ kIdLdeorb, //!< Instruction 'ldeorb'.
173
+ kIdLdeorh, //!< Instruction 'ldeorh'.
174
+ kIdLdeorl, //!< Instruction 'ldeorl'.
175
+ kIdLdeorlb, //!< Instruction 'ldeorlb'.
176
+ kIdLdeorlh, //!< Instruction 'ldeorlh'.
177
+ kIdLdg, //!< Instruction 'ldg'.
178
+ kIdLdgm, //!< Instruction 'ldgm'.
179
+ kIdLdlar, //!< Instruction 'ldlar'.
180
+ kIdLdlarb, //!< Instruction 'ldlarb'.
181
+ kIdLdlarh, //!< Instruction 'ldlarh'.
182
+ kIdLdnp, //!< Instruction 'ldnp'.
183
+ kIdLdp, //!< Instruction 'ldp'.
184
+ kIdLdpsw, //!< Instruction 'ldpsw'.
185
+ kIdLdr, //!< Instruction 'ldr'.
186
+ kIdLdraa, //!< Instruction 'ldraa'.
187
+ kIdLdrab, //!< Instruction 'ldrab'.
188
+ kIdLdrb, //!< Instruction 'ldrb'.
189
+ kIdLdrh, //!< Instruction 'ldrh'.
190
+ kIdLdrsb, //!< Instruction 'ldrsb'.
191
+ kIdLdrsh, //!< Instruction 'ldrsh'.
192
+ kIdLdrsw, //!< Instruction 'ldrsw'.
193
+ kIdLdset, //!< Instruction 'ldset'.
194
+ kIdLdseta, //!< Instruction 'ldseta'.
195
+ kIdLdsetab, //!< Instruction 'ldsetab'.
196
+ kIdLdsetah, //!< Instruction 'ldsetah'.
197
+ kIdLdsetal, //!< Instruction 'ldsetal'.
198
+ kIdLdsetalb, //!< Instruction 'ldsetalb'.
199
+ kIdLdsetalh, //!< Instruction 'ldsetalh'.
200
+ kIdLdsetb, //!< Instruction 'ldsetb'.
201
+ kIdLdseth, //!< Instruction 'ldseth'.
202
+ kIdLdsetl, //!< Instruction 'ldsetl'.
203
+ kIdLdsetlb, //!< Instruction 'ldsetlb'.
204
+ kIdLdsetlh, //!< Instruction 'ldsetlh'.
205
+ kIdLdsmax, //!< Instruction 'ldsmax'.
206
+ kIdLdsmaxa, //!< Instruction 'ldsmaxa'.
207
+ kIdLdsmaxab, //!< Instruction 'ldsmaxab'.
208
+ kIdLdsmaxah, //!< Instruction 'ldsmaxah'.
209
+ kIdLdsmaxal, //!< Instruction 'ldsmaxal'.
210
+ kIdLdsmaxalb, //!< Instruction 'ldsmaxalb'.
211
+ kIdLdsmaxalh, //!< Instruction 'ldsmaxalh'.
212
+ kIdLdsmaxb, //!< Instruction 'ldsmaxb'.
213
+ kIdLdsmaxh, //!< Instruction 'ldsmaxh'.
214
+ kIdLdsmaxl, //!< Instruction 'ldsmaxl'.
215
+ kIdLdsmaxlb, //!< Instruction 'ldsmaxlb'.
216
+ kIdLdsmaxlh, //!< Instruction 'ldsmaxlh'.
217
+ kIdLdsmin, //!< Instruction 'ldsmin'.
218
+ kIdLdsmina, //!< Instruction 'ldsmina'.
219
+ kIdLdsminab, //!< Instruction 'ldsminab'.
220
+ kIdLdsminah, //!< Instruction 'ldsminah'.
221
+ kIdLdsminal, //!< Instruction 'ldsminal'.
222
+ kIdLdsminalb, //!< Instruction 'ldsminalb'.
223
+ kIdLdsminalh, //!< Instruction 'ldsminalh'.
224
+ kIdLdsminb, //!< Instruction 'ldsminb'.
225
+ kIdLdsminh, //!< Instruction 'ldsminh'.
226
+ kIdLdsminl, //!< Instruction 'ldsminl'.
227
+ kIdLdsminlb, //!< Instruction 'ldsminlb'.
228
+ kIdLdsminlh, //!< Instruction 'ldsminlh'.
229
+ kIdLdtr, //!< Instruction 'ldtr'.
230
+ kIdLdtrb, //!< Instruction 'ldtrb'.
231
+ kIdLdtrh, //!< Instruction 'ldtrh'.
232
+ kIdLdtrsb, //!< Instruction 'ldtrsb'.
233
+ kIdLdtrsh, //!< Instruction 'ldtrsh'.
234
+ kIdLdtrsw, //!< Instruction 'ldtrsw'.
235
+ kIdLdumax, //!< Instruction 'ldumax'.
236
+ kIdLdumaxa, //!< Instruction 'ldumaxa'.
237
+ kIdLdumaxab, //!< Instruction 'ldumaxab'.
238
+ kIdLdumaxah, //!< Instruction 'ldumaxah'.
239
+ kIdLdumaxal, //!< Instruction 'ldumaxal'.
240
+ kIdLdumaxalb, //!< Instruction 'ldumaxalb'.
241
+ kIdLdumaxalh, //!< Instruction 'ldumaxalh'.
242
+ kIdLdumaxb, //!< Instruction 'ldumaxb'.
243
+ kIdLdumaxh, //!< Instruction 'ldumaxh'.
244
+ kIdLdumaxl, //!< Instruction 'ldumaxl'.
245
+ kIdLdumaxlb, //!< Instruction 'ldumaxlb'.
246
+ kIdLdumaxlh, //!< Instruction 'ldumaxlh'.
247
+ kIdLdumin, //!< Instruction 'ldumin'.
248
+ kIdLdumina, //!< Instruction 'ldumina'.
249
+ kIdLduminab, //!< Instruction 'lduminab'.
250
+ kIdLduminah, //!< Instruction 'lduminah'.
251
+ kIdLduminal, //!< Instruction 'lduminal'.
252
+ kIdLduminalb, //!< Instruction 'lduminalb'.
253
+ kIdLduminalh, //!< Instruction 'lduminalh'.
254
+ kIdLduminb, //!< Instruction 'lduminb'.
255
+ kIdLduminh, //!< Instruction 'lduminh'.
256
+ kIdLduminl, //!< Instruction 'lduminl'.
257
+ kIdLduminlb, //!< Instruction 'lduminlb'.
258
+ kIdLduminlh, //!< Instruction 'lduminlh'.
259
+ kIdLdur, //!< Instruction 'ldur'.
260
+ kIdLdurb, //!< Instruction 'ldurb'.
261
+ kIdLdurh, //!< Instruction 'ldurh'.
262
+ kIdLdursb, //!< Instruction 'ldursb'.
263
+ kIdLdursh, //!< Instruction 'ldursh'.
264
+ kIdLdursw, //!< Instruction 'ldursw'.
265
+ kIdLdxp, //!< Instruction 'ldxp'.
266
+ kIdLdxr, //!< Instruction 'ldxr'.
267
+ kIdLdxrb, //!< Instruction 'ldxrb'.
268
+ kIdLdxrh, //!< Instruction 'ldxrh'.
269
+ kIdLsl, //!< Instruction 'lsl'.
270
+ kIdLslv, //!< Instruction 'lslv'.
271
+ kIdLsr, //!< Instruction 'lsr'.
272
+ kIdLsrv, //!< Instruction 'lsrv'.
273
+ kIdMadd, //!< Instruction 'madd'.
274
+ kIdMneg, //!< Instruction 'mneg'.
275
+ kIdMov, //!< Instruction 'mov'.
276
+ kIdMovk, //!< Instruction 'movk'.
277
+ kIdMovn, //!< Instruction 'movn'.
278
+ kIdMovz, //!< Instruction 'movz'.
279
+ kIdMrs, //!< Instruction 'mrs'.
280
+ kIdMsr, //!< Instruction 'msr'.
281
+ kIdMsub, //!< Instruction 'msub'.
282
+ kIdMul, //!< Instruction 'mul'.
283
+ kIdMvn, //!< Instruction 'mvn'.
284
+ kIdNeg, //!< Instruction 'neg'.
285
+ kIdNegs, //!< Instruction 'negs'.
286
+ kIdNgc, //!< Instruction 'ngc'.
287
+ kIdNgcs, //!< Instruction 'ngcs'.
288
+ kIdNop, //!< Instruction 'nop'.
289
+ kIdOrn, //!< Instruction 'orn'.
290
+ kIdOrr, //!< Instruction 'orr'.
291
+ kIdPacda, //!< Instruction 'pacda'.
292
+ kIdPacdb, //!< Instruction 'pacdb'.
293
+ kIdPacdza, //!< Instruction 'pacdza'.
294
+ kIdPacdzb, //!< Instruction 'pacdzb'.
295
+ kIdPacga, //!< Instruction 'pacga'.
296
+ kIdPssbb, //!< Instruction 'pssbb'.
297
+ kIdRbit, //!< Instruction 'rbit'.
298
+ kIdRet, //!< Instruction 'ret'.
299
+ kIdRev, //!< Instruction 'rev'.
300
+ kIdRev16, //!< Instruction 'rev16'.
301
+ kIdRev32, //!< Instruction 'rev32'.
302
+ kIdRev64, //!< Instruction 'rev64'.
303
+ kIdRor, //!< Instruction 'ror'.
304
+ kIdRorv, //!< Instruction 'rorv'.
305
+ kIdSbc, //!< Instruction 'sbc'.
306
+ kIdSbcs, //!< Instruction 'sbcs'.
307
+ kIdSbfiz, //!< Instruction 'sbfiz'.
308
+ kIdSbfm, //!< Instruction 'sbfm'.
309
+ kIdSbfx, //!< Instruction 'sbfx'.
310
+ kIdSdiv, //!< Instruction 'sdiv'.
311
+ kIdSetf8, //!< Instruction 'setf8'.
312
+ kIdSetf16, //!< Instruction 'setf16'.
313
+ kIdSev, //!< Instruction 'sev'.
314
+ kIdSevl, //!< Instruction 'sevl'.
315
+ kIdSmaddl, //!< Instruction 'smaddl'.
316
+ kIdSmc, //!< Instruction 'smc'.
317
+ kIdSmnegl, //!< Instruction 'smnegl'.
318
+ kIdSmsubl, //!< Instruction 'smsubl'.
319
+ kIdSmulh, //!< Instruction 'smulh'.
320
+ kIdSmull, //!< Instruction 'smull'.
321
+ kIdSsbb, //!< Instruction 'ssbb'.
322
+ kIdSt2g, //!< Instruction 'st2g'.
323
+ kIdStadd, //!< Instruction 'stadd'.
324
+ kIdStaddl, //!< Instruction 'staddl'.
325
+ kIdStaddb, //!< Instruction 'staddb'.
326
+ kIdStaddlb, //!< Instruction 'staddlb'.
327
+ kIdStaddh, //!< Instruction 'staddh'.
328
+ kIdStaddlh, //!< Instruction 'staddlh'.
329
+ kIdStclr, //!< Instruction 'stclr'.
330
+ kIdStclrl, //!< Instruction 'stclrl'.
331
+ kIdStclrb, //!< Instruction 'stclrb'.
332
+ kIdStclrlb, //!< Instruction 'stclrlb'.
333
+ kIdStclrh, //!< Instruction 'stclrh'.
334
+ kIdStclrlh, //!< Instruction 'stclrlh'.
335
+ kIdSteor, //!< Instruction 'steor'.
336
+ kIdSteorl, //!< Instruction 'steorl'.
337
+ kIdSteorb, //!< Instruction 'steorb'.
338
+ kIdSteorlb, //!< Instruction 'steorlb'.
339
+ kIdSteorh, //!< Instruction 'steorh'.
340
+ kIdSteorlh, //!< Instruction 'steorlh'.
341
+ kIdStg, //!< Instruction 'stg'.
342
+ kIdStgm, //!< Instruction 'stgm'.
343
+ kIdStgp, //!< Instruction 'stgp'.
344
+ kIdStllr, //!< Instruction 'stllr'.
345
+ kIdStllrb, //!< Instruction 'stllrb'.
346
+ kIdStllrh, //!< Instruction 'stllrh'.
347
+ kIdStlr, //!< Instruction 'stlr'.
348
+ kIdStlrb, //!< Instruction 'stlrb'.
349
+ kIdStlrh, //!< Instruction 'stlrh'.
350
+ kIdStlxp, //!< Instruction 'stlxp'.
351
+ kIdStlxr, //!< Instruction 'stlxr'.
352
+ kIdStlxrb, //!< Instruction 'stlxrb'.
353
+ kIdStlxrh, //!< Instruction 'stlxrh'.
354
+ kIdStnp, //!< Instruction 'stnp'.
355
+ kIdStp, //!< Instruction 'stp'.
356
+ kIdStr, //!< Instruction 'str'.
357
+ kIdStrb, //!< Instruction 'strb'.
358
+ kIdStrh, //!< Instruction 'strh'.
359
+ kIdStset, //!< Instruction 'stset'.
360
+ kIdStsetl, //!< Instruction 'stsetl'.
361
+ kIdStsetb, //!< Instruction 'stsetb'.
362
+ kIdStsetlb, //!< Instruction 'stsetlb'.
363
+ kIdStseth, //!< Instruction 'stseth'.
364
+ kIdStsetlh, //!< Instruction 'stsetlh'.
365
+ kIdStsmax, //!< Instruction 'stsmax'.
366
+ kIdStsmaxl, //!< Instruction 'stsmaxl'.
367
+ kIdStsmaxb, //!< Instruction 'stsmaxb'.
368
+ kIdStsmaxlb, //!< Instruction 'stsmaxlb'.
369
+ kIdStsmaxh, //!< Instruction 'stsmaxh'.
370
+ kIdStsmaxlh, //!< Instruction 'stsmaxlh'.
371
+ kIdStsmin, //!< Instruction 'stsmin'.
372
+ kIdStsminl, //!< Instruction 'stsminl'.
373
+ kIdStsminb, //!< Instruction 'stsminb'.
374
+ kIdStsminlb, //!< Instruction 'stsminlb'.
375
+ kIdStsminh, //!< Instruction 'stsminh'.
376
+ kIdStsminlh, //!< Instruction 'stsminlh'.
377
+ kIdSttr, //!< Instruction 'sttr'.
378
+ kIdSttrb, //!< Instruction 'sttrb'.
379
+ kIdSttrh, //!< Instruction 'sttrh'.
380
+ kIdStumax, //!< Instruction 'stumax'.
381
+ kIdStumaxl, //!< Instruction 'stumaxl'.
382
+ kIdStumaxb, //!< Instruction 'stumaxb'.
383
+ kIdStumaxlb, //!< Instruction 'stumaxlb'.
384
+ kIdStumaxh, //!< Instruction 'stumaxh'.
385
+ kIdStumaxlh, //!< Instruction 'stumaxlh'.
386
+ kIdStumin, //!< Instruction 'stumin'.
387
+ kIdStuminl, //!< Instruction 'stuminl'.
388
+ kIdStuminb, //!< Instruction 'stuminb'.
389
+ kIdStuminlb, //!< Instruction 'stuminlb'.
390
+ kIdStuminh, //!< Instruction 'stuminh'.
391
+ kIdStuminlh, //!< Instruction 'stuminlh'.
392
+ kIdStur, //!< Instruction 'stur'.
393
+ kIdSturb, //!< Instruction 'sturb'.
394
+ kIdSturh, //!< Instruction 'sturh'.
395
+ kIdStxp, //!< Instruction 'stxp'.
396
+ kIdStxr, //!< Instruction 'stxr'.
397
+ kIdStxrb, //!< Instruction 'stxrb'.
398
+ kIdStxrh, //!< Instruction 'stxrh'.
399
+ kIdStz2g, //!< Instruction 'stz2g'.
400
+ kIdStzg, //!< Instruction 'stzg'.
401
+ kIdStzgm, //!< Instruction 'stzgm'.
402
+ kIdSub, //!< Instruction 'sub'.
403
+ kIdSubg, //!< Instruction 'subg'.
404
+ kIdSubp, //!< Instruction 'subp'.
405
+ kIdSubps, //!< Instruction 'subps'.
406
+ kIdSubs, //!< Instruction 'subs'.
407
+ kIdSvc, //!< Instruction 'svc'.
408
+ kIdSwp, //!< Instruction 'swp'.
409
+ kIdSwpa, //!< Instruction 'swpa'.
410
+ kIdSwpab, //!< Instruction 'swpab'.
411
+ kIdSwpah, //!< Instruction 'swpah'.
412
+ kIdSwpal, //!< Instruction 'swpal'.
413
+ kIdSwpalb, //!< Instruction 'swpalb'.
414
+ kIdSwpalh, //!< Instruction 'swpalh'.
415
+ kIdSwpb, //!< Instruction 'swpb'.
416
+ kIdSwph, //!< Instruction 'swph'.
417
+ kIdSwpl, //!< Instruction 'swpl'.
418
+ kIdSwplb, //!< Instruction 'swplb'.
419
+ kIdSwplh, //!< Instruction 'swplh'.
420
+ kIdSxtb, //!< Instruction 'sxtb'.
421
+ kIdSxth, //!< Instruction 'sxth'.
422
+ kIdSxtw, //!< Instruction 'sxtw'.
423
+ kIdSys, //!< Instruction 'sys'.
424
+ kIdTlbi, //!< Instruction 'tlbi'.
425
+ kIdTst, //!< Instruction 'tst'.
426
+ kIdTbnz, //!< Instruction 'tbnz'.
427
+ kIdTbz, //!< Instruction 'tbz'.
428
+ kIdUbfiz, //!< Instruction 'ubfiz'.
429
+ kIdUbfm, //!< Instruction 'ubfm'.
430
+ kIdUbfx, //!< Instruction 'ubfx'.
431
+ kIdUdf, //!< Instruction 'udf'.
432
+ kIdUdiv, //!< Instruction 'udiv'.
433
+ kIdUmaddl, //!< Instruction 'umaddl'.
434
+ kIdUmnegl, //!< Instruction 'umnegl'.
435
+ kIdUmull, //!< Instruction 'umull'.
436
+ kIdUmulh, //!< Instruction 'umulh'.
437
+ kIdUmsubl, //!< Instruction 'umsubl'.
438
+ kIdUxtb, //!< Instruction 'uxtb'.
439
+ kIdUxth, //!< Instruction 'uxth'.
440
+ kIdWfe, //!< Instruction 'wfe'.
441
+ kIdWfi, //!< Instruction 'wfi'.
442
+ kIdXaflag, //!< Instruction 'xaflag'.
443
+ kIdXpacd, //!< Instruction 'xpacd'.
444
+ kIdXpaci, //!< Instruction 'xpaci'.
445
+ kIdXpaclri, //!< Instruction 'xpaclri'.
446
+ kIdYield, //!< Instruction 'yield'.
447
+ kIdAbs_v, //!< Instruction 'abs' {ASIMD}.
448
+ kIdAdd_v, //!< Instruction 'add' {ASIMD}.
449
+ kIdAddhn_v, //!< Instruction 'addhn' {ASIMD}.
450
+ kIdAddhn2_v, //!< Instruction 'addhn2' {ASIMD}.
451
+ kIdAddp_v, //!< Instruction 'addp' {ASIMD}.
452
+ kIdAddv_v, //!< Instruction 'addv' {ASIMD}.
453
+ kIdAesd_v, //!< Instruction 'aesd' {ASIMD}.
454
+ kIdAese_v, //!< Instruction 'aese' {ASIMD}.
455
+ kIdAesimc_v, //!< Instruction 'aesimc' {ASIMD}.
456
+ kIdAesmc_v, //!< Instruction 'aesmc' {ASIMD}.
457
+ kIdAnd_v, //!< Instruction 'and' {ASIMD}.
458
+ kIdBcax_v, //!< Instruction 'bcax' {ASIMD}.
459
+ kIdBfcvt_v, //!< Instruction 'bfcvt' {ASIMD}.
460
+ kIdBfcvtn_v, //!< Instruction 'bfcvtn' {ASIMD}.
461
+ kIdBfcvtn2_v, //!< Instruction 'bfcvtn2' {ASIMD}.
462
+ kIdBfdot_v, //!< Instruction 'bfdot' {ASIMD}.
463
+ kIdBfmlalb_v, //!< Instruction 'bfmlalb' {ASIMD}.
464
+ kIdBfmlalt_v, //!< Instruction 'bfmlalt' {ASIMD}.
465
+ kIdBfmmla_v, //!< Instruction 'bfmmla' {ASIMD}.
466
+ kIdBic_v, //!< Instruction 'bic' {ASIMD}.
467
+ kIdBif_v, //!< Instruction 'bif' {ASIMD}.
468
+ kIdBit_v, //!< Instruction 'bit' {ASIMD}.
469
+ kIdBsl_v, //!< Instruction 'bsl' {ASIMD}.
470
+ kIdCls_v, //!< Instruction 'cls' {ASIMD}.
471
+ kIdClz_v, //!< Instruction 'clz' {ASIMD}.
472
+ kIdCmeq_v, //!< Instruction 'cmeq' {ASIMD}.
473
+ kIdCmge_v, //!< Instruction 'cmge' {ASIMD}.
474
+ kIdCmgt_v, //!< Instruction 'cmgt' {ASIMD}.
475
+ kIdCmhi_v, //!< Instruction 'cmhi' {ASIMD}.
476
+ kIdCmhs_v, //!< Instruction 'cmhs' {ASIMD}.
477
+ kIdCmle_v, //!< Instruction 'cmle' {ASIMD}.
478
+ kIdCmlt_v, //!< Instruction 'cmlt' {ASIMD}.
479
+ kIdCmtst_v, //!< Instruction 'cmtst' {ASIMD}.
480
+ kIdCnt_v, //!< Instruction 'cnt' {ASIMD}.
481
+ kIdDup_v, //!< Instruction 'dup' {ASIMD}.
482
+ kIdEor_v, //!< Instruction 'eor' {ASIMD}.
483
+ kIdEor3_v, //!< Instruction 'eor3' {ASIMD}.
484
+ kIdExt_v, //!< Instruction 'ext' {ASIMD}.
485
+ kIdFabd_v, //!< Instruction 'fabd' {ASIMD}.
486
+ kIdFabs_v, //!< Instruction 'fabs' {ASIMD}.
487
+ kIdFacge_v, //!< Instruction 'facge' {ASIMD}.
488
+ kIdFacgt_v, //!< Instruction 'facgt' {ASIMD}.
489
+ kIdFadd_v, //!< Instruction 'fadd' {ASIMD}.
490
+ kIdFaddp_v, //!< Instruction 'faddp' {ASIMD}.
491
+ kIdFcadd_v, //!< Instruction 'fcadd' {ASIMD}.
492
+ kIdFccmp_v, //!< Instruction 'fccmp' {ASIMD}.
493
+ kIdFccmpe_v, //!< Instruction 'fccmpe' {ASIMD}.
494
+ kIdFcmeq_v, //!< Instruction 'fcmeq' {ASIMD}.
495
+ kIdFcmge_v, //!< Instruction 'fcmge' {ASIMD}.
496
+ kIdFcmgt_v, //!< Instruction 'fcmgt' {ASIMD}.
497
+ kIdFcmla_v, //!< Instruction 'fcmla' {ASIMD}.
498
+ kIdFcmle_v, //!< Instruction 'fcmle' {ASIMD}.
499
+ kIdFcmlt_v, //!< Instruction 'fcmlt' {ASIMD}.
500
+ kIdFcmp_v, //!< Instruction 'fcmp' {ASIMD}.
501
+ kIdFcmpe_v, //!< Instruction 'fcmpe' {ASIMD}.
502
+ kIdFcsel_v, //!< Instruction 'fcsel' {ASIMD}.
503
+ kIdFcvt_v, //!< Instruction 'fcvt' {ASIMD}.
504
+ kIdFcvtas_v, //!< Instruction 'fcvtas' {ASIMD}.
505
+ kIdFcvtau_v, //!< Instruction 'fcvtau' {ASIMD}.
506
+ kIdFcvtl_v, //!< Instruction 'fcvtl' {ASIMD}.
507
+ kIdFcvtl2_v, //!< Instruction 'fcvtl2' {ASIMD}.
508
+ kIdFcvtms_v, //!< Instruction 'fcvtms' {ASIMD}.
509
+ kIdFcvtmu_v, //!< Instruction 'fcvtmu' {ASIMD}.
510
+ kIdFcvtn_v, //!< Instruction 'fcvtn' {ASIMD}.
511
+ kIdFcvtn2_v, //!< Instruction 'fcvtn2' {ASIMD}.
512
+ kIdFcvtns_v, //!< Instruction 'fcvtns' {ASIMD}.
513
+ kIdFcvtnu_v, //!< Instruction 'fcvtnu' {ASIMD}.
514
+ kIdFcvtps_v, //!< Instruction 'fcvtps' {ASIMD}.
515
+ kIdFcvtpu_v, //!< Instruction 'fcvtpu' {ASIMD}.
516
+ kIdFcvtxn_v, //!< Instruction 'fcvtxn' {ASIMD}.
517
+ kIdFcvtxn2_v, //!< Instruction 'fcvtxn2' {ASIMD}.
518
+ kIdFcvtzs_v, //!< Instruction 'fcvtzs' {ASIMD}.
519
+ kIdFcvtzu_v, //!< Instruction 'fcvtzu' {ASIMD}.
520
+ kIdFdiv_v, //!< Instruction 'fdiv' {ASIMD}.
521
+ kIdFjcvtzs_v, //!< Instruction 'fjcvtzs' {ASIMD}.
522
+ kIdFmadd_v, //!< Instruction 'fmadd' {ASIMD}.
523
+ kIdFmax_v, //!< Instruction 'fmax' {ASIMD}.
524
+ kIdFmaxnm_v, //!< Instruction 'fmaxnm' {ASIMD}.
525
+ kIdFmaxnmp_v, //!< Instruction 'fmaxnmp' {ASIMD}.
526
+ kIdFmaxnmv_v, //!< Instruction 'fmaxnmv' {ASIMD}.
527
+ kIdFmaxp_v, //!< Instruction 'fmaxp' {ASIMD}.
528
+ kIdFmaxv_v, //!< Instruction 'fmaxv' {ASIMD}.
529
+ kIdFmin_v, //!< Instruction 'fmin' {ASIMD}.
530
+ kIdFminnm_v, //!< Instruction 'fminnm' {ASIMD}.
531
+ kIdFminnmp_v, //!< Instruction 'fminnmp' {ASIMD}.
532
+ kIdFminnmv_v, //!< Instruction 'fminnmv' {ASIMD}.
533
+ kIdFminp_v, //!< Instruction 'fminp' {ASIMD}.
534
+ kIdFminv_v, //!< Instruction 'fminv' {ASIMD}.
535
+ kIdFmla_v, //!< Instruction 'fmla' {ASIMD}.
536
+ kIdFmlal_v, //!< Instruction 'fmlal' {ASIMD}.
537
+ kIdFmlal2_v, //!< Instruction 'fmlal2' {ASIMD}.
538
+ kIdFmls_v, //!< Instruction 'fmls' {ASIMD}.
539
+ kIdFmlsl_v, //!< Instruction 'fmlsl' {ASIMD}.
540
+ kIdFmlsl2_v, //!< Instruction 'fmlsl2' {ASIMD}.
541
+ kIdFmov_v, //!< Instruction 'fmov' {ASIMD}.
542
+ kIdFmsub_v, //!< Instruction 'fmsub' {ASIMD}.
543
+ kIdFmul_v, //!< Instruction 'fmul' {ASIMD}.
544
+ kIdFmulx_v, //!< Instruction 'fmulx' {ASIMD}.
545
+ kIdFneg_v, //!< Instruction 'fneg' {ASIMD}.
546
+ kIdFnmadd_v, //!< Instruction 'fnmadd' {ASIMD}.
547
+ kIdFnmsub_v, //!< Instruction 'fnmsub' {ASIMD}.
548
+ kIdFnmul_v, //!< Instruction 'fnmul' {ASIMD}.
549
+ kIdFrecpe_v, //!< Instruction 'frecpe' {ASIMD}.
550
+ kIdFrecps_v, //!< Instruction 'frecps' {ASIMD}.
551
+ kIdFrecpx_v, //!< Instruction 'frecpx' {ASIMD}.
552
+ kIdFrint32x_v, //!< Instruction 'frint32x' {ASIMD}.
553
+ kIdFrint32z_v, //!< Instruction 'frint32z' {ASIMD}.
554
+ kIdFrint64x_v, //!< Instruction 'frint64x' {ASIMD}.
555
+ kIdFrint64z_v, //!< Instruction 'frint64z' {ASIMD}.
556
+ kIdFrinta_v, //!< Instruction 'frinta' {ASIMD}.
557
+ kIdFrinti_v, //!< Instruction 'frinti' {ASIMD}.
558
+ kIdFrintm_v, //!< Instruction 'frintm' {ASIMD}.
559
+ kIdFrintn_v, //!< Instruction 'frintn' {ASIMD}.
560
+ kIdFrintp_v, //!< Instruction 'frintp' {ASIMD}.
561
+ kIdFrintx_v, //!< Instruction 'frintx' {ASIMD}.
562
+ kIdFrintz_v, //!< Instruction 'frintz' {ASIMD}.
563
+ kIdFrsqrte_v, //!< Instruction 'frsqrte' {ASIMD}.
564
+ kIdFrsqrts_v, //!< Instruction 'frsqrts' {ASIMD}.
565
+ kIdFsqrt_v, //!< Instruction 'fsqrt' {ASIMD}.
566
+ kIdFsub_v, //!< Instruction 'fsub' {ASIMD}.
567
+ kIdIns_v, //!< Instruction 'ins' {ASIMD}.
568
+ kIdLd1_v, //!< Instruction 'ld1' {ASIMD}.
569
+ kIdLd1r_v, //!< Instruction 'ld1r' {ASIMD}.
570
+ kIdLd2_v, //!< Instruction 'ld2' {ASIMD}.
571
+ kIdLd2r_v, //!< Instruction 'ld2r' {ASIMD}.
572
+ kIdLd3_v, //!< Instruction 'ld3' {ASIMD}.
573
+ kIdLd3r_v, //!< Instruction 'ld3r' {ASIMD}.
574
+ kIdLd4_v, //!< Instruction 'ld4' {ASIMD}.
575
+ kIdLd4r_v, //!< Instruction 'ld4r' {ASIMD}.
576
+ kIdLdnp_v, //!< Instruction 'ldnp' {ASIMD}.
577
+ kIdLdp_v, //!< Instruction 'ldp' {ASIMD}.
578
+ kIdLdr_v, //!< Instruction 'ldr' {ASIMD}.
579
+ kIdLdur_v, //!< Instruction 'ldur' {ASIMD}.
580
+ kIdMla_v, //!< Instruction 'mla' {ASIMD}.
581
+ kIdMls_v, //!< Instruction 'mls' {ASIMD}.
582
+ kIdMov_v, //!< Instruction 'mov' {ASIMD}.
583
+ kIdMovi_v, //!< Instruction 'movi' {ASIMD}.
584
+ kIdMul_v, //!< Instruction 'mul' {ASIMD}.
585
+ kIdMvn_v, //!< Instruction 'mvn' {ASIMD}.
586
+ kIdMvni_v, //!< Instruction 'mvni' {ASIMD}.
587
+ kIdNeg_v, //!< Instruction 'neg' {ASIMD}.
588
+ kIdNot_v, //!< Instruction 'not' {ASIMD}.
589
+ kIdOrn_v, //!< Instruction 'orn' {ASIMD}.
590
+ kIdOrr_v, //!< Instruction 'orr' {ASIMD}.
591
+ kIdPmul_v, //!< Instruction 'pmul' {ASIMD}.
592
+ kIdPmull_v, //!< Instruction 'pmull' {ASIMD}.
593
+ kIdPmull2_v, //!< Instruction 'pmull2' {ASIMD}.
594
+ kIdRaddhn_v, //!< Instruction 'raddhn' {ASIMD}.
595
+ kIdRaddhn2_v, //!< Instruction 'raddhn2' {ASIMD}.
596
+ kIdRax1_v, //!< Instruction 'rax1' {ASIMD}.
597
+ kIdRbit_v, //!< Instruction 'rbit' {ASIMD}.
598
+ kIdRev16_v, //!< Instruction 'rev16' {ASIMD}.
599
+ kIdRev32_v, //!< Instruction 'rev32' {ASIMD}.
600
+ kIdRev64_v, //!< Instruction 'rev64' {ASIMD}.
601
+ kIdRshrn_v, //!< Instruction 'rshrn' {ASIMD}.
602
+ kIdRshrn2_v, //!< Instruction 'rshrn2' {ASIMD}.
603
+ kIdRsubhn_v, //!< Instruction 'rsubhn' {ASIMD}.
604
+ kIdRsubhn2_v, //!< Instruction 'rsubhn2' {ASIMD}.
605
+ kIdSaba_v, //!< Instruction 'saba' {ASIMD}.
606
+ kIdSabal_v, //!< Instruction 'sabal' {ASIMD}.
607
+ kIdSabal2_v, //!< Instruction 'sabal2' {ASIMD}.
608
+ kIdSabd_v, //!< Instruction 'sabd' {ASIMD}.
609
+ kIdSabdl_v, //!< Instruction 'sabdl' {ASIMD}.
610
+ kIdSabdl2_v, //!< Instruction 'sabdl2' {ASIMD}.
611
+ kIdSadalp_v, //!< Instruction 'sadalp' {ASIMD}.
612
+ kIdSaddl_v, //!< Instruction 'saddl' {ASIMD}.
613
+ kIdSaddl2_v, //!< Instruction 'saddl2' {ASIMD}.
614
+ kIdSaddlp_v, //!< Instruction 'saddlp' {ASIMD}.
615
+ kIdSaddlv_v, //!< Instruction 'saddlv' {ASIMD}.
616
+ kIdSaddw_v, //!< Instruction 'saddw' {ASIMD}.
617
+ kIdSaddw2_v, //!< Instruction 'saddw2' {ASIMD}.
618
+ kIdScvtf_v, //!< Instruction 'scvtf' {ASIMD}.
619
+ kIdSdot_v, //!< Instruction 'sdot' {ASIMD}.
620
+ kIdSha1c_v, //!< Instruction 'sha1c' {ASIMD}.
621
+ kIdSha1h_v, //!< Instruction 'sha1h' {ASIMD}.
622
+ kIdSha1m_v, //!< Instruction 'sha1m' {ASIMD}.
623
+ kIdSha1p_v, //!< Instruction 'sha1p' {ASIMD}.
624
+ kIdSha1su0_v, //!< Instruction 'sha1su0' {ASIMD}.
625
+ kIdSha1su1_v, //!< Instruction 'sha1su1' {ASIMD}.
626
+ kIdSha256h_v, //!< Instruction 'sha256h' {ASIMD}.
627
+ kIdSha256h2_v, //!< Instruction 'sha256h2' {ASIMD}.
628
+ kIdSha256su0_v, //!< Instruction 'sha256su0' {ASIMD}.
629
+ kIdSha256su1_v, //!< Instruction 'sha256su1' {ASIMD}.
630
+ kIdSha512h_v, //!< Instruction 'sha512h' {ASIMD}.
631
+ kIdSha512h2_v, //!< Instruction 'sha512h2' {ASIMD}.
632
+ kIdSha512su0_v, //!< Instruction 'sha512su0' {ASIMD}.
633
+ kIdSha512su1_v, //!< Instruction 'sha512su1' {ASIMD}.
634
+ kIdShadd_v, //!< Instruction 'shadd' {ASIMD}.
635
+ kIdShl_v, //!< Instruction 'shl' {ASIMD}.
636
+ kIdShll_v, //!< Instruction 'shll' {ASIMD}.
637
+ kIdShll2_v, //!< Instruction 'shll2' {ASIMD}.
638
+ kIdShrn_v, //!< Instruction 'shrn' {ASIMD}.
639
+ kIdShrn2_v, //!< Instruction 'shrn2' {ASIMD}.
640
+ kIdShsub_v, //!< Instruction 'shsub' {ASIMD}.
641
+ kIdSli_v, //!< Instruction 'sli' {ASIMD}.
642
+ kIdSm3partw1_v, //!< Instruction 'sm3partw1' {ASIMD}.
643
+ kIdSm3partw2_v, //!< Instruction 'sm3partw2' {ASIMD}.
644
+ kIdSm3ss1_v, //!< Instruction 'sm3ss1' {ASIMD}.
645
+ kIdSm3tt1a_v, //!< Instruction 'sm3tt1a' {ASIMD}.
646
+ kIdSm3tt1b_v, //!< Instruction 'sm3tt1b' {ASIMD}.
647
+ kIdSm3tt2a_v, //!< Instruction 'sm3tt2a' {ASIMD}.
648
+ kIdSm3tt2b_v, //!< Instruction 'sm3tt2b' {ASIMD}.
649
+ kIdSm4e_v, //!< Instruction 'sm4e' {ASIMD}.
650
+ kIdSm4ekey_v, //!< Instruction 'sm4ekey' {ASIMD}.
651
+ kIdSmax_v, //!< Instruction 'smax' {ASIMD}.
652
+ kIdSmaxp_v, //!< Instruction 'smaxp' {ASIMD}.
653
+ kIdSmaxv_v, //!< Instruction 'smaxv' {ASIMD}.
654
+ kIdSmin_v, //!< Instruction 'smin' {ASIMD}.
655
+ kIdSminp_v, //!< Instruction 'sminp' {ASIMD}.
656
+ kIdSminv_v, //!< Instruction 'sminv' {ASIMD}.
657
+ kIdSmlal_v, //!< Instruction 'smlal' {ASIMD}.
658
+ kIdSmlal2_v, //!< Instruction 'smlal2' {ASIMD}.
659
+ kIdSmlsl_v, //!< Instruction 'smlsl' {ASIMD}.
660
+ kIdSmlsl2_v, //!< Instruction 'smlsl2' {ASIMD}.
661
+ kIdSmmla_v, //!< Instruction 'smmla' {ASIMD}.
662
+ kIdSmov_v, //!< Instruction 'smov' {ASIMD}.
663
+ kIdSmull_v, //!< Instruction 'smull' {ASIMD}.
664
+ kIdSmull2_v, //!< Instruction 'smull2' {ASIMD}.
665
+ kIdSqabs_v, //!< Instruction 'sqabs' {ASIMD}.
666
+ kIdSqadd_v, //!< Instruction 'sqadd' {ASIMD}.
667
+ kIdSqdmlal_v, //!< Instruction 'sqdmlal' {ASIMD}.
668
+ kIdSqdmlal2_v, //!< Instruction 'sqdmlal2' {ASIMD}.
669
+ kIdSqdmlsl_v, //!< Instruction 'sqdmlsl' {ASIMD}.
670
+ kIdSqdmlsl2_v, //!< Instruction 'sqdmlsl2' {ASIMD}.
671
+ kIdSqdmulh_v, //!< Instruction 'sqdmulh' {ASIMD}.
672
+ kIdSqdmull_v, //!< Instruction 'sqdmull' {ASIMD}.
673
+ kIdSqdmull2_v, //!< Instruction 'sqdmull2' {ASIMD}.
674
+ kIdSqneg_v, //!< Instruction 'sqneg' {ASIMD}.
675
+ kIdSqrdmlah_v, //!< Instruction 'sqrdmlah' {ASIMD}.
676
+ kIdSqrdmlsh_v, //!< Instruction 'sqrdmlsh' {ASIMD}.
677
+ kIdSqrdmulh_v, //!< Instruction 'sqrdmulh' {ASIMD}.
678
+ kIdSqrshl_v, //!< Instruction 'sqrshl' {ASIMD}.
679
+ kIdSqrshrn_v, //!< Instruction 'sqrshrn' {ASIMD}.
680
+ kIdSqrshrn2_v, //!< Instruction 'sqrshrn2' {ASIMD}.
681
+ kIdSqrshrun_v, //!< Instruction 'sqrshrun' {ASIMD}.
682
+ kIdSqrshrun2_v, //!< Instruction 'sqrshrun2' {ASIMD}.
683
+ kIdSqshl_v, //!< Instruction 'sqshl' {ASIMD}.
684
+ kIdSqshlu_v, //!< Instruction 'sqshlu' {ASIMD}.
685
+ kIdSqshrn_v, //!< Instruction 'sqshrn' {ASIMD}.
686
+ kIdSqshrn2_v, //!< Instruction 'sqshrn2' {ASIMD}.
687
+ kIdSqshrun_v, //!< Instruction 'sqshrun' {ASIMD}.
688
+ kIdSqshrun2_v, //!< Instruction 'sqshrun2' {ASIMD}.
689
+ kIdSqsub_v, //!< Instruction 'sqsub' {ASIMD}.
690
+ kIdSqxtn_v, //!< Instruction 'sqxtn' {ASIMD}.
691
+ kIdSqxtn2_v, //!< Instruction 'sqxtn2' {ASIMD}.
692
+ kIdSqxtun_v, //!< Instruction 'sqxtun' {ASIMD}.
693
+ kIdSqxtun2_v, //!< Instruction 'sqxtun2' {ASIMD}.
694
+ kIdSrhadd_v, //!< Instruction 'srhadd' {ASIMD}.
695
+ kIdSri_v, //!< Instruction 'sri' {ASIMD}.
696
+ kIdSrshl_v, //!< Instruction 'srshl' {ASIMD}.
697
+ kIdSrshr_v, //!< Instruction 'srshr' {ASIMD}.
698
+ kIdSrsra_v, //!< Instruction 'srsra' {ASIMD}.
699
+ kIdSshl_v, //!< Instruction 'sshl' {ASIMD}.
700
+ kIdSshll_v, //!< Instruction 'sshll' {ASIMD}.
701
+ kIdSshll2_v, //!< Instruction 'sshll2' {ASIMD}.
702
+ kIdSshr_v, //!< Instruction 'sshr' {ASIMD}.
703
+ kIdSsra_v, //!< Instruction 'ssra' {ASIMD}.
704
+ kIdSsubl_v, //!< Instruction 'ssubl' {ASIMD}.
705
+ kIdSsubl2_v, //!< Instruction 'ssubl2' {ASIMD}.
706
+ kIdSsubw_v, //!< Instruction 'ssubw' {ASIMD}.
707
+ kIdSsubw2_v, //!< Instruction 'ssubw2' {ASIMD}.
708
+ kIdSt1_v, //!< Instruction 'st1' {ASIMD}.
709
+ kIdSt2_v, //!< Instruction 'st2' {ASIMD}.
710
+ kIdSt3_v, //!< Instruction 'st3' {ASIMD}.
711
+ kIdSt4_v, //!< Instruction 'st4' {ASIMD}.
712
+ kIdStnp_v, //!< Instruction 'stnp' {ASIMD}.
713
+ kIdStp_v, //!< Instruction 'stp' {ASIMD}.
714
+ kIdStr_v, //!< Instruction 'str' {ASIMD}.
715
+ kIdStur_v, //!< Instruction 'stur' {ASIMD}.
716
+ kIdSub_v, //!< Instruction 'sub' {ASIMD}.
717
+ kIdSubhn_v, //!< Instruction 'subhn' {ASIMD}.
718
+ kIdSubhn2_v, //!< Instruction 'subhn2' {ASIMD}.
719
+ kIdSudot_v, //!< Instruction 'sudot' {ASIMD}.
720
+ kIdSuqadd_v, //!< Instruction 'suqadd' {ASIMD}.
721
+ kIdSxtl_v, //!< Instruction 'sxtl' {ASIMD}.
722
+ kIdSxtl2_v, //!< Instruction 'sxtl2' {ASIMD}.
723
+ kIdTbl_v, //!< Instruction 'tbl' {ASIMD}.
724
+ kIdTbx_v, //!< Instruction 'tbx' {ASIMD}.
725
+ kIdTrn1_v, //!< Instruction 'trn1' {ASIMD}.
726
+ kIdTrn2_v, //!< Instruction 'trn2' {ASIMD}.
727
+ kIdUaba_v, //!< Instruction 'uaba' {ASIMD}.
728
+ kIdUabal_v, //!< Instruction 'uabal' {ASIMD}.
729
+ kIdUabal2_v, //!< Instruction 'uabal2' {ASIMD}.
730
+ kIdUabd_v, //!< Instruction 'uabd' {ASIMD}.
731
+ kIdUabdl_v, //!< Instruction 'uabdl' {ASIMD}.
732
+ kIdUabdl2_v, //!< Instruction 'uabdl2' {ASIMD}.
733
+ kIdUadalp_v, //!< Instruction 'uadalp' {ASIMD}.
734
+ kIdUaddl_v, //!< Instruction 'uaddl' {ASIMD}.
735
+ kIdUaddl2_v, //!< Instruction 'uaddl2' {ASIMD}.
736
+ kIdUaddlp_v, //!< Instruction 'uaddlp' {ASIMD}.
737
+ kIdUaddlv_v, //!< Instruction 'uaddlv' {ASIMD}.
738
+ kIdUaddw_v, //!< Instruction 'uaddw' {ASIMD}.
739
+ kIdUaddw2_v, //!< Instruction 'uaddw2' {ASIMD}.
740
+ kIdUcvtf_v, //!< Instruction 'ucvtf' {ASIMD}.
741
+ kIdUdot_v, //!< Instruction 'udot' {ASIMD}.
742
+ kIdUhadd_v, //!< Instruction 'uhadd' {ASIMD}.
743
+ kIdUhsub_v, //!< Instruction 'uhsub' {ASIMD}.
744
+ kIdUmax_v, //!< Instruction 'umax' {ASIMD}.
745
+ kIdUmaxp_v, //!< Instruction 'umaxp' {ASIMD}.
746
+ kIdUmaxv_v, //!< Instruction 'umaxv' {ASIMD}.
747
+ kIdUmin_v, //!< Instruction 'umin' {ASIMD}.
748
+ kIdUminp_v, //!< Instruction 'uminp' {ASIMD}.
749
+ kIdUminv_v, //!< Instruction 'uminv' {ASIMD}.
750
+ kIdUmlal_v, //!< Instruction 'umlal' {ASIMD}.
751
+ kIdUmlal2_v, //!< Instruction 'umlal2' {ASIMD}.
752
+ kIdUmlsl_v, //!< Instruction 'umlsl' {ASIMD}.
753
+ kIdUmlsl2_v, //!< Instruction 'umlsl2' {ASIMD}.
754
+ kIdUmmla_v, //!< Instruction 'ummla' {ASIMD}.
755
+ kIdUmov_v, //!< Instruction 'umov' {ASIMD}.
756
+ kIdUmull_v, //!< Instruction 'umull' {ASIMD}.
757
+ kIdUmull2_v, //!< Instruction 'umull2' {ASIMD}.
758
+ kIdUqadd_v, //!< Instruction 'uqadd' {ASIMD}.
759
+ kIdUqrshl_v, //!< Instruction 'uqrshl' {ASIMD}.
760
+ kIdUqrshrn_v, //!< Instruction 'uqrshrn' {ASIMD}.
761
+ kIdUqrshrn2_v, //!< Instruction 'uqrshrn2' {ASIMD}.
762
+ kIdUqshl_v, //!< Instruction 'uqshl' {ASIMD}.
763
+ kIdUqshrn_v, //!< Instruction 'uqshrn' {ASIMD}.
764
+ kIdUqshrn2_v, //!< Instruction 'uqshrn2' {ASIMD}.
765
+ kIdUqsub_v, //!< Instruction 'uqsub' {ASIMD}.
766
+ kIdUqxtn_v, //!< Instruction 'uqxtn' {ASIMD}.
767
+ kIdUqxtn2_v, //!< Instruction 'uqxtn2' {ASIMD}.
768
+ kIdUrecpe_v, //!< Instruction 'urecpe' {ASIMD}.
769
+ kIdUrhadd_v, //!< Instruction 'urhadd' {ASIMD}.
770
+ kIdUrshl_v, //!< Instruction 'urshl' {ASIMD}.
771
+ kIdUrshr_v, //!< Instruction 'urshr' {ASIMD}.
772
+ kIdUrsqrte_v, //!< Instruction 'ursqrte' {ASIMD}.
773
+ kIdUrsra_v, //!< Instruction 'ursra' {ASIMD}.
774
+ kIdUsdot_v, //!< Instruction 'usdot' {ASIMD}.
775
+ kIdUshl_v, //!< Instruction 'ushl' {ASIMD}.
776
+ kIdUshll_v, //!< Instruction 'ushll' {ASIMD}.
777
+ kIdUshll2_v, //!< Instruction 'ushll2' {ASIMD}.
778
+ kIdUshr_v, //!< Instruction 'ushr' {ASIMD}.
779
+ kIdUsmmla_v, //!< Instruction 'usmmla' {ASIMD}.
780
+ kIdUsqadd_v, //!< Instruction 'usqadd' {ASIMD}.
781
+ kIdUsra_v, //!< Instruction 'usra' {ASIMD}.
782
+ kIdUsubl_v, //!< Instruction 'usubl' {ASIMD}.
783
+ kIdUsubl2_v, //!< Instruction 'usubl2' {ASIMD}.
784
+ kIdUsubw_v, //!< Instruction 'usubw' {ASIMD}.
785
+ kIdUsubw2_v, //!< Instruction 'usubw2' {ASIMD}.
786
+ kIdUxtl_v, //!< Instruction 'uxtl' {ASIMD}.
787
+ kIdUxtl2_v, //!< Instruction 'uxtl2' {ASIMD}.
788
+ kIdUzp1_v, //!< Instruction 'uzp1' {ASIMD}.
789
+ kIdUzp2_v, //!< Instruction 'uzp2' {ASIMD}.
790
+ kIdXar_v, //!< Instruction 'xar' {ASIMD}.
791
+ kIdXtn_v, //!< Instruction 'xtn' {ASIMD}.
792
+ kIdXtn2_v, //!< Instruction 'xtn2' {ASIMD}.
793
+ kIdZip1_v, //!< Instruction 'zip1' {ASIMD}.
794
+ kIdZip2_v, //!< Instruction 'zip2' {ASIMD}.
795
+ _kIdCount
796
+ // ${InstId:End}
797
+ };
798
+
799
+ //! Tests whether the `instId` is defined (counts also Inst::kIdNone, which must be zero).
800
+ static inline bool isDefinedId(InstId instId) noexcept { return (instId & uint32_t(InstIdParts::kRealId)) < _kIdCount; }
801
+ };
802
+
803
+ namespace Predicate {
804
+
805
+ //! Address translate options (AT).
806
+ namespace AT {
807
+ static inline constexpr uint32_t encode(uint32_t op1, uint32_t cRn, uint32_t cRm, uint32_t op2) noexcept {
808
+ return (op1 << 11) | (cRn << 7) | (cRm << 3) | (op2 << 0);
809
+ }
810
+
811
+ enum Value : uint32_t {
812
+ kS1E1R = encode(0b000, 0b0111, 0b1000, 0b000),
813
+ kS1E2R = encode(0b100, 0b0111, 0b1000, 0b000),
814
+ kS1E3R = encode(0b110, 0b0111, 0b1000, 0b000),
815
+ kS1E1W = encode(0b000, 0b0111, 0b1000, 0b001),
816
+ kS1E2W = encode(0b100, 0b0111, 0b1000, 0b001),
817
+ kS1E3W = encode(0b110, 0b0111, 0b1000, 0b001),
818
+ kS1E0R = encode(0b000, 0b0111, 0b1000, 0b010),
819
+ kS1E0W = encode(0b000, 0b0111, 0b1000, 0b011),
820
+ kS12E1R = encode(0b100, 0b0111, 0b1000, 0b100),
821
+ kS12E1W = encode(0b100, 0b0111, 0b1000, 0b101),
822
+ kS12E0R = encode(0b100, 0b0111, 0b1000, 0b110),
823
+ kS12E0W = encode(0b100, 0b0111, 0b1000, 0b111),
824
+ kS1E1RP = encode(0b000, 0b0111, 0b1001, 0b000),
825
+ kS1E1WP = encode(0b000, 0b0111, 0b1001, 0b001)
826
+ };
827
+ }
828
+
829
+ //! Data barrier options (DMB/DSB).
830
+ namespace DB {
831
+ //! Data barrier immediate values.
832
+ enum Value : uint32_t {
833
+ //! Waits only for loads to complete, and only applies to the outer shareable domain.
834
+ kOSHLD = 0x01u,
835
+ //! Waits only for stores to complete, and only applies to the outer shareable domain.
836
+ kOSHST = 0x02u,
837
+ //! Only applies to the outer shareable domain.
838
+ kOSH = 0x03u,
839
+
840
+ //! Waits only for loads to complete and only applies out to the point of unification.
841
+ kNSHLD = 0x05u,
842
+ //! Waits only for stores to complete and only applies out to the point of unification.
843
+ kNSHST = 0x06u,
844
+ //! Only applies out to the point of unification.
845
+ kNSH = 0x07u,
846
+
847
+ //! Waits only for loads to complete, and only applies to the inner shareable domain.
848
+ kISHLD = 0x09u,
849
+ //! Waits only for stores to complete, and only applies to the inner shareable domain.
850
+ kISHST = 0x0Au,
851
+ //! Only applies to the inner shareable domain.
852
+ kISH = 0x0Bu,
853
+
854
+ //! Waits only for loads to complete.
855
+ kLD = 0x0Du,
856
+ //! Waits only for stores to complete.
857
+ kST = 0x0Eu,
858
+ //! Full system memory barrier operation.
859
+ kSY = 0x0Fu
860
+ };
861
+ }
862
+
863
+ //! Data cache maintenance options.
864
+ namespace DC {
865
+ static inline constexpr uint32_t encode(uint32_t op1, uint32_t cRn, uint32_t cRm, uint32_t op2) noexcept {
866
+ return (op1 << 11) | (cRn << 7) | (cRm << 3) | (op2 << 0);
867
+ }
868
+
869
+ //! Data cache maintenance immediate values.
870
+ enum Value : uint32_t {
871
+ kZVA = encode(0b011, 0b0111, 0b0100, 0b001),
872
+ kIVAC = encode(0b000, 0b0111, 0b0110, 0b001),
873
+ kISW = encode(0b000, 0b0111, 0b0110, 0b010),
874
+ kCVAC = encode(0b011, 0b0111, 0b1010, 0b001),
875
+ kCSW = encode(0b000, 0b0111, 0b1010, 0b010),
876
+ kCVAU = encode(0b011, 0b0111, 0b1011, 0b001),
877
+ kCIVAC = encode(0b011, 0b0111, 0b1110, 0b001),
878
+ kCISW = encode(0b000, 0b0111, 0b1110, 0b010),
879
+ kCVAP = encode(0b011, 0b0111, 0b1100, 0b001),
880
+ kCVADP = encode(0b011, 0b0111, 0b1101, 0b001),
881
+ kIGVAC = encode(0b000, 0b0111, 0b0110, 0b011),
882
+ kIGSW = encode(0b000, 0b0111, 0b0110, 0b100),
883
+ kCGSW = encode(0b000, 0b0111, 0b1010, 0b100),
884
+ kCIGSW = encode(0b000, 0b0111, 0b1110, 0b100),
885
+ kCGVAC = encode(0b011, 0b0111, 0b1010, 0b011),
886
+ kCGVAP = encode(0b011, 0b0111, 0b1100, 0b011),
887
+ kCGVADP = encode(0b011, 0b0111, 0b1101, 0b011),
888
+ kCIGVAC = encode(0b011, 0b0111, 0b1110, 0b011),
889
+ kGVA = encode(0b011, 0b0111, 0b0100, 0b011),
890
+ kIGDVAC = encode(0b000, 0b0111, 0b0110, 0b101),
891
+ kIGDSW = encode(0b000, 0b0111, 0b0110, 0b110),
892
+ kCGDSW = encode(0b000, 0b0111, 0b1010, 0b110),
893
+ kCIGDSW = encode(0b000, 0b0111, 0b1110, 0b110),
894
+ kCGDVAC = encode(0b011, 0b0111, 0b1010, 0b101),
895
+ kCGDVAP = encode(0b011, 0b0111, 0b1100, 0b101),
896
+ kCGDVADP = encode(0b011, 0b0111, 0b1101, 0b101),
897
+ kCIGDVAC = encode(0b011, 0b0111, 0b1110, 0b101),
898
+ kGZVA = encode(0b011, 0b0111, 0b0100, 0b100)
899
+ };
900
+ }
901
+
902
+ //! Instruction cache maintenance options.
903
+ namespace IC {
904
+ static inline constexpr uint32_t encode(uint32_t op1, uint32_t cRn, uint32_t cRm, uint32_t op2) noexcept {
905
+ return (op1 << 11) | (cRn << 7) | (cRm << 3) | (op2 << 0);
906
+ }
907
+
908
+ //! Instruction cache maintenance immediate values.
909
+ enum Value : uint32_t {
910
+ kIALLUIS = encode(0b000, 0b0111, 0b0001, 0b000),
911
+ kIALLU = encode(0b000, 0b0111, 0b0101, 0b000),
912
+ kIVAU = encode(0b011, 0b0111, 0b0101, 0b001)
913
+ };
914
+ }
915
+
916
+ //! Instruction-fetch barrier options.
917
+ namespace ISB {
918
+ //! Instruction-fetch barrier immediate values.
919
+ enum Value : uint32_t {
920
+ kSY = 0xF
921
+ };
922
+ }
923
+
924
+ //! Prefetch options.
925
+ namespace PRFOp {
926
+ //! Prefetch immediate values.
927
+ enum Value : uint32_t {
928
+ kPLDL1KEEP = 0x00,
929
+ kPLDL1STRM = 0x01,
930
+ kPLDL2KEEP = 0x02,
931
+ kPLDL2STRM = 0x03,
932
+ kPLDL3KEEP = 0x04,
933
+ kPLDL3STRM = 0x05,
934
+ kPLIL1KEEP = 0x08,
935
+ kPLIL1STRM = 0x09,
936
+ kPLIL2KEEP = 0x0A,
937
+ kPLIL2STRM = 0x0B,
938
+ kPLIL3KEEP = 0x0C,
939
+ kPLIL3STRM = 0x0D,
940
+ kPSTL1KEEP = 0x10,
941
+ kPSTL1STRM = 0x11,
942
+ kPSTL2KEEP = 0x12,
943
+ kPSTL2STRM = 0x13,
944
+ kPSTL3KEEP = 0x14,
945
+ kPSTL3STRM = 0x15
946
+ };
947
+ }
948
+
949
+ //! PSB instruction options.
950
+ namespace PSB {
951
+ //! PSB immediate values.
952
+ enum Value : uint32_t {
953
+ kCSYNC = 0x11u
954
+ };
955
+ }
956
+
957
+ namespace TLBI {
958
+ static inline constexpr uint32_t encode(uint32_t op1, uint32_t cRn, uint32_t cRm, uint32_t op2) noexcept {
959
+ return (op1 << 11) | (cRn << 7) | (cRm << 3) | (op2 << 0);
960
+ }
961
+
962
+ enum Value : uint32_t {
963
+ kIPAS2E1IS = encode(0b100, 0b1000, 0b0000, 0b001),
964
+ kIPAS2LE1IS = encode(0b100, 0b1000, 0b0000, 0b101),
965
+ kVMALLE1IS = encode(0b000, 0b1000, 0b0011, 0b000),
966
+ kALLE2IS = encode(0b100, 0b1000, 0b0011, 0b000),
967
+ kALLE3IS = encode(0b110, 0b1000, 0b0011, 0b000),
968
+ kVAE1IS = encode(0b000, 0b1000, 0b0011, 0b001),
969
+ kVAE2IS = encode(0b100, 0b1000, 0b0011, 0b001),
970
+ kVAE3IS = encode(0b110, 0b1000, 0b0011, 0b001),
971
+ kASIDE1IS = encode(0b000, 0b1000, 0b0011, 0b010),
972
+ kVAAE1IS = encode(0b000, 0b1000, 0b0011, 0b011),
973
+ kALLE1IS = encode(0b100, 0b1000, 0b0011, 0b100),
974
+ kVALE1IS = encode(0b000, 0b1000, 0b0011, 0b101),
975
+ kVALE2IS = encode(0b100, 0b1000, 0b0011, 0b101),
976
+ kVALE3IS = encode(0b110, 0b1000, 0b0011, 0b101),
977
+ kVMALLS12E1IS = encode(0b100, 0b1000, 0b0011, 0b110),
978
+ kVAALE1IS = encode(0b000, 0b1000, 0b0011, 0b111),
979
+ kIPAS2E1 = encode(0b100, 0b1000, 0b0100, 0b001),
980
+ kIPAS2LE1 = encode(0b100, 0b1000, 0b0100, 0b101),
981
+ kVMALLE1 = encode(0b000, 0b1000, 0b0111, 0b000),
982
+ kALLE2 = encode(0b100, 0b1000, 0b0111, 0b000),
983
+ kALLE3 = encode(0b110, 0b1000, 0b0111, 0b000),
984
+ kVAE1 = encode(0b000, 0b1000, 0b0111, 0b001),
985
+ kVAE2 = encode(0b100, 0b1000, 0b0111, 0b001),
986
+ kVAE3 = encode(0b110, 0b1000, 0b0111, 0b001),
987
+ kASIDE1 = encode(0b000, 0b1000, 0b0111, 0b010),
988
+ kVAAE1 = encode(0b000, 0b1000, 0b0111, 0b011),
989
+ kALLE1 = encode(0b100, 0b1000, 0b0111, 0b100),
990
+ kVALE1 = encode(0b000, 0b1000, 0b0111, 0b101),
991
+ kVALE2 = encode(0b100, 0b1000, 0b0111, 0b101),
992
+ kVALE3 = encode(0b110, 0b1000, 0b0111, 0b101),
993
+ kVMALLS12E1 = encode(0b100, 0b1000, 0b0111, 0b110),
994
+ kVAALE1 = encode(0b000, 0b1000, 0b0111, 0b111),
995
+
996
+ kVMALLE1OS = encode(0b000, 0b1000, 0b0001, 0b000),
997
+ kVAE1OS = encode(0b000, 0b1000, 0b0001, 0b001),
998
+ kASIDE1OS = encode(0b000, 0b1000, 0b0001, 0b010),
999
+ kVAAE1OS = encode(0b000, 0b1000, 0b0001, 0b011),
1000
+ kVALE1OS = encode(0b000, 0b1000, 0b0001, 0b101),
1001
+ kVAALE1OS = encode(0b000, 0b1000, 0b0001, 0b111),
1002
+ kIPAS2E1OS = encode(0b100, 0b1000, 0b0100, 0b000),
1003
+ kIPAS2LE1OS = encode(0b100, 0b1000, 0b0100, 0b100),
1004
+ kVAE2OS = encode(0b100, 0b1000, 0b0001, 0b001),
1005
+ kVALE2OS = encode(0b100, 0b1000, 0b0001, 0b101),
1006
+ kVMALLS12E1OS = encode(0b100, 0b1000, 0b0001, 0b110),
1007
+ kVAE3OS = encode(0b110, 0b1000, 0b0001, 0b001),
1008
+ kVALE3OS = encode(0b110, 0b1000, 0b0001, 0b101),
1009
+ kALLE2OS = encode(0b100, 0b1000, 0b0001, 0b000),
1010
+ kALLE1OS = encode(0b100, 0b1000, 0b0001, 0b100),
1011
+ kALLE3OS = encode(0b110, 0b1000, 0b0001, 0b000),
1012
+
1013
+ kRVAE1 = encode(0b000, 0b1000, 0b0110, 0b001),
1014
+ kRVAAE1 = encode(0b000, 0b1000, 0b0110, 0b011),
1015
+ kRVALE1 = encode(0b000, 0b1000, 0b0110, 0b101),
1016
+ kRVAALE1 = encode(0b000, 0b1000, 0b0110, 0b111),
1017
+ kRVAE1IS = encode(0b000, 0b1000, 0b0010, 0b001),
1018
+ kRVAAE1IS = encode(0b000, 0b1000, 0b0010, 0b011),
1019
+ kRVALE1IS = encode(0b000, 0b1000, 0b0010, 0b101),
1020
+ kRVAALE1IS = encode(0b000, 0b1000, 0b0010, 0b111),
1021
+ kRVAE1OS = encode(0b000, 0b1000, 0b0101, 0b001),
1022
+ kRVAAE1OS = encode(0b000, 0b1000, 0b0101, 0b011),
1023
+ kRVALE1OS = encode(0b000, 0b1000, 0b0101, 0b101),
1024
+ kRVAALE1OS = encode(0b000, 0b1000, 0b0101, 0b111),
1025
+ kRIPAS2E1IS = encode(0b100, 0b1000, 0b0000, 0b010),
1026
+ kRIPAS2LE1IS = encode(0b100, 0b1000, 0b0000, 0b110),
1027
+ kRIPAS2E1 = encode(0b100, 0b1000, 0b0100, 0b010),
1028
+ kRIPAS2LE1 = encode(0b100, 0b1000, 0b0100, 0b110),
1029
+ kRIPAS2E1OS = encode(0b100, 0b1000, 0b0100, 0b011),
1030
+ kRIPAS2LE1OS = encode(0b100, 0b1000, 0b0100, 0b111),
1031
+ kRVAE2 = encode(0b100, 0b1000, 0b0110, 0b001),
1032
+ kRVALE2 = encode(0b100, 0b1000, 0b0110, 0b101),
1033
+ kRVAE2IS = encode(0b100, 0b1000, 0b0010, 0b001),
1034
+ kRVALE2IS = encode(0b100, 0b1000, 0b0010, 0b101),
1035
+ kRVAE2OS = encode(0b100, 0b1000, 0b0101, 0b001),
1036
+ kRVALE2OS = encode(0b100, 0b1000, 0b0101, 0b101),
1037
+ kRVAE3 = encode(0b110, 0b1000, 0b0110, 0b001),
1038
+ kRVALE3 = encode(0b110, 0b1000, 0b0110, 0b101),
1039
+ kRVAE3IS = encode(0b110, 0b1000, 0b0010, 0b001),
1040
+ kRVALE3IS = encode(0b110, 0b1000, 0b0010, 0b101),
1041
+ kRVAE3OS = encode(0b110, 0b1000, 0b0101, 0b001),
1042
+ kRVALE3OS = encode(0b110, 0b1000, 0b0101, 0b101),
1043
+ };
1044
+ }
1045
+
1046
+ //! Trace synchronization barrier options.
1047
+ namespace TSB {
1048
+ //! Trace synchronization immediate values.
1049
+ enum Value : uint32_t {
1050
+ kCSYNC = 0
1051
+ };
1052
+ }
1053
+
1054
+ //! Processor state access through MSR.
1055
+ namespace PState {
1056
+ //! Encodes a pstate from `op0` and `op1`.
1057
+ static inline constexpr uint32_t encode(uint32_t op0, uint32_t op1) noexcept {
1058
+ return (op0 << 3) | (op1 << 0);
1059
+ }
1060
+
1061
+ //! Processor state access immediates.
1062
+ enum Value : uint32_t {
1063
+ kSPSel = encode(0b000, 0b101),
1064
+ kDAIFSet = encode(0b011, 0b110),
1065
+ kDAIFClr = encode(0b011, 0b111),
1066
+ kPAN = encode(0b000, 0b100),
1067
+ kUAO = encode(0b000, 0b011),
1068
+ kDIT = encode(0b011, 0b010),
1069
+ kSSBS = encode(0b011, 0b001),
1070
+ kTCO = encode(0b011, 0b100)
1071
+ };
1072
+ };
1073
+
1074
+ //! System register identifiers and utilities (MSR/MRS).
1075
+ namespace SysReg {
1076
+ //! System register fields.
1077
+ struct Fields {
1078
+ uint8_t op0;
1079
+ uint8_t op1;
1080
+ uint8_t cRn;
1081
+ uint8_t cRm;
1082
+ uint8_t op2;
1083
+ };
1084
+
1085
+ //! Encodes a system register from `op0`, `op1`, `cRn`, `cRm`, and `op2` fields.
1086
+ static inline constexpr uint32_t encode(uint32_t op0, uint32_t op1, uint32_t cRn, uint32_t cRm, uint32_t op2) noexcept {
1087
+ return (op0 << 14) | (op1 << 11) | (cRn << 7) | (cRm << 3) | (op2 << 0);
1088
+ }
1089
+
1090
+ //! Encodes a system register from `fields`.
1091
+ static inline constexpr uint32_t encode(const Fields& fields) noexcept {
1092
+ return encode(fields.op0, fields.op1, fields.cRn, fields.cRm, fields.op2);
1093
+ }
1094
+
1095
+ //! Decodes a system register to \ref Fields.
1096
+ static inline constexpr Fields decode(uint32_t id) noexcept {
1097
+ return Fields {
1098
+ uint8_t((id >> 14) & 0x3u),
1099
+ uint8_t((id >> 11) & 0x7u),
1100
+ uint8_t((id >> 7) & 0xFu),
1101
+ uint8_t((id >> 3) & 0xFu),
1102
+ uint8_t((id >> 0) & 0x7u)
1103
+ };
1104
+ }
1105
+
1106
+ //! System register identifiers.
1107
+ enum Id : uint32_t {
1108
+ kACTLR_EL1 = encode(0b11, 0b000, 0b0001, 0b0000, 0b001), // RW
1109
+ kACTLR_EL2 = encode(0b11, 0b100, 0b0001, 0b0000, 0b001), // RW
1110
+ kACTLR_EL3 = encode(0b11, 0b110, 0b0001, 0b0000, 0b001), // RW
1111
+ kAFSR0_EL1 = encode(0b11, 0b000, 0b0101, 0b0001, 0b000), // RW
1112
+ kAFSR0_EL12 = encode(0b11, 0b101, 0b0101, 0b0001, 0b000), // RW
1113
+ kAFSR0_EL2 = encode(0b11, 0b100, 0b0101, 0b0001, 0b000), // RW
1114
+ kAFSR0_EL3 = encode(0b11, 0b110, 0b0101, 0b0001, 0b000), // RW
1115
+ kAFSR1_EL1 = encode(0b11, 0b000, 0b0101, 0b0001, 0b001), // RW
1116
+ kAFSR1_EL12 = encode(0b11, 0b101, 0b0101, 0b0001, 0b001), // RW
1117
+ kAFSR1_EL2 = encode(0b11, 0b100, 0b0101, 0b0001, 0b001), // RW
1118
+ kAFSR1_EL3 = encode(0b11, 0b110, 0b0101, 0b0001, 0b001), // RW
1119
+ kAIDR_EL1 = encode(0b11, 0b001, 0b0000, 0b0000, 0b111), // RO
1120
+ kAMAIR_EL1 = encode(0b11, 0b000, 0b1010, 0b0011, 0b000), // RW
1121
+ kAMAIR_EL12 = encode(0b11, 0b101, 0b1010, 0b0011, 0b000), // RW
1122
+ kAMAIR_EL2 = encode(0b11, 0b100, 0b1010, 0b0011, 0b000), // RW
1123
+ kAMAIR_EL3 = encode(0b11, 0b110, 0b1010, 0b0011, 0b000), // RW
1124
+ kAMCFGR_EL0 = encode(0b11, 0b011, 0b1101, 0b0010, 0b001), // RO
1125
+ kAMCGCR_EL0 = encode(0b11, 0b011, 0b1101, 0b0010, 0b010), // RO
1126
+ kAMCNTENCLR0_EL0 = encode(0b11, 0b011, 0b1101, 0b0010, 0b100), // RW
1127
+ kAMCNTENCLR1_EL0 = encode(0b11, 0b011, 0b1101, 0b0011, 0b000), // RW
1128
+ kAMCNTENSET0_EL0 = encode(0b11, 0b011, 0b1101, 0b0010, 0b101), // RW
1129
+ kAMCNTENSET1_EL0 = encode(0b11, 0b011, 0b1101, 0b0011, 0b001), // RW
1130
+ kAMCR_EL0 = encode(0b11, 0b011, 0b1101, 0b0010, 0b000), // RW
1131
+ kAMEVCNTR00_EL0 = encode(0b11, 0b011, 0b1101, 0b0100, 0b000), // RW
1132
+ kAMEVCNTR01_EL0 = encode(0b11, 0b011, 0b1101, 0b0100, 0b001), // RW
1133
+ kAMEVCNTR02_EL0 = encode(0b11, 0b011, 0b1101, 0b0100, 0b010), // RW
1134
+ kAMEVCNTR03_EL0 = encode(0b11, 0b011, 0b1101, 0b0100, 0b011), // RW
1135
+ kAMEVCNTR10_EL0 = encode(0b11, 0b011, 0b1101, 0b1100, 0b000), // RW
1136
+ kAMEVCNTR110_EL0 = encode(0b11, 0b011, 0b1101, 0b1101, 0b010), // RW
1137
+ kAMEVCNTR111_EL0 = encode(0b11, 0b011, 0b1101, 0b1101, 0b011), // RW
1138
+ kAMEVCNTR112_EL0 = encode(0b11, 0b011, 0b1101, 0b1101, 0b100), // RW
1139
+ kAMEVCNTR113_EL0 = encode(0b11, 0b011, 0b1101, 0b1101, 0b101), // RW
1140
+ kAMEVCNTR114_EL0 = encode(0b11, 0b011, 0b1101, 0b1101, 0b110), // RW
1141
+ kAMEVCNTR115_EL0 = encode(0b11, 0b011, 0b1101, 0b1101, 0b111), // RW
1142
+ kAMEVCNTR11_EL0 = encode(0b11, 0b011, 0b1101, 0b1100, 0b001), // RW
1143
+ kAMEVCNTR12_EL0 = encode(0b11, 0b011, 0b1101, 0b1100, 0b010), // RW
1144
+ kAMEVCNTR13_EL0 = encode(0b11, 0b011, 0b1101, 0b1100, 0b011), // RW
1145
+ kAMEVCNTR14_EL0 = encode(0b11, 0b011, 0b1101, 0b1100, 0b100), // RW
1146
+ kAMEVCNTR15_EL0 = encode(0b11, 0b011, 0b1101, 0b1100, 0b101), // RW
1147
+ kAMEVCNTR16_EL0 = encode(0b11, 0b011, 0b1101, 0b1100, 0b110), // RW
1148
+ kAMEVCNTR17_EL0 = encode(0b11, 0b011, 0b1101, 0b1100, 0b111), // RW
1149
+ kAMEVCNTR18_EL0 = encode(0b11, 0b011, 0b1101, 0b1101, 0b000), // RW
1150
+ kAMEVCNTR19_EL0 = encode(0b11, 0b011, 0b1101, 0b1101, 0b001), // RW
1151
+ kAMEVTYPER00_EL0 = encode(0b11, 0b011, 0b1101, 0b0110, 0b000), // RO
1152
+ kAMEVTYPER01_EL0 = encode(0b11, 0b011, 0b1101, 0b0110, 0b001), // RO
1153
+ kAMEVTYPER02_EL0 = encode(0b11, 0b011, 0b1101, 0b0110, 0b010), // RO
1154
+ kAMEVTYPER03_EL0 = encode(0b11, 0b011, 0b1101, 0b0110, 0b011), // RO
1155
+ kAMEVTYPER10_EL0 = encode(0b11, 0b011, 0b1101, 0b1110, 0b000), // RW
1156
+ kAMEVTYPER110_EL0 = encode(0b11, 0b011, 0b1101, 0b1111, 0b010), // RW
1157
+ kAMEVTYPER111_EL0 = encode(0b11, 0b011, 0b1101, 0b1111, 0b011), // RW
1158
+ kAMEVTYPER112_EL0 = encode(0b11, 0b011, 0b1101, 0b1111, 0b100), // RW
1159
+ kAMEVTYPER113_EL0 = encode(0b11, 0b011, 0b1101, 0b1111, 0b101), // RW
1160
+ kAMEVTYPER114_EL0 = encode(0b11, 0b011, 0b1101, 0b1111, 0b110), // RW
1161
+ kAMEVTYPER115_EL0 = encode(0b11, 0b011, 0b1101, 0b1111, 0b111), // RW
1162
+ kAMEVTYPER11_EL0 = encode(0b11, 0b011, 0b1101, 0b1110, 0b001), // RW
1163
+ kAMEVTYPER12_EL0 = encode(0b11, 0b011, 0b1101, 0b1110, 0b010), // RW
1164
+ kAMEVTYPER13_EL0 = encode(0b11, 0b011, 0b1101, 0b1110, 0b011), // RW
1165
+ kAMEVTYPER14_EL0 = encode(0b11, 0b011, 0b1101, 0b1110, 0b100), // RW
1166
+ kAMEVTYPER15_EL0 = encode(0b11, 0b011, 0b1101, 0b1110, 0b101), // RW
1167
+ kAMEVTYPER16_EL0 = encode(0b11, 0b011, 0b1101, 0b1110, 0b110), // RW
1168
+ kAMEVTYPER17_EL0 = encode(0b11, 0b011, 0b1101, 0b1110, 0b111), // RW
1169
+ kAMEVTYPER18_EL0 = encode(0b11, 0b011, 0b1101, 0b1111, 0b000), // RW
1170
+ kAMEVTYPER19_EL0 = encode(0b11, 0b011, 0b1101, 0b1111, 0b001), // RW
1171
+ kAMUSERENR_EL0 = encode(0b11, 0b011, 0b1101, 0b0010, 0b011), // RW
1172
+ kAPDAKeyHi_EL1 = encode(0b11, 0b000, 0b0010, 0b0010, 0b001), // RW
1173
+ kAPDAKeyLo_EL1 = encode(0b11, 0b000, 0b0010, 0b0010, 0b000), // RW
1174
+ kAPDBKeyHi_EL1 = encode(0b11, 0b000, 0b0010, 0b0010, 0b011), // RW
1175
+ kAPDBKeyLo_EL1 = encode(0b11, 0b000, 0b0010, 0b0010, 0b010), // RW
1176
+ kAPGAKeyHi_EL1 = encode(0b11, 0b000, 0b0010, 0b0011, 0b001), // RW
1177
+ kAPGAKeyLo_EL1 = encode(0b11, 0b000, 0b0010, 0b0011, 0b000), // RW
1178
+ kAPIAKeyHi_EL1 = encode(0b11, 0b000, 0b0010, 0b0001, 0b001), // RW
1179
+ kAPIAKeyLo_EL1 = encode(0b11, 0b000, 0b0010, 0b0001, 0b000), // RW
1180
+ kAPIBKeyHi_EL1 = encode(0b11, 0b000, 0b0010, 0b0001, 0b011), // RW
1181
+ kAPIBKeyLo_EL1 = encode(0b11, 0b000, 0b0010, 0b0001, 0b010), // RW
1182
+ kCCSIDR2_EL1 = encode(0b11, 0b001, 0b0000, 0b0000, 0b010), // RO
1183
+ kCCSIDR_EL1 = encode(0b11, 0b001, 0b0000, 0b0000, 0b000), // RO
1184
+ kCLIDR_EL1 = encode(0b11, 0b001, 0b0000, 0b0000, 0b001), // RO
1185
+ kCNTFRQ_EL0 = encode(0b11, 0b011, 0b1110, 0b0000, 0b000), // RW
1186
+ kCNTHCTL_EL2 = encode(0b11, 0b100, 0b1110, 0b0001, 0b000), // RW
1187
+ kCNTHPS_CTL_EL2 = encode(0b11, 0b100, 0b1110, 0b0101, 0b001), // RW
1188
+ kCNTHPS_CVAL_EL2 = encode(0b11, 0b100, 0b1110, 0b0101, 0b010), // RW
1189
+ kCNTHPS_TVAL_EL2 = encode(0b11, 0b100, 0b1110, 0b0101, 0b000), // RW
1190
+ kCNTHP_CTL_EL2 = encode(0b11, 0b100, 0b1110, 0b0010, 0b001), // RW
1191
+ kCNTHP_CVAL_EL2 = encode(0b11, 0b100, 0b1110, 0b0010, 0b010), // RW
1192
+ kCNTHP_TVAL_EL2 = encode(0b11, 0b100, 0b1110, 0b0010, 0b000), // RW
1193
+ kCNTHVS_CTL_EL2 = encode(0b11, 0b100, 0b1110, 0b0100, 0b001), // RW
1194
+ kCNTHVS_CVAL_EL2 = encode(0b11, 0b100, 0b1110, 0b0100, 0b010), // RW
1195
+ kCNTHVS_TVAL_EL2 = encode(0b11, 0b100, 0b1110, 0b0100, 0b000), // RW
1196
+ kCNTHV_CTL_EL2 = encode(0b11, 0b100, 0b1110, 0b0011, 0b001), // RW
1197
+ kCNTHV_CVAL_EL2 = encode(0b11, 0b100, 0b1110, 0b0011, 0b010), // RW
1198
+ kCNTHV_TVAL_EL2 = encode(0b11, 0b100, 0b1110, 0b0011, 0b000), // RW
1199
+ kCNTISCALE_EL2 = encode(0b11, 0b100, 0b1110, 0b0000, 0b101), // RW
1200
+ kCNTKCTL_EL1 = encode(0b11, 0b000, 0b1110, 0b0001, 0b000), // RW
1201
+ kCNTKCTL_EL12 = encode(0b11, 0b101, 0b1110, 0b0001, 0b000), // RW
1202
+ kCNTPCTSS_EL0 = encode(0b11, 0b011, 0b1110, 0b0000, 0b101), // RW
1203
+ kCNTPCT_EL0 = encode(0b11, 0b011, 0b1110, 0b0000, 0b001), // RO
1204
+ kCNTPOFF_EL2 = encode(0b11, 0b100, 0b1110, 0b0000, 0b110), // RW
1205
+ kCNTPS_CTL_EL1 = encode(0b11, 0b111, 0b1110, 0b0010, 0b001), // RW
1206
+ kCNTPS_CVAL_EL1 = encode(0b11, 0b111, 0b1110, 0b0010, 0b010), // RW
1207
+ kCNTPS_TVAL_EL1 = encode(0b11, 0b111, 0b1110, 0b0010, 0b000), // RW
1208
+ kCNTP_CTL_EL0 = encode(0b11, 0b011, 0b1110, 0b0010, 0b001), // RW
1209
+ kCNTP_CTL_EL02 = encode(0b11, 0b101, 0b1110, 0b0010, 0b001), // RW
1210
+ kCNTP_CVAL_EL0 = encode(0b11, 0b011, 0b1110, 0b0010, 0b010), // RW
1211
+ kCNTP_CVAL_EL02 = encode(0b11, 0b101, 0b1110, 0b0010, 0b010), // RW
1212
+ kCNTP_TVAL_EL0 = encode(0b11, 0b011, 0b1110, 0b0010, 0b000), // RW
1213
+ kCNTP_TVAL_EL02 = encode(0b11, 0b101, 0b1110, 0b0010, 0b000), // RW
1214
+ kCNTSCALE_EL2 = encode(0b11, 0b100, 0b1110, 0b0000, 0b100), // RW
1215
+ kCNTVCTSS_EL0 = encode(0b11, 0b011, 0b1110, 0b0000, 0b110), // RW
1216
+ kCNTVCT_EL0 = encode(0b11, 0b011, 0b1110, 0b0000, 0b010), // RO
1217
+ kCNTVFRQ_EL2 = encode(0b11, 0b100, 0b1110, 0b0000, 0b111), // RW
1218
+ kCNTVOFF_EL2 = encode(0b11, 0b100, 0b1110, 0b0000, 0b011), // RW
1219
+ kCNTV_CTL_EL0 = encode(0b11, 0b011, 0b1110, 0b0011, 0b001), // RW
1220
+ kCNTV_CTL_EL02 = encode(0b11, 0b101, 0b1110, 0b0011, 0b001), // RW
1221
+ kCNTV_CVAL_EL0 = encode(0b11, 0b011, 0b1110, 0b0011, 0b010), // RW
1222
+ kCNTV_CVAL_EL02 = encode(0b11, 0b101, 0b1110, 0b0011, 0b010), // RW
1223
+ kCNTV_TVAL_EL0 = encode(0b11, 0b011, 0b1110, 0b0011, 0b000), // RW
1224
+ kCNTV_TVAL_EL02 = encode(0b11, 0b101, 0b1110, 0b0011, 0b000), // RW
1225
+ kCONTEXTIDR_EL1 = encode(0b11, 0b000, 0b1101, 0b0000, 0b001), // RW
1226
+ kCONTEXTIDR_EL12 = encode(0b11, 0b101, 0b1101, 0b0000, 0b001), // RW
1227
+ kCONTEXTIDR_EL2 = encode(0b11, 0b100, 0b1101, 0b0000, 0b001), // RW
1228
+ kCPACR_EL1 = encode(0b11, 0b000, 0b0001, 0b0000, 0b010), // RW
1229
+ kCPACR_EL12 = encode(0b11, 0b101, 0b0001, 0b0000, 0b010), // RW
1230
+ kCPM_IOACC_CTL_EL3 = encode(0b11, 0b111, 0b1111, 0b0010, 0b000), // RW
1231
+ kCPTR_EL2 = encode(0b11, 0b100, 0b0001, 0b0001, 0b010), // RW
1232
+ kCPTR_EL3 = encode(0b11, 0b110, 0b0001, 0b0001, 0b010), // RW
1233
+ kCSSELR_EL1 = encode(0b11, 0b010, 0b0000, 0b0000, 0b000), // RW
1234
+ kCTR_EL0 = encode(0b11, 0b011, 0b0000, 0b0000, 0b001), // RO
1235
+ kCurrentEL = encode(0b11, 0b000, 0b0100, 0b0010, 0b010), // RO
1236
+ kDACR32_EL2 = encode(0b11, 0b100, 0b0011, 0b0000, 0b000), // RW
1237
+ kDAIF = encode(0b11, 0b011, 0b0100, 0b0010, 0b001), // RW
1238
+ kDBGAUTHSTATUS_EL1 = encode(0b10, 0b000, 0b0111, 0b1110, 0b110), // RO
1239
+ kDBGBCR0_EL1 = encode(0b10, 0b000, 0b0000, 0b0000, 0b101), // RW
1240
+ kDBGBCR10_EL1 = encode(0b10, 0b000, 0b0000, 0b1010, 0b101), // RW
1241
+ kDBGBCR11_EL1 = encode(0b10, 0b000, 0b0000, 0b1011, 0b101), // RW
1242
+ kDBGBCR12_EL1 = encode(0b10, 0b000, 0b0000, 0b1100, 0b101), // RW
1243
+ kDBGBCR13_EL1 = encode(0b10, 0b000, 0b0000, 0b1101, 0b101), // RW
1244
+ kDBGBCR14_EL1 = encode(0b10, 0b000, 0b0000, 0b1110, 0b101), // RW
1245
+ kDBGBCR15_EL1 = encode(0b10, 0b000, 0b0000, 0b1111, 0b101), // RW
1246
+ kDBGBCR1_EL1 = encode(0b10, 0b000, 0b0000, 0b0001, 0b101), // RW
1247
+ kDBGBCR2_EL1 = encode(0b10, 0b000, 0b0000, 0b0010, 0b101), // RW
1248
+ kDBGBCR3_EL1 = encode(0b10, 0b000, 0b0000, 0b0011, 0b101), // RW
1249
+ kDBGBCR4_EL1 = encode(0b10, 0b000, 0b0000, 0b0100, 0b101), // RW
1250
+ kDBGBCR5_EL1 = encode(0b10, 0b000, 0b0000, 0b0101, 0b101), // RW
1251
+ kDBGBCR6_EL1 = encode(0b10, 0b000, 0b0000, 0b0110, 0b101), // RW
1252
+ kDBGBCR7_EL1 = encode(0b10, 0b000, 0b0000, 0b0111, 0b101), // RW
1253
+ kDBGBCR8_EL1 = encode(0b10, 0b000, 0b0000, 0b1000, 0b101), // RW
1254
+ kDBGBCR9_EL1 = encode(0b10, 0b000, 0b0000, 0b1001, 0b101), // RW
1255
+ kDBGBVR0_EL1 = encode(0b10, 0b000, 0b0000, 0b0000, 0b100), // RW
1256
+ kDBGBVR10_EL1 = encode(0b10, 0b000, 0b0000, 0b1010, 0b100), // RW
1257
+ kDBGBVR11_EL1 = encode(0b10, 0b000, 0b0000, 0b1011, 0b100), // RW
1258
+ kDBGBVR12_EL1 = encode(0b10, 0b000, 0b0000, 0b1100, 0b100), // RW
1259
+ kDBGBVR13_EL1 = encode(0b10, 0b000, 0b0000, 0b1101, 0b100), // RW
1260
+ kDBGBVR14_EL1 = encode(0b10, 0b000, 0b0000, 0b1110, 0b100), // RW
1261
+ kDBGBVR15_EL1 = encode(0b10, 0b000, 0b0000, 0b1111, 0b100), // RW
1262
+ kDBGBVR1_EL1 = encode(0b10, 0b000, 0b0000, 0b0001, 0b100), // RW
1263
+ kDBGBVR2_EL1 = encode(0b10, 0b000, 0b0000, 0b0010, 0b100), // RW
1264
+ kDBGBVR3_EL1 = encode(0b10, 0b000, 0b0000, 0b0011, 0b100), // RW
1265
+ kDBGBVR4_EL1 = encode(0b10, 0b000, 0b0000, 0b0100, 0b100), // RW
1266
+ kDBGBVR5_EL1 = encode(0b10, 0b000, 0b0000, 0b0101, 0b100), // RW
1267
+ kDBGBVR6_EL1 = encode(0b10, 0b000, 0b0000, 0b0110, 0b100), // RW
1268
+ kDBGBVR7_EL1 = encode(0b10, 0b000, 0b0000, 0b0111, 0b100), // RW
1269
+ kDBGBVR8_EL1 = encode(0b10, 0b000, 0b0000, 0b1000, 0b100), // RW
1270
+ kDBGBVR9_EL1 = encode(0b10, 0b000, 0b0000, 0b1001, 0b100), // RW
1271
+ kDBGCLAIMCLR_EL1 = encode(0b10, 0b000, 0b0111, 0b1001, 0b110), // RW
1272
+ kDBGCLAIMSET_EL1 = encode(0b10, 0b000, 0b0111, 0b1000, 0b110), // RW
1273
+ kDBGDTRRX_EL0 = encode(0b10, 0b011, 0b0000, 0b0101, 0b000), // RO
1274
+ kDBGDTRTX_EL0 = encode(0b10, 0b011, 0b0000, 0b0101, 0b000), // WO
1275
+ kDBGDTR_EL0 = encode(0b10, 0b011, 0b0000, 0b0100, 0b000), // RW
1276
+ kDBGPRCR_EL1 = encode(0b10, 0b000, 0b0001, 0b0100, 0b100), // RW
1277
+ kDBGVCR32_EL2 = encode(0b10, 0b100, 0b0000, 0b0111, 0b000), // RW
1278
+ kDBGWCR0_EL1 = encode(0b10, 0b000, 0b0000, 0b0000, 0b111), // RW
1279
+ kDBGWCR10_EL1 = encode(0b10, 0b000, 0b0000, 0b1010, 0b111), // RW
1280
+ kDBGWCR11_EL1 = encode(0b10, 0b000, 0b0000, 0b1011, 0b111), // RW
1281
+ kDBGWCR12_EL1 = encode(0b10, 0b000, 0b0000, 0b1100, 0b111), // RW
1282
+ kDBGWCR13_EL1 = encode(0b10, 0b000, 0b0000, 0b1101, 0b111), // RW
1283
+ kDBGWCR14_EL1 = encode(0b10, 0b000, 0b0000, 0b1110, 0b111), // RW
1284
+ kDBGWCR15_EL1 = encode(0b10, 0b000, 0b0000, 0b1111, 0b111), // RW
1285
+ kDBGWCR1_EL1 = encode(0b10, 0b000, 0b0000, 0b0001, 0b111), // RW
1286
+ kDBGWCR2_EL1 = encode(0b10, 0b000, 0b0000, 0b0010, 0b111), // RW
1287
+ kDBGWCR3_EL1 = encode(0b10, 0b000, 0b0000, 0b0011, 0b111), // RW
1288
+ kDBGWCR4_EL1 = encode(0b10, 0b000, 0b0000, 0b0100, 0b111), // RW
1289
+ kDBGWCR5_EL1 = encode(0b10, 0b000, 0b0000, 0b0101, 0b111), // RW
1290
+ kDBGWCR6_EL1 = encode(0b10, 0b000, 0b0000, 0b0110, 0b111), // RW
1291
+ kDBGWCR7_EL1 = encode(0b10, 0b000, 0b0000, 0b0111, 0b111), // RW
1292
+ kDBGWCR8_EL1 = encode(0b10, 0b000, 0b0000, 0b1000, 0b111), // RW
1293
+ kDBGWCR9_EL1 = encode(0b10, 0b000, 0b0000, 0b1001, 0b111), // RW
1294
+ kDBGWVR0_EL1 = encode(0b10, 0b000, 0b0000, 0b0000, 0b110), // RW
1295
+ kDBGWVR10_EL1 = encode(0b10, 0b000, 0b0000, 0b1010, 0b110), // RW
1296
+ kDBGWVR11_EL1 = encode(0b10, 0b000, 0b0000, 0b1011, 0b110), // RW
1297
+ kDBGWVR12_EL1 = encode(0b10, 0b000, 0b0000, 0b1100, 0b110), // RW
1298
+ kDBGWVR13_EL1 = encode(0b10, 0b000, 0b0000, 0b1101, 0b110), // RW
1299
+ kDBGWVR14_EL1 = encode(0b10, 0b000, 0b0000, 0b1110, 0b110), // RW
1300
+ kDBGWVR15_EL1 = encode(0b10, 0b000, 0b0000, 0b1111, 0b110), // RW
1301
+ kDBGWVR1_EL1 = encode(0b10, 0b000, 0b0000, 0b0001, 0b110), // RW
1302
+ kDBGWVR2_EL1 = encode(0b10, 0b000, 0b0000, 0b0010, 0b110), // RW
1303
+ kDBGWVR3_EL1 = encode(0b10, 0b000, 0b0000, 0b0011, 0b110), // RW
1304
+ kDBGWVR4_EL1 = encode(0b10, 0b000, 0b0000, 0b0100, 0b110), // RW
1305
+ kDBGWVR5_EL1 = encode(0b10, 0b000, 0b0000, 0b0101, 0b110), // RW
1306
+ kDBGWVR6_EL1 = encode(0b10, 0b000, 0b0000, 0b0110, 0b110), // RW
1307
+ kDBGWVR7_EL1 = encode(0b10, 0b000, 0b0000, 0b0111, 0b110), // RW
1308
+ kDBGWVR8_EL1 = encode(0b10, 0b000, 0b0000, 0b1000, 0b110), // RW
1309
+ kDBGWVR9_EL1 = encode(0b10, 0b000, 0b0000, 0b1001, 0b110), // RW
1310
+ kDCZID_EL0 = encode(0b11, 0b011, 0b0000, 0b0000, 0b111), // RO
1311
+ kDISR_EL1 = encode(0b11, 0b000, 0b1100, 0b0001, 0b001), // RW
1312
+ kDIT = encode(0b11, 0b011, 0b0100, 0b0010, 0b101), // RW
1313
+ kDLR_EL0 = encode(0b11, 0b011, 0b0100, 0b0101, 0b001), // RW
1314
+ kDSPSR_EL0 = encode(0b11, 0b011, 0b0100, 0b0101, 0b000), // RW
1315
+ kELR_EL1 = encode(0b11, 0b000, 0b0100, 0b0000, 0b001), // RW
1316
+ kELR_EL12 = encode(0b11, 0b101, 0b0100, 0b0000, 0b001), // RW
1317
+ kELR_EL2 = encode(0b11, 0b100, 0b0100, 0b0000, 0b001), // RW
1318
+ kELR_EL3 = encode(0b11, 0b110, 0b0100, 0b0000, 0b001), // RW
1319
+ kERRIDR_EL1 = encode(0b11, 0b000, 0b0101, 0b0011, 0b000), // RO
1320
+ kERRSELR_EL1 = encode(0b11, 0b000, 0b0101, 0b0011, 0b001), // RW
1321
+ kERXADDR_EL1 = encode(0b11, 0b000, 0b0101, 0b0100, 0b011), // RW
1322
+ kERXCTLR_EL1 = encode(0b11, 0b000, 0b0101, 0b0100, 0b001), // RW
1323
+ kERXFR_EL1 = encode(0b11, 0b000, 0b0101, 0b0100, 0b000), // RO
1324
+ kERXMISC0_EL1 = encode(0b11, 0b000, 0b0101, 0b0101, 0b000), // RW
1325
+ kERXMISC1_EL1 = encode(0b11, 0b000, 0b0101, 0b0101, 0b001), // RW
1326
+ kERXMISC2_EL1 = encode(0b11, 0b000, 0b0101, 0b0101, 0b010), // RW
1327
+ kERXMISC3_EL1 = encode(0b11, 0b000, 0b0101, 0b0101, 0b011), // RW
1328
+ kERXPFGCDN_EL1 = encode(0b11, 0b000, 0b0101, 0b0100, 0b110), // RW
1329
+ kERXPFGCTL_EL1 = encode(0b11, 0b000, 0b0101, 0b0100, 0b101), // RW
1330
+ kERXPFGF_EL1 = encode(0b11, 0b000, 0b0101, 0b0100, 0b100), // RO
1331
+ kERXSTATUS_EL1 = encode(0b11, 0b000, 0b0101, 0b0100, 0b010), // RW
1332
+ kESR_EL1 = encode(0b11, 0b000, 0b0101, 0b0010, 0b000), // RW
1333
+ kESR_EL12 = encode(0b11, 0b101, 0b0101, 0b0010, 0b000), // RW
1334
+ kESR_EL2 = encode(0b11, 0b100, 0b0101, 0b0010, 0b000), // RW
1335
+ kESR_EL3 = encode(0b11, 0b110, 0b0101, 0b0010, 0b000), // RW
1336
+ kFAR_EL1 = encode(0b11, 0b000, 0b0110, 0b0000, 0b000), // RW
1337
+ kFAR_EL12 = encode(0b11, 0b101, 0b0110, 0b0000, 0b000), // RW
1338
+ kFAR_EL2 = encode(0b11, 0b100, 0b0110, 0b0000, 0b000), // RW
1339
+ kFAR_EL3 = encode(0b11, 0b110, 0b0110, 0b0000, 0b000), // RW
1340
+ kFPCR = encode(0b11, 0b011, 0b0100, 0b0100, 0b000), // RW
1341
+ kFPEXC32_EL2 = encode(0b11, 0b100, 0b0101, 0b0011, 0b000), // RW
1342
+ kFPSR = encode(0b11, 0b011, 0b0100, 0b0100, 0b001), // RW
1343
+ kGCR_EL1 = encode(0b11, 0b000, 0b0001, 0b0000, 0b110), // RW
1344
+ kGMID_EL1 = encode(0b11, 0b001, 0b0000, 0b0000, 0b100), // RO
1345
+ kHACR_EL2 = encode(0b11, 0b100, 0b0001, 0b0001, 0b111), // RW
1346
+ kHCR_EL2 = encode(0b11, 0b100, 0b0001, 0b0001, 0b000), // RW
1347
+ kHDFGRTR_EL2 = encode(0b11, 0b100, 0b0011, 0b0001, 0b100), // RW
1348
+ kHDFGWTR_EL2 = encode(0b11, 0b100, 0b0011, 0b0001, 0b101), // RW
1349
+ kHFGITR_EL2 = encode(0b11, 0b100, 0b0001, 0b0001, 0b110), // RW
1350
+ kHFGRTR_EL2 = encode(0b11, 0b100, 0b0001, 0b0001, 0b100), // RW
1351
+ kHFGWTR_EL2 = encode(0b11, 0b100, 0b0001, 0b0001, 0b101), // RW
1352
+ kHPFAR_EL2 = encode(0b11, 0b100, 0b0110, 0b0000, 0b100), // RW
1353
+ kHSTR_EL2 = encode(0b11, 0b100, 0b0001, 0b0001, 0b011), // RW
1354
+ kICC_AP0R0_EL1 = encode(0b11, 0b000, 0b1100, 0b1000, 0b100), // RW
1355
+ kICC_AP0R1_EL1 = encode(0b11, 0b000, 0b1100, 0b1000, 0b101), // RW
1356
+ kICC_AP0R2_EL1 = encode(0b11, 0b000, 0b1100, 0b1000, 0b110), // RW
1357
+ kICC_AP0R3_EL1 = encode(0b11, 0b000, 0b1100, 0b1000, 0b111), // RW
1358
+ kICC_AP1R0_EL1 = encode(0b11, 0b000, 0b1100, 0b1001, 0b000), // RW
1359
+ kICC_AP1R1_EL1 = encode(0b11, 0b000, 0b1100, 0b1001, 0b001), // RW
1360
+ kICC_AP1R2_EL1 = encode(0b11, 0b000, 0b1100, 0b1001, 0b010), // RW
1361
+ kICC_AP1R3_EL1 = encode(0b11, 0b000, 0b1100, 0b1001, 0b011), // RW
1362
+ kICC_ASGI1R_EL1 = encode(0b11, 0b000, 0b1100, 0b1011, 0b110), // WO
1363
+ kICC_BPR0_EL1 = encode(0b11, 0b000, 0b1100, 0b1000, 0b011), // RW
1364
+ kICC_BPR1_EL1 = encode(0b11, 0b000, 0b1100, 0b1100, 0b011), // RW
1365
+ kICC_CTLR_EL1 = encode(0b11, 0b000, 0b1100, 0b1100, 0b100), // RW
1366
+ kICC_CTLR_EL3 = encode(0b11, 0b110, 0b1100, 0b1100, 0b100), // RW
1367
+ kICC_DIR_EL1 = encode(0b11, 0b000, 0b1100, 0b1011, 0b001), // WO
1368
+ kICC_EOIR0_EL1 = encode(0b11, 0b000, 0b1100, 0b1000, 0b001), // WO
1369
+ kICC_EOIR1_EL1 = encode(0b11, 0b000, 0b1100, 0b1100, 0b001), // WO
1370
+ kICC_HPPIR0_EL1 = encode(0b11, 0b000, 0b1100, 0b1000, 0b010), // RO
1371
+ kICC_HPPIR1_EL1 = encode(0b11, 0b000, 0b1100, 0b1100, 0b010), // RO
1372
+ kICC_IAR0_EL1 = encode(0b11, 0b000, 0b1100, 0b1000, 0b000), // RO
1373
+ kICC_IAR1_EL1 = encode(0b11, 0b000, 0b1100, 0b1100, 0b000), // RO
1374
+ kICC_IGRPEN0_EL1 = encode(0b11, 0b000, 0b1100, 0b1100, 0b110), // RW
1375
+ kICC_IGRPEN1_EL1 = encode(0b11, 0b000, 0b1100, 0b1100, 0b111), // RW
1376
+ kICC_IGRPEN1_EL3 = encode(0b11, 0b110, 0b1100, 0b1100, 0b111), // RW
1377
+ kICC_PMR_EL1 = encode(0b11, 0b000, 0b0100, 0b0110, 0b000), // RW
1378
+ kICC_RPR_EL1 = encode(0b11, 0b000, 0b1100, 0b1011, 0b011), // RO
1379
+ kICC_SGI0R_EL1 = encode(0b11, 0b000, 0b1100, 0b1011, 0b111), // WO
1380
+ kICC_SGI1R_EL1 = encode(0b11, 0b000, 0b1100, 0b1011, 0b101), // WO
1381
+ kICC_SRE_EL1 = encode(0b11, 0b000, 0b1100, 0b1100, 0b101), // RW
1382
+ kICC_SRE_EL2 = encode(0b11, 0b100, 0b1100, 0b1001, 0b101), // RW
1383
+ kICC_SRE_EL3 = encode(0b11, 0b110, 0b1100, 0b1100, 0b101), // RW
1384
+ kICH_AP0R0_EL2 = encode(0b11, 0b100, 0b1100, 0b1000, 0b000), // RW
1385
+ kICH_AP0R1_EL2 = encode(0b11, 0b100, 0b1100, 0b1000, 0b001), // RW
1386
+ kICH_AP0R2_EL2 = encode(0b11, 0b100, 0b1100, 0b1000, 0b010), // RW
1387
+ kICH_AP0R3_EL2 = encode(0b11, 0b100, 0b1100, 0b1000, 0b011), // RW
1388
+ kICH_AP1R0_EL2 = encode(0b11, 0b100, 0b1100, 0b1001, 0b000), // RW
1389
+ kICH_AP1R1_EL2 = encode(0b11, 0b100, 0b1100, 0b1001, 0b001), // RW
1390
+ kICH_AP1R2_EL2 = encode(0b11, 0b100, 0b1100, 0b1001, 0b010), // RW
1391
+ kICH_AP1R3_EL2 = encode(0b11, 0b100, 0b1100, 0b1001, 0b011), // RW
1392
+ kICH_EISR_EL2 = encode(0b11, 0b100, 0b1100, 0b1011, 0b011), // RO
1393
+ kICH_ELRSR_EL2 = encode(0b11, 0b100, 0b1100, 0b1011, 0b101), // RO
1394
+ kICH_HCR_EL2 = encode(0b11, 0b100, 0b1100, 0b1011, 0b000), // RW
1395
+ kICH_LR0_EL2 = encode(0b11, 0b100, 0b1100, 0b1100, 0b000), // RW
1396
+ kICH_LR10_EL2 = encode(0b11, 0b100, 0b1100, 0b1101, 0b010), // RW
1397
+ kICH_LR11_EL2 = encode(0b11, 0b100, 0b1100, 0b1101, 0b011), // RW
1398
+ kICH_LR12_EL2 = encode(0b11, 0b100, 0b1100, 0b1101, 0b100), // RW
1399
+ kICH_LR13_EL2 = encode(0b11, 0b100, 0b1100, 0b1101, 0b101), // RW
1400
+ kICH_LR14_EL2 = encode(0b11, 0b100, 0b1100, 0b1101, 0b110), // RW
1401
+ kICH_LR15_EL2 = encode(0b11, 0b100, 0b1100, 0b1101, 0b111), // RW
1402
+ kICH_LR1_EL2 = encode(0b11, 0b100, 0b1100, 0b1100, 0b001), // RW
1403
+ kICH_LR2_EL2 = encode(0b11, 0b100, 0b1100, 0b1100, 0b010), // RW
1404
+ kICH_LR3_EL2 = encode(0b11, 0b100, 0b1100, 0b1100, 0b011), // RW
1405
+ kICH_LR4_EL2 = encode(0b11, 0b100, 0b1100, 0b1100, 0b100), // RW
1406
+ kICH_LR5_EL2 = encode(0b11, 0b100, 0b1100, 0b1100, 0b101), // RW
1407
+ kICH_LR6_EL2 = encode(0b11, 0b100, 0b1100, 0b1100, 0b110), // RW
1408
+ kICH_LR7_EL2 = encode(0b11, 0b100, 0b1100, 0b1100, 0b111), // RW
1409
+ kICH_LR8_EL2 = encode(0b11, 0b100, 0b1100, 0b1101, 0b000), // RW
1410
+ kICH_LR9_EL2 = encode(0b11, 0b100, 0b1100, 0b1101, 0b001), // RW
1411
+ kICH_MISR_EL2 = encode(0b11, 0b100, 0b1100, 0b1011, 0b010), // RO
1412
+ kICH_VMCR_EL2 = encode(0b11, 0b100, 0b1100, 0b1011, 0b111), // RW
1413
+ kICH_VTR_EL2 = encode(0b11, 0b100, 0b1100, 0b1011, 0b001), // RO
1414
+ kID_AA64AFR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0101, 0b100), // RO
1415
+ kID_AA64AFR1_EL1 = encode(0b11, 0b000, 0b0000, 0b0101, 0b101), // RO
1416
+ kID_AA64DFR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0101, 0b000), // RO
1417
+ kID_AA64DFR1_EL1 = encode(0b11, 0b000, 0b0000, 0b0101, 0b001), // RO
1418
+ kID_AA64ISAR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0110, 0b000), // RO
1419
+ kID_AA64ISAR1_EL1 = encode(0b11, 0b000, 0b0000, 0b0110, 0b001), // RO
1420
+ kID_AA64MMFR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0111, 0b000), // RO
1421
+ kID_AA64MMFR1_EL1 = encode(0b11, 0b000, 0b0000, 0b0111, 0b001), // RO
1422
+ kID_AA64MMFR2_EL1 = encode(0b11, 0b000, 0b0000, 0b0111, 0b010), // RO
1423
+ kID_AA64PFR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0100, 0b000), // RO
1424
+ kID_AA64PFR1_EL1 = encode(0b11, 0b000, 0b0000, 0b0100, 0b001), // RO
1425
+ kID_AA64ZFR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0100, 0b100), // RO
1426
+ kID_AFR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0001, 0b011), // RO
1427
+ kID_DFR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0001, 0b010), // RO
1428
+ kID_ISAR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0010, 0b000), // RO
1429
+ kID_ISAR1_EL1 = encode(0b11, 0b000, 0b0000, 0b0010, 0b001), // RO
1430
+ kID_ISAR2_EL1 = encode(0b11, 0b000, 0b0000, 0b0010, 0b010), // RO
1431
+ kID_ISAR3_EL1 = encode(0b11, 0b000, 0b0000, 0b0010, 0b011), // RO
1432
+ kID_ISAR4_EL1 = encode(0b11, 0b000, 0b0000, 0b0010, 0b100), // RO
1433
+ kID_ISAR5_EL1 = encode(0b11, 0b000, 0b0000, 0b0010, 0b101), // RO
1434
+ kID_ISAR6_EL1 = encode(0b11, 0b000, 0b0000, 0b0010, 0b111), // RO
1435
+ kID_MMFR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0001, 0b100), // RO
1436
+ kID_MMFR1_EL1 = encode(0b11, 0b000, 0b0000, 0b0001, 0b101), // RO
1437
+ kID_MMFR2_EL1 = encode(0b11, 0b000, 0b0000, 0b0001, 0b110), // RO
1438
+ kID_MMFR3_EL1 = encode(0b11, 0b000, 0b0000, 0b0001, 0b111), // RO
1439
+ kID_MMFR4_EL1 = encode(0b11, 0b000, 0b0000, 0b0010, 0b110), // RO
1440
+ kID_MMFR5_EL1 = encode(0b11, 0b000, 0b0000, 0b0011, 0b110), // RO
1441
+ kID_PFR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0001, 0b000), // RO
1442
+ kID_PFR1_EL1 = encode(0b11, 0b000, 0b0000, 0b0001, 0b001), // RO
1443
+ kID_PFR2_EL1 = encode(0b11, 0b000, 0b0000, 0b0011, 0b100), // RO
1444
+ kIFSR32_EL2 = encode(0b11, 0b100, 0b0101, 0b0000, 0b001), // RW
1445
+ kISR_EL1 = encode(0b11, 0b000, 0b1100, 0b0001, 0b000), // RO
1446
+ kLORC_EL1 = encode(0b11, 0b000, 0b1010, 0b0100, 0b011), // RW
1447
+ kLOREA_EL1 = encode(0b11, 0b000, 0b1010, 0b0100, 0b001), // RW
1448
+ kLORID_EL1 = encode(0b11, 0b000, 0b1010, 0b0100, 0b111), // RO
1449
+ kLORN_EL1 = encode(0b11, 0b000, 0b1010, 0b0100, 0b010), // RW
1450
+ kLORSA_EL1 = encode(0b11, 0b000, 0b1010, 0b0100, 0b000), // RW
1451
+ kMAIR_EL1 = encode(0b11, 0b000, 0b1010, 0b0010, 0b000), // RW
1452
+ kMAIR_EL12 = encode(0b11, 0b101, 0b1010, 0b0010, 0b000), // RW
1453
+ kMAIR_EL2 = encode(0b11, 0b100, 0b1010, 0b0010, 0b000), // RW
1454
+ kMAIR_EL3 = encode(0b11, 0b110, 0b1010, 0b0010, 0b000), // RW
1455
+ kMDCCINT_EL1 = encode(0b10, 0b000, 0b0000, 0b0010, 0b000), // RW
1456
+ kMDCCSR_EL0 = encode(0b10, 0b011, 0b0000, 0b0001, 0b000), // RO
1457
+ kMDCR_EL2 = encode(0b11, 0b100, 0b0001, 0b0001, 0b001), // RW
1458
+ kMDCR_EL3 = encode(0b11, 0b110, 0b0001, 0b0011, 0b001), // RW
1459
+ kMDRAR_EL1 = encode(0b10, 0b000, 0b0001, 0b0000, 0b000), // RO
1460
+ kMDSCR_EL1 = encode(0b10, 0b000, 0b0000, 0b0010, 0b010), // RW
1461
+ kMIDR_EL1 = encode(0b11, 0b000, 0b0000, 0b0000, 0b000), // RO
1462
+ kMPAM0_EL1 = encode(0b11, 0b000, 0b1010, 0b0101, 0b001), // RW
1463
+ kMPAM1_EL1 = encode(0b11, 0b000, 0b1010, 0b0101, 0b000), // RW
1464
+ kMPAM1_EL12 = encode(0b11, 0b101, 0b1010, 0b0101, 0b000), // RW
1465
+ kMPAM2_EL2 = encode(0b11, 0b100, 0b1010, 0b0101, 0b000), // RW
1466
+ kMPAM3_EL3 = encode(0b11, 0b110, 0b1010, 0b0101, 0b000), // RW
1467
+ kMPAMHCR_EL2 = encode(0b11, 0b100, 0b1010, 0b0100, 0b000), // RW
1468
+ kMPAMIDR_EL1 = encode(0b11, 0b000, 0b1010, 0b0100, 0b100), // RO
1469
+ kMPAMVPM0_EL2 = encode(0b11, 0b100, 0b1010, 0b0110, 0b000), // RW
1470
+ kMPAMVPM1_EL2 = encode(0b11, 0b100, 0b1010, 0b0110, 0b001), // RW
1471
+ kMPAMVPM2_EL2 = encode(0b11, 0b100, 0b1010, 0b0110, 0b010), // RW
1472
+ kMPAMVPM3_EL2 = encode(0b11, 0b100, 0b1010, 0b0110, 0b011), // RW
1473
+ kMPAMVPM4_EL2 = encode(0b11, 0b100, 0b1010, 0b0110, 0b100), // RW
1474
+ kMPAMVPM5_EL2 = encode(0b11, 0b100, 0b1010, 0b0110, 0b101), // RW
1475
+ kMPAMVPM6_EL2 = encode(0b11, 0b100, 0b1010, 0b0110, 0b110), // RW
1476
+ kMPAMVPM7_EL2 = encode(0b11, 0b100, 0b1010, 0b0110, 0b111), // RW
1477
+ kMPAMVPMV_EL2 = encode(0b11, 0b100, 0b1010, 0b0100, 0b001), // RW
1478
+ kMPIDR_EL1 = encode(0b11, 0b000, 0b0000, 0b0000, 0b101), // RO
1479
+ kMVFR0_EL1 = encode(0b11, 0b000, 0b0000, 0b0011, 0b000), // RO
1480
+ kMVFR1_EL1 = encode(0b11, 0b000, 0b0000, 0b0011, 0b001), // RO
1481
+ kMVFR2_EL1 = encode(0b11, 0b000, 0b0000, 0b0011, 0b010), // RO
1482
+ kNZCV = encode(0b11, 0b011, 0b0100, 0b0010, 0b000), // RW
1483
+ kOSDLR_EL1 = encode(0b10, 0b000, 0b0001, 0b0011, 0b100), // RW
1484
+ kOSDTRRX_EL1 = encode(0b10, 0b000, 0b0000, 0b0000, 0b010), // RW
1485
+ kOSDTRTX_EL1 = encode(0b10, 0b000, 0b0000, 0b0011, 0b010), // RW
1486
+ kOSECCR_EL1 = encode(0b10, 0b000, 0b0000, 0b0110, 0b010), // RW
1487
+ kOSLAR_EL1 = encode(0b10, 0b000, 0b0001, 0b0000, 0b100), // WO
1488
+ kOSLSR_EL1 = encode(0b10, 0b000, 0b0001, 0b0001, 0b100), // RO
1489
+ kPAN = encode(0b11, 0b000, 0b0100, 0b0010, 0b011), // RW
1490
+ kPAR_EL1 = encode(0b11, 0b000, 0b0111, 0b0100, 0b000), // RW
1491
+ kPMBIDR_EL1 = encode(0b11, 0b000, 0b1001, 0b1010, 0b111), // RO
1492
+ kPMBLIMITR_EL1 = encode(0b11, 0b000, 0b1001, 0b1010, 0b000), // RW
1493
+ kPMBPTR_EL1 = encode(0b11, 0b000, 0b1001, 0b1010, 0b001), // RW
1494
+ kPMBSR_EL1 = encode(0b11, 0b000, 0b1001, 0b1010, 0b011), // RW
1495
+ kPMCCFILTR_EL0 = encode(0b11, 0b011, 0b1110, 0b1111, 0b111), // RW
1496
+ kPMCCNTR_EL0 = encode(0b11, 0b011, 0b1001, 0b1101, 0b000), // RW
1497
+ kPMCEID0_EL0 = encode(0b11, 0b011, 0b1001, 0b1100, 0b110), // RO
1498
+ kPMCEID1_EL0 = encode(0b11, 0b011, 0b1001, 0b1100, 0b111), // RO
1499
+ kPMCNTENCLR_EL0 = encode(0b11, 0b011, 0b1001, 0b1100, 0b010), // RW
1500
+ kPMCNTENSET_EL0 = encode(0b11, 0b011, 0b1001, 0b1100, 0b001), // RW
1501
+ kPMCR_EL0 = encode(0b11, 0b011, 0b1001, 0b1100, 0b000), // RW
1502
+ kPMEVCNTR0_EL0 = encode(0b11, 0b011, 0b1110, 0b1000, 0b000), // RW
1503
+ kPMEVCNTR10_EL0 = encode(0b11, 0b011, 0b1110, 0b1001, 0b010), // RW
1504
+ kPMEVCNTR11_EL0 = encode(0b11, 0b011, 0b1110, 0b1001, 0b011), // RW
1505
+ kPMEVCNTR12_EL0 = encode(0b11, 0b011, 0b1110, 0b1001, 0b100), // RW
1506
+ kPMEVCNTR13_EL0 = encode(0b11, 0b011, 0b1110, 0b1001, 0b101), // RW
1507
+ kPMEVCNTR14_EL0 = encode(0b11, 0b011, 0b1110, 0b1001, 0b110), // RW
1508
+ kPMEVCNTR15_EL0 = encode(0b11, 0b011, 0b1110, 0b1001, 0b111), // RW
1509
+ kPMEVCNTR16_EL0 = encode(0b11, 0b011, 0b1110, 0b1010, 0b000), // RW
1510
+ kPMEVCNTR17_EL0 = encode(0b11, 0b011, 0b1110, 0b1010, 0b001), // RW
1511
+ kPMEVCNTR18_EL0 = encode(0b11, 0b011, 0b1110, 0b1010, 0b010), // RW
1512
+ kPMEVCNTR19_EL0 = encode(0b11, 0b011, 0b1110, 0b1010, 0b011), // RW
1513
+ kPMEVCNTR1_EL0 = encode(0b11, 0b011, 0b1110, 0b1000, 0b001), // RW
1514
+ kPMEVCNTR20_EL0 = encode(0b11, 0b011, 0b1110, 0b1010, 0b100), // RW
1515
+ kPMEVCNTR21_EL0 = encode(0b11, 0b011, 0b1110, 0b1010, 0b101), // RW
1516
+ kPMEVCNTR22_EL0 = encode(0b11, 0b011, 0b1110, 0b1010, 0b110), // RW
1517
+ kPMEVCNTR23_EL0 = encode(0b11, 0b011, 0b1110, 0b1010, 0b111), // RW
1518
+ kPMEVCNTR24_EL0 = encode(0b11, 0b011, 0b1110, 0b1011, 0b000), // RW
1519
+ kPMEVCNTR25_EL0 = encode(0b11, 0b011, 0b1110, 0b1011, 0b001), // RW
1520
+ kPMEVCNTR26_EL0 = encode(0b11, 0b011, 0b1110, 0b1011, 0b010), // RW
1521
+ kPMEVCNTR27_EL0 = encode(0b11, 0b011, 0b1110, 0b1011, 0b011), // RW
1522
+ kPMEVCNTR28_EL0 = encode(0b11, 0b011, 0b1110, 0b1011, 0b100), // RW
1523
+ kPMEVCNTR29_EL0 = encode(0b11, 0b011, 0b1110, 0b1011, 0b101), // RW
1524
+ kPMEVCNTR2_EL0 = encode(0b11, 0b011, 0b1110, 0b1000, 0b010), // RW
1525
+ kPMEVCNTR30_EL0 = encode(0b11, 0b011, 0b1110, 0b1011, 0b110), // RW
1526
+ kPMEVCNTR3_EL0 = encode(0b11, 0b011, 0b1110, 0b1000, 0b011), // RW
1527
+ kPMEVCNTR4_EL0 = encode(0b11, 0b011, 0b1110, 0b1000, 0b100), // RW
1528
+ kPMEVCNTR5_EL0 = encode(0b11, 0b011, 0b1110, 0b1000, 0b101), // RW
1529
+ kPMEVCNTR6_EL0 = encode(0b11, 0b011, 0b1110, 0b1000, 0b110), // RW
1530
+ kPMEVCNTR7_EL0 = encode(0b11, 0b011, 0b1110, 0b1000, 0b111), // RW
1531
+ kPMEVCNTR8_EL0 = encode(0b11, 0b011, 0b1110, 0b1001, 0b000), // RW
1532
+ kPMEVCNTR9_EL0 = encode(0b11, 0b011, 0b1110, 0b1001, 0b001), // RW
1533
+ kPMEVTYPER0_EL0 = encode(0b11, 0b011, 0b1110, 0b1100, 0b000), // RW
1534
+ kPMEVTYPER10_EL0 = encode(0b11, 0b011, 0b1110, 0b1101, 0b010), // RW
1535
+ kPMEVTYPER11_EL0 = encode(0b11, 0b011, 0b1110, 0b1101, 0b011), // RW
1536
+ kPMEVTYPER12_EL0 = encode(0b11, 0b011, 0b1110, 0b1101, 0b100), // RW
1537
+ kPMEVTYPER13_EL0 = encode(0b11, 0b011, 0b1110, 0b1101, 0b101), // RW
1538
+ kPMEVTYPER14_EL0 = encode(0b11, 0b011, 0b1110, 0b1101, 0b110), // RW
1539
+ kPMEVTYPER15_EL0 = encode(0b11, 0b011, 0b1110, 0b1101, 0b111), // RW
1540
+ kPMEVTYPER16_EL0 = encode(0b11, 0b011, 0b1110, 0b1110, 0b000), // RW
1541
+ kPMEVTYPER17_EL0 = encode(0b11, 0b011, 0b1110, 0b1110, 0b001), // RW
1542
+ kPMEVTYPER18_EL0 = encode(0b11, 0b011, 0b1110, 0b1110, 0b010), // RW
1543
+ kPMEVTYPER19_EL0 = encode(0b11, 0b011, 0b1110, 0b1110, 0b011), // RW
1544
+ kPMEVTYPER1_EL0 = encode(0b11, 0b011, 0b1110, 0b1100, 0b001), // RW
1545
+ kPMEVTYPER20_EL0 = encode(0b11, 0b011, 0b1110, 0b1110, 0b100), // RW
1546
+ kPMEVTYPER21_EL0 = encode(0b11, 0b011, 0b1110, 0b1110, 0b101), // RW
1547
+ kPMEVTYPER22_EL0 = encode(0b11, 0b011, 0b1110, 0b1110, 0b110), // RW
1548
+ kPMEVTYPER23_EL0 = encode(0b11, 0b011, 0b1110, 0b1110, 0b111), // RW
1549
+ kPMEVTYPER24_EL0 = encode(0b11, 0b011, 0b1110, 0b1111, 0b000), // RW
1550
+ kPMEVTYPER25_EL0 = encode(0b11, 0b011, 0b1110, 0b1111, 0b001), // RW
1551
+ kPMEVTYPER26_EL0 = encode(0b11, 0b011, 0b1110, 0b1111, 0b010), // RW
1552
+ kPMEVTYPER27_EL0 = encode(0b11, 0b011, 0b1110, 0b1111, 0b011), // RW
1553
+ kPMEVTYPER28_EL0 = encode(0b11, 0b011, 0b1110, 0b1111, 0b100), // RW
1554
+ kPMEVTYPER29_EL0 = encode(0b11, 0b011, 0b1110, 0b1111, 0b101), // RW
1555
+ kPMEVTYPER2_EL0 = encode(0b11, 0b011, 0b1110, 0b1100, 0b010), // RW
1556
+ kPMEVTYPER30_EL0 = encode(0b11, 0b011, 0b1110, 0b1111, 0b110), // RW
1557
+ kPMEVTYPER3_EL0 = encode(0b11, 0b011, 0b1110, 0b1100, 0b011), // RW
1558
+ kPMEVTYPER4_EL0 = encode(0b11, 0b011, 0b1110, 0b1100, 0b100), // RW
1559
+ kPMEVTYPER5_EL0 = encode(0b11, 0b011, 0b1110, 0b1100, 0b101), // RW
1560
+ kPMEVTYPER6_EL0 = encode(0b11, 0b011, 0b1110, 0b1100, 0b110), // RW
1561
+ kPMEVTYPER7_EL0 = encode(0b11, 0b011, 0b1110, 0b1100, 0b111), // RW
1562
+ kPMEVTYPER8_EL0 = encode(0b11, 0b011, 0b1110, 0b1101, 0b000), // RW
1563
+ kPMEVTYPER9_EL0 = encode(0b11, 0b011, 0b1110, 0b1101, 0b001), // RW
1564
+ kPMINTENCLR_EL1 = encode(0b11, 0b000, 0b1001, 0b1110, 0b010), // RW
1565
+ kPMINTENSET_EL1 = encode(0b11, 0b000, 0b1001, 0b1110, 0b001), // RW
1566
+ kPMMIR_EL1 = encode(0b11, 0b000, 0b1001, 0b1110, 0b110), // RW
1567
+ kPMOVSCLR_EL0 = encode(0b11, 0b011, 0b1001, 0b1100, 0b011), // RW
1568
+ kPMOVSSET_EL0 = encode(0b11, 0b011, 0b1001, 0b1110, 0b011), // RW
1569
+ kPMSCR_EL1 = encode(0b11, 0b000, 0b1001, 0b1001, 0b000), // RW
1570
+ kPMSCR_EL12 = encode(0b11, 0b101, 0b1001, 0b1001, 0b000), // RW
1571
+ kPMSCR_EL2 = encode(0b11, 0b100, 0b1001, 0b1001, 0b000), // RW
1572
+ kPMSELR_EL0 = encode(0b11, 0b011, 0b1001, 0b1100, 0b101), // RW
1573
+ kPMSEVFR_EL1 = encode(0b11, 0b000, 0b1001, 0b1001, 0b101), // RW
1574
+ kPMSFCR_EL1 = encode(0b11, 0b000, 0b1001, 0b1001, 0b100), // RW
1575
+ kPMSICR_EL1 = encode(0b11, 0b000, 0b1001, 0b1001, 0b010), // RW
1576
+ kPMSIDR_EL1 = encode(0b11, 0b000, 0b1001, 0b1001, 0b111), // RO
1577
+ kPMSIRR_EL1 = encode(0b11, 0b000, 0b1001, 0b1001, 0b011), // RW
1578
+ kPMSLATFR_EL1 = encode(0b11, 0b000, 0b1001, 0b1001, 0b110), // RW
1579
+ kPMSWINC_EL0 = encode(0b11, 0b011, 0b1001, 0b1100, 0b100), // WO
1580
+ kPMUSERENR_EL0 = encode(0b11, 0b011, 0b1001, 0b1110, 0b000), // RW
1581
+ kPMXEVCNTR_EL0 = encode(0b11, 0b011, 0b1001, 0b1101, 0b010), // RW
1582
+ kPMXEVTYPER_EL0 = encode(0b11, 0b011, 0b1001, 0b1101, 0b001), // RW
1583
+ kREVIDR_EL1 = encode(0b11, 0b000, 0b0000, 0b0000, 0b110), // RO
1584
+ kRGSR_EL1 = encode(0b11, 0b000, 0b0001, 0b0000, 0b101), // RW
1585
+ kRMR_EL1 = encode(0b11, 0b000, 0b1100, 0b0000, 0b010), // RW
1586
+ kRMR_EL2 = encode(0b11, 0b100, 0b1100, 0b0000, 0b010), // RW
1587
+ kRMR_EL3 = encode(0b11, 0b110, 0b1100, 0b0000, 0b010), // RW
1588
+ kRNDR = encode(0b11, 0b011, 0b0010, 0b0100, 0b000), // RO
1589
+ kRNDRRS = encode(0b11, 0b011, 0b0010, 0b0100, 0b001), // RO
1590
+ kRVBAR_EL1 = encode(0b11, 0b000, 0b1100, 0b0000, 0b001), // RO
1591
+ kRVBAR_EL2 = encode(0b11, 0b100, 0b1100, 0b0000, 0b001), // RO
1592
+ kRVBAR_EL3 = encode(0b11, 0b110, 0b1100, 0b0000, 0b001), // RO
1593
+ kSCR_EL3 = encode(0b11, 0b110, 0b0001, 0b0001, 0b000), // RW
1594
+ kSCTLR_EL1 = encode(0b11, 0b000, 0b0001, 0b0000, 0b000), // RW
1595
+ kSCTLR_EL12 = encode(0b11, 0b101, 0b0001, 0b0000, 0b000), // RW
1596
+ kSCTLR_EL2 = encode(0b11, 0b100, 0b0001, 0b0000, 0b000), // RW
1597
+ kSCTLR_EL3 = encode(0b11, 0b110, 0b0001, 0b0000, 0b000), // RW
1598
+ kSCXTNUM_EL0 = encode(0b11, 0b011, 0b1101, 0b0000, 0b111), // RW
1599
+ kSCXTNUM_EL1 = encode(0b11, 0b000, 0b1101, 0b0000, 0b111), // RW
1600
+ kSCXTNUM_EL12 = encode(0b11, 0b101, 0b1101, 0b0000, 0b111), // RW
1601
+ kSCXTNUM_EL2 = encode(0b11, 0b100, 0b1101, 0b0000, 0b111), // RW
1602
+ kSCXTNUM_EL3 = encode(0b11, 0b110, 0b1101, 0b0000, 0b111), // RW
1603
+ kSDER32_EL2 = encode(0b11, 0b100, 0b0001, 0b0011, 0b001), // RW
1604
+ kSDER32_EL3 = encode(0b11, 0b110, 0b0001, 0b0001, 0b001), // RW
1605
+ kSPSR_EL1 = encode(0b11, 0b000, 0b0100, 0b0000, 0b000), // RW
1606
+ kSPSR_EL12 = encode(0b11, 0b101, 0b0100, 0b0000, 0b000), // RW
1607
+ kSPSR_EL2 = encode(0b11, 0b100, 0b0100, 0b0000, 0b000), // RW
1608
+ kSPSR_EL3 = encode(0b11, 0b110, 0b0100, 0b0000, 0b000), // RW
1609
+ kSPSR_abt = encode(0b11, 0b100, 0b0100, 0b0011, 0b001), // RW
1610
+ kSPSR_fiq = encode(0b11, 0b100, 0b0100, 0b0011, 0b011), // RW
1611
+ kSPSR_irq = encode(0b11, 0b100, 0b0100, 0b0011, 0b000), // RW
1612
+ kSPSR_und = encode(0b11, 0b100, 0b0100, 0b0011, 0b010), // RW
1613
+ kSPSel = encode(0b11, 0b000, 0b0100, 0b0010, 0b000), // RW
1614
+ kSP_EL0 = encode(0b11, 0b000, 0b0100, 0b0001, 0b000), // RW
1615
+ kSP_EL1 = encode(0b11, 0b100, 0b0100, 0b0001, 0b000), // RW
1616
+ kSP_EL2 = encode(0b11, 0b110, 0b0100, 0b0001, 0b000), // RW
1617
+ kSSBS = encode(0b11, 0b011, 0b0100, 0b0010, 0b110), // RW
1618
+ kTCO = encode(0b11, 0b011, 0b0100, 0b0010, 0b111), // RW
1619
+ kTCR_EL1 = encode(0b11, 0b000, 0b0010, 0b0000, 0b010), // RW
1620
+ kTCR_EL12 = encode(0b11, 0b101, 0b0010, 0b0000, 0b010), // RW
1621
+ kTCR_EL2 = encode(0b11, 0b100, 0b0010, 0b0000, 0b010), // RW
1622
+ kTCR_EL3 = encode(0b11, 0b110, 0b0010, 0b0000, 0b010), // RW
1623
+ kTEECR32_EL1 = encode(0b10, 0b010, 0b0000, 0b0000, 0b000), // RW
1624
+ kTEEHBR32_EL1 = encode(0b10, 0b010, 0b0001, 0b0000, 0b000), // RW
1625
+ kTFSRE0_EL1 = encode(0b11, 0b000, 0b0101, 0b0110, 0b001), // RW
1626
+ kTFSR_EL1 = encode(0b11, 0b000, 0b0101, 0b0110, 0b000), // RW
1627
+ kTFSR_EL12 = encode(0b11, 0b101, 0b0101, 0b0110, 0b000), // RW
1628
+ kTFSR_EL2 = encode(0b11, 0b100, 0b0101, 0b0110, 0b000), // RW
1629
+ kTFSR_EL3 = encode(0b11, 0b110, 0b0101, 0b0110, 0b000), // RW
1630
+ kTPIDRRO_EL0 = encode(0b11, 0b011, 0b1101, 0b0000, 0b011), // RW
1631
+ kTPIDR_EL0 = encode(0b11, 0b011, 0b1101, 0b0000, 0b010), // RW
1632
+ kTPIDR_EL1 = encode(0b11, 0b000, 0b1101, 0b0000, 0b100), // RW
1633
+ kTPIDR_EL2 = encode(0b11, 0b100, 0b1101, 0b0000, 0b010), // RW
1634
+ kTPIDR_EL3 = encode(0b11, 0b110, 0b1101, 0b0000, 0b010), // RW
1635
+ kTRBBASER_EL1 = encode(0b11, 0b000, 0b1001, 0b1011, 0b010), // RW
1636
+ kTRBIDR_EL1 = encode(0b11, 0b000, 0b1001, 0b1011, 0b111), // RO
1637
+ kTRBLIMITR_EL1 = encode(0b11, 0b000, 0b1001, 0b1011, 0b000), // RW
1638
+ kTRBMAR_EL1 = encode(0b11, 0b000, 0b1001, 0b1011, 0b100), // RW
1639
+ kTRBPTR_EL1 = encode(0b11, 0b000, 0b1001, 0b1011, 0b001), // RW
1640
+ kTRBSR_EL1 = encode(0b11, 0b000, 0b1001, 0b1011, 0b011), // RW
1641
+ kTRBTRG_EL1 = encode(0b11, 0b000, 0b1001, 0b1011, 0b110), // RW
1642
+ kTRCACATR0 = encode(0b10, 0b001, 0b0010, 0b0000, 0b010), // RW
1643
+ kTRCACATR1 = encode(0b10, 0b001, 0b0010, 0b0010, 0b010), // RW
1644
+ kTRCACATR10 = encode(0b10, 0b001, 0b0010, 0b0100, 0b011), // RW
1645
+ kTRCACATR11 = encode(0b10, 0b001, 0b0010, 0b0110, 0b011), // RW
1646
+ kTRCACATR12 = encode(0b10, 0b001, 0b0010, 0b1000, 0b011), // RW
1647
+ kTRCACATR13 = encode(0b10, 0b001, 0b0010, 0b1010, 0b011), // RW
1648
+ kTRCACATR14 = encode(0b10, 0b001, 0b0010, 0b1100, 0b011), // RW
1649
+ kTRCACATR15 = encode(0b10, 0b001, 0b0010, 0b1110, 0b011), // RW
1650
+ kTRCACATR2 = encode(0b10, 0b001, 0b0010, 0b0100, 0b010), // RW
1651
+ kTRCACATR3 = encode(0b10, 0b001, 0b0010, 0b0110, 0b010), // RW
1652
+ kTRCACATR4 = encode(0b10, 0b001, 0b0010, 0b1000, 0b010), // RW
1653
+ kTRCACATR5 = encode(0b10, 0b001, 0b0010, 0b1010, 0b010), // RW
1654
+ kTRCACATR6 = encode(0b10, 0b001, 0b0010, 0b1100, 0b010), // RW
1655
+ kTRCACATR7 = encode(0b10, 0b001, 0b0010, 0b1110, 0b010), // RW
1656
+ kTRCACATR8 = encode(0b10, 0b001, 0b0010, 0b0000, 0b011), // RW
1657
+ kTRCACATR9 = encode(0b10, 0b001, 0b0010, 0b0010, 0b011), // RW
1658
+ kTRCACVR0 = encode(0b10, 0b001, 0b0010, 0b0000, 0b000), // RW
1659
+ kTRCACVR1 = encode(0b10, 0b001, 0b0010, 0b0010, 0b000), // RW
1660
+ kTRCACVR10 = encode(0b10, 0b001, 0b0010, 0b0100, 0b001), // RW
1661
+ kTRCACVR11 = encode(0b10, 0b001, 0b0010, 0b0110, 0b001), // RW
1662
+ kTRCACVR12 = encode(0b10, 0b001, 0b0010, 0b1000, 0b001), // RW
1663
+ kTRCACVR13 = encode(0b10, 0b001, 0b0010, 0b1010, 0b001), // RW
1664
+ kTRCACVR14 = encode(0b10, 0b001, 0b0010, 0b1100, 0b001), // RW
1665
+ kTRCACVR15 = encode(0b10, 0b001, 0b0010, 0b1110, 0b001), // RW
1666
+ kTRCACVR2 = encode(0b10, 0b001, 0b0010, 0b0100, 0b000), // RW
1667
+ kTRCACVR3 = encode(0b10, 0b001, 0b0010, 0b0110, 0b000), // RW
1668
+ kTRCACVR4 = encode(0b10, 0b001, 0b0010, 0b1000, 0b000), // RW
1669
+ kTRCACVR5 = encode(0b10, 0b001, 0b0010, 0b1010, 0b000), // RW
1670
+ kTRCACVR6 = encode(0b10, 0b001, 0b0010, 0b1100, 0b000), // RW
1671
+ kTRCACVR7 = encode(0b10, 0b001, 0b0010, 0b1110, 0b000), // RW
1672
+ kTRCACVR8 = encode(0b10, 0b001, 0b0010, 0b0000, 0b001), // RW
1673
+ kTRCACVR9 = encode(0b10, 0b001, 0b0010, 0b0010, 0b001), // RW
1674
+ kTRCAUTHSTATUS = encode(0b10, 0b001, 0b0111, 0b1110, 0b110), // RO
1675
+ kTRCAUXCTLR = encode(0b10, 0b001, 0b0000, 0b0110, 0b000), // RW
1676
+ kTRCBBCTLR = encode(0b10, 0b001, 0b0000, 0b1111, 0b000), // RW
1677
+ kTRCCCCTLR = encode(0b10, 0b001, 0b0000, 0b1110, 0b000), // RW
1678
+ kTRCCIDCCTLR0 = encode(0b10, 0b001, 0b0011, 0b0000, 0b010), // RW
1679
+ kTRCCIDCCTLR1 = encode(0b10, 0b001, 0b0011, 0b0001, 0b010), // RW
1680
+ kTRCCIDCVR0 = encode(0b10, 0b001, 0b0011, 0b0000, 0b000), // RW
1681
+ kTRCCIDCVR1 = encode(0b10, 0b001, 0b0011, 0b0010, 0b000), // RW
1682
+ kTRCCIDCVR2 = encode(0b10, 0b001, 0b0011, 0b0100, 0b000), // RW
1683
+ kTRCCIDCVR3 = encode(0b10, 0b001, 0b0011, 0b0110, 0b000), // RW
1684
+ kTRCCIDCVR4 = encode(0b10, 0b001, 0b0011, 0b1000, 0b000), // RW
1685
+ kTRCCIDCVR5 = encode(0b10, 0b001, 0b0011, 0b1010, 0b000), // RW
1686
+ kTRCCIDCVR6 = encode(0b10, 0b001, 0b0011, 0b1100, 0b000), // RW
1687
+ kTRCCIDCVR7 = encode(0b10, 0b001, 0b0011, 0b1110, 0b000), // RW
1688
+ kTRCCIDR0 = encode(0b10, 0b001, 0b0111, 0b1100, 0b111), // RO
1689
+ kTRCCIDR1 = encode(0b10, 0b001, 0b0111, 0b1101, 0b111), // RO
1690
+ kTRCCIDR2 = encode(0b10, 0b001, 0b0111, 0b1110, 0b111), // RO
1691
+ kTRCCIDR3 = encode(0b10, 0b001, 0b0111, 0b1111, 0b111), // RO
1692
+ kTRCCLAIMCLR = encode(0b10, 0b001, 0b0111, 0b1001, 0b110), // RW
1693
+ kTRCCLAIMSET = encode(0b10, 0b001, 0b0111, 0b1000, 0b110), // RW
1694
+ kTRCCNTCTLR0 = encode(0b10, 0b001, 0b0000, 0b0100, 0b101), // RW
1695
+ kTRCCNTCTLR1 = encode(0b10, 0b001, 0b0000, 0b0101, 0b101), // RW
1696
+ kTRCCNTCTLR2 = encode(0b10, 0b001, 0b0000, 0b0110, 0b101), // RW
1697
+ kTRCCNTCTLR3 = encode(0b10, 0b001, 0b0000, 0b0111, 0b101), // RW
1698
+ kTRCCNTRLDVR0 = encode(0b10, 0b001, 0b0000, 0b0000, 0b101), // RW
1699
+ kTRCCNTRLDVR1 = encode(0b10, 0b001, 0b0000, 0b0001, 0b101), // RW
1700
+ kTRCCNTRLDVR2 = encode(0b10, 0b001, 0b0000, 0b0010, 0b101), // RW
1701
+ kTRCCNTRLDVR3 = encode(0b10, 0b001, 0b0000, 0b0011, 0b101), // RW
1702
+ kTRCCNTVR0 = encode(0b10, 0b001, 0b0000, 0b1000, 0b101), // RW
1703
+ kTRCCNTVR1 = encode(0b10, 0b001, 0b0000, 0b1001, 0b101), // RW
1704
+ kTRCCNTVR2 = encode(0b10, 0b001, 0b0000, 0b1010, 0b101), // RW
1705
+ kTRCCNTVR3 = encode(0b10, 0b001, 0b0000, 0b1011, 0b101), // RW
1706
+ kTRCCONFIGR = encode(0b10, 0b001, 0b0000, 0b0100, 0b000), // RW
1707
+ kTRCDEVAFF0 = encode(0b10, 0b001, 0b0111, 0b1010, 0b110), // RO
1708
+ kTRCDEVAFF1 = encode(0b10, 0b001, 0b0111, 0b1011, 0b110), // RO
1709
+ kTRCDEVARCH = encode(0b10, 0b001, 0b0111, 0b1111, 0b110), // RO
1710
+ kTRCDEVID = encode(0b10, 0b001, 0b0111, 0b0010, 0b111), // RO
1711
+ kTRCDEVTYPE = encode(0b10, 0b001, 0b0111, 0b0011, 0b111), // RO
1712
+ kTRCDVCMR0 = encode(0b10, 0b001, 0b0010, 0b0000, 0b110), // RW
1713
+ kTRCDVCMR1 = encode(0b10, 0b001, 0b0010, 0b0100, 0b110), // RW
1714
+ kTRCDVCMR2 = encode(0b10, 0b001, 0b0010, 0b1000, 0b110), // RW
1715
+ kTRCDVCMR3 = encode(0b10, 0b001, 0b0010, 0b1100, 0b110), // RW
1716
+ kTRCDVCMR4 = encode(0b10, 0b001, 0b0010, 0b0000, 0b111), // RW
1717
+ kTRCDVCMR5 = encode(0b10, 0b001, 0b0010, 0b0100, 0b111), // RW
1718
+ kTRCDVCMR6 = encode(0b10, 0b001, 0b0010, 0b1000, 0b111), // RW
1719
+ kTRCDVCMR7 = encode(0b10, 0b001, 0b0010, 0b1100, 0b111), // RW
1720
+ kTRCDVCVR0 = encode(0b10, 0b001, 0b0010, 0b0000, 0b100), // RW
1721
+ kTRCDVCVR1 = encode(0b10, 0b001, 0b0010, 0b0100, 0b100), // RW
1722
+ kTRCDVCVR2 = encode(0b10, 0b001, 0b0010, 0b1000, 0b100), // RW
1723
+ kTRCDVCVR3 = encode(0b10, 0b001, 0b0010, 0b1100, 0b100), // RW
1724
+ kTRCDVCVR4 = encode(0b10, 0b001, 0b0010, 0b0000, 0b101), // RW
1725
+ kTRCDVCVR5 = encode(0b10, 0b001, 0b0010, 0b0100, 0b101), // RW
1726
+ kTRCDVCVR6 = encode(0b10, 0b001, 0b0010, 0b1000, 0b101), // RW
1727
+ kTRCDVCVR7 = encode(0b10, 0b001, 0b0010, 0b1100, 0b101), // RW
1728
+ kTRCEVENTCTL0R = encode(0b10, 0b001, 0b0000, 0b1000, 0b000), // RW
1729
+ kTRCEVENTCTL1R = encode(0b10, 0b001, 0b0000, 0b1001, 0b000), // RW
1730
+ kTRCEXTINSELR = encode(0b10, 0b001, 0b0000, 0b1000, 0b100), // RW
1731
+ kTRCEXTINSELR0 = encode(0b10, 0b001, 0b0000, 0b1000, 0b100), // RW
1732
+ kTRCEXTINSELR1 = encode(0b10, 0b001, 0b0000, 0b1001, 0b100), // RW
1733
+ kTRCEXTINSELR2 = encode(0b10, 0b001, 0b0000, 0b1010, 0b100), // RW
1734
+ kTRCEXTINSELR3 = encode(0b10, 0b001, 0b0000, 0b1011, 0b100), // RW
1735
+ kTRCIDR0 = encode(0b10, 0b001, 0b0000, 0b1000, 0b111), // RO
1736
+ kTRCIDR1 = encode(0b10, 0b001, 0b0000, 0b1001, 0b111), // RO
1737
+ kTRCIDR10 = encode(0b10, 0b001, 0b0000, 0b0010, 0b110), // RO
1738
+ kTRCIDR11 = encode(0b10, 0b001, 0b0000, 0b0011, 0b110), // RO
1739
+ kTRCIDR12 = encode(0b10, 0b001, 0b0000, 0b0100, 0b110), // RO
1740
+ kTRCIDR13 = encode(0b10, 0b001, 0b0000, 0b0101, 0b110), // RO
1741
+ kTRCIDR2 = encode(0b10, 0b001, 0b0000, 0b1010, 0b111), // RO
1742
+ kTRCIDR3 = encode(0b10, 0b001, 0b0000, 0b1011, 0b111), // RO
1743
+ kTRCIDR4 = encode(0b10, 0b001, 0b0000, 0b1100, 0b111), // RO
1744
+ kTRCIDR5 = encode(0b10, 0b001, 0b0000, 0b1101, 0b111), // RO
1745
+ kTRCIDR6 = encode(0b10, 0b001, 0b0000, 0b1110, 0b111), // RO
1746
+ kTRCIDR7 = encode(0b10, 0b001, 0b0000, 0b1111, 0b111), // RO
1747
+ kTRCIDR8 = encode(0b10, 0b001, 0b0000, 0b0000, 0b110), // RO
1748
+ kTRCIDR9 = encode(0b10, 0b001, 0b0000, 0b0001, 0b110), // RO
1749
+ kTRCIMSPEC0 = encode(0b10, 0b001, 0b0000, 0b0000, 0b111), // RW
1750
+ kTRCIMSPEC1 = encode(0b10, 0b001, 0b0000, 0b0001, 0b111), // RW
1751
+ kTRCIMSPEC2 = encode(0b10, 0b001, 0b0000, 0b0010, 0b111), // RW
1752
+ kTRCIMSPEC3 = encode(0b10, 0b001, 0b0000, 0b0011, 0b111), // RW
1753
+ kTRCIMSPEC4 = encode(0b10, 0b001, 0b0000, 0b0100, 0b111), // RW
1754
+ kTRCIMSPEC5 = encode(0b10, 0b001, 0b0000, 0b0101, 0b111), // RW
1755
+ kTRCIMSPEC6 = encode(0b10, 0b001, 0b0000, 0b0110, 0b111), // RW
1756
+ kTRCIMSPEC7 = encode(0b10, 0b001, 0b0000, 0b0111, 0b111), // RW
1757
+ kTRCITCTRL = encode(0b10, 0b001, 0b0111, 0b0000, 0b100), // RW
1758
+ kTRCLAR = encode(0b10, 0b001, 0b0111, 0b1100, 0b110), // WO
1759
+ kTRCLSR = encode(0b10, 0b001, 0b0111, 0b1101, 0b110), // RO
1760
+ kTRCOSLAR = encode(0b10, 0b001, 0b0001, 0b0000, 0b100), // WO
1761
+ kTRCOSLSR = encode(0b10, 0b001, 0b0001, 0b0001, 0b100), // RO
1762
+ kTRCPDCR = encode(0b10, 0b001, 0b0001, 0b0100, 0b100), // RW
1763
+ kTRCPDSR = encode(0b10, 0b001, 0b0001, 0b0101, 0b100), // RO
1764
+ kTRCPIDR0 = encode(0b10, 0b001, 0b0111, 0b1000, 0b111), // RO
1765
+ kTRCPIDR1 = encode(0b10, 0b001, 0b0111, 0b1001, 0b111), // RO
1766
+ kTRCPIDR2 = encode(0b10, 0b001, 0b0111, 0b1010, 0b111), // RO
1767
+ kTRCPIDR3 = encode(0b10, 0b001, 0b0111, 0b1011, 0b111), // RO
1768
+ kTRCPIDR4 = encode(0b10, 0b001, 0b0111, 0b0100, 0b111), // RO
1769
+ kTRCPIDR5 = encode(0b10, 0b001, 0b0111, 0b0101, 0b111), // RO
1770
+ kTRCPIDR6 = encode(0b10, 0b001, 0b0111, 0b0110, 0b111), // RO
1771
+ kTRCPIDR7 = encode(0b10, 0b001, 0b0111, 0b0111, 0b111), // RO
1772
+ kTRCPRGCTLR = encode(0b10, 0b001, 0b0000, 0b0001, 0b000), // RW
1773
+ kTRCPROCSELR = encode(0b10, 0b001, 0b0000, 0b0010, 0b000), // RW
1774
+ kTRCQCTLR = encode(0b10, 0b001, 0b0000, 0b0001, 0b001), // RW
1775
+ kTRCRSCTLR10 = encode(0b10, 0b001, 0b0001, 0b1010, 0b000), // RW
1776
+ kTRCRSCTLR11 = encode(0b10, 0b001, 0b0001, 0b1011, 0b000), // RW
1777
+ kTRCRSCTLR12 = encode(0b10, 0b001, 0b0001, 0b1100, 0b000), // RW
1778
+ kTRCRSCTLR13 = encode(0b10, 0b001, 0b0001, 0b1101, 0b000), // RW
1779
+ kTRCRSCTLR14 = encode(0b10, 0b001, 0b0001, 0b1110, 0b000), // RW
1780
+ kTRCRSCTLR15 = encode(0b10, 0b001, 0b0001, 0b1111, 0b000), // RW
1781
+ kTRCRSCTLR16 = encode(0b10, 0b001, 0b0001, 0b0000, 0b001), // RW
1782
+ kTRCRSCTLR17 = encode(0b10, 0b001, 0b0001, 0b0001, 0b001), // RW
1783
+ kTRCRSCTLR18 = encode(0b10, 0b001, 0b0001, 0b0010, 0b001), // RW
1784
+ kTRCRSCTLR19 = encode(0b10, 0b001, 0b0001, 0b0011, 0b001), // RW
1785
+ kTRCRSCTLR2 = encode(0b10, 0b001, 0b0001, 0b0010, 0b000), // RW
1786
+ kTRCRSCTLR20 = encode(0b10, 0b001, 0b0001, 0b0100, 0b001), // RW
1787
+ kTRCRSCTLR21 = encode(0b10, 0b001, 0b0001, 0b0101, 0b001), // RW
1788
+ kTRCRSCTLR22 = encode(0b10, 0b001, 0b0001, 0b0110, 0b001), // RW
1789
+ kTRCRSCTLR23 = encode(0b10, 0b001, 0b0001, 0b0111, 0b001), // RW
1790
+ kTRCRSCTLR24 = encode(0b10, 0b001, 0b0001, 0b1000, 0b001), // RW
1791
+ kTRCRSCTLR25 = encode(0b10, 0b001, 0b0001, 0b1001, 0b001), // RW
1792
+ kTRCRSCTLR26 = encode(0b10, 0b001, 0b0001, 0b1010, 0b001), // RW
1793
+ kTRCRSCTLR27 = encode(0b10, 0b001, 0b0001, 0b1011, 0b001), // RW
1794
+ kTRCRSCTLR28 = encode(0b10, 0b001, 0b0001, 0b1100, 0b001), // RW
1795
+ kTRCRSCTLR29 = encode(0b10, 0b001, 0b0001, 0b1101, 0b001), // RW
1796
+ kTRCRSCTLR3 = encode(0b10, 0b001, 0b0001, 0b0011, 0b000), // RW
1797
+ kTRCRSCTLR30 = encode(0b10, 0b001, 0b0001, 0b1110, 0b001), // RW
1798
+ kTRCRSCTLR31 = encode(0b10, 0b001, 0b0001, 0b1111, 0b001), // RW
1799
+ kTRCRSCTLR4 = encode(0b10, 0b001, 0b0001, 0b0100, 0b000), // RW
1800
+ kTRCRSCTLR5 = encode(0b10, 0b001, 0b0001, 0b0101, 0b000), // RW
1801
+ kTRCRSCTLR6 = encode(0b10, 0b001, 0b0001, 0b0110, 0b000), // RW
1802
+ kTRCRSCTLR7 = encode(0b10, 0b001, 0b0001, 0b0111, 0b000), // RW
1803
+ kTRCRSCTLR8 = encode(0b10, 0b001, 0b0001, 0b1000, 0b000), // RW
1804
+ kTRCRSCTLR9 = encode(0b10, 0b001, 0b0001, 0b1001, 0b000), // RW
1805
+ kTRCRSR = encode(0b10, 0b001, 0b0000, 0b1010, 0b000), // RW
1806
+ kTRCSEQEVR0 = encode(0b10, 0b001, 0b0000, 0b0000, 0b100), // RW
1807
+ kTRCSEQEVR1 = encode(0b10, 0b001, 0b0000, 0b0001, 0b100), // RW
1808
+ kTRCSEQEVR2 = encode(0b10, 0b001, 0b0000, 0b0010, 0b100), // RW
1809
+ kTRCSEQRSTEVR = encode(0b10, 0b001, 0b0000, 0b0110, 0b100), // RW
1810
+ kTRCSEQSTR = encode(0b10, 0b001, 0b0000, 0b0111, 0b100), // RW
1811
+ kTRCSSCCR0 = encode(0b10, 0b001, 0b0001, 0b0000, 0b010), // RW
1812
+ kTRCSSCCR1 = encode(0b10, 0b001, 0b0001, 0b0001, 0b010), // RW
1813
+ kTRCSSCCR2 = encode(0b10, 0b001, 0b0001, 0b0010, 0b010), // RW
1814
+ kTRCSSCCR3 = encode(0b10, 0b001, 0b0001, 0b0011, 0b010), // RW
1815
+ kTRCSSCCR4 = encode(0b10, 0b001, 0b0001, 0b0100, 0b010), // RW
1816
+ kTRCSSCCR5 = encode(0b10, 0b001, 0b0001, 0b0101, 0b010), // RW
1817
+ kTRCSSCCR6 = encode(0b10, 0b001, 0b0001, 0b0110, 0b010), // RW
1818
+ kTRCSSCCR7 = encode(0b10, 0b001, 0b0001, 0b0111, 0b010), // RW
1819
+ kTRCSSCSR0 = encode(0b10, 0b001, 0b0001, 0b1000, 0b010), // RW
1820
+ kTRCSSCSR1 = encode(0b10, 0b001, 0b0001, 0b1001, 0b010), // RW
1821
+ kTRCSSCSR2 = encode(0b10, 0b001, 0b0001, 0b1010, 0b010), // RW
1822
+ kTRCSSCSR3 = encode(0b10, 0b001, 0b0001, 0b1011, 0b010), // RW
1823
+ kTRCSSCSR4 = encode(0b10, 0b001, 0b0001, 0b1100, 0b010), // RW
1824
+ kTRCSSCSR5 = encode(0b10, 0b001, 0b0001, 0b1101, 0b010), // RW
1825
+ kTRCSSCSR6 = encode(0b10, 0b001, 0b0001, 0b1110, 0b010), // RW
1826
+ kTRCSSCSR7 = encode(0b10, 0b001, 0b0001, 0b1111, 0b010), // RW
1827
+ kTRCSSPCICR0 = encode(0b10, 0b001, 0b0001, 0b0000, 0b011), // RW
1828
+ kTRCSSPCICR1 = encode(0b10, 0b001, 0b0001, 0b0001, 0b011), // RW
1829
+ kTRCSSPCICR2 = encode(0b10, 0b001, 0b0001, 0b0010, 0b011), // RW
1830
+ kTRCSSPCICR3 = encode(0b10, 0b001, 0b0001, 0b0011, 0b011), // RW
1831
+ kTRCSSPCICR4 = encode(0b10, 0b001, 0b0001, 0b0100, 0b011), // RW
1832
+ kTRCSSPCICR5 = encode(0b10, 0b001, 0b0001, 0b0101, 0b011), // RW
1833
+ kTRCSSPCICR6 = encode(0b10, 0b001, 0b0001, 0b0110, 0b011), // RW
1834
+ kTRCSSPCICR7 = encode(0b10, 0b001, 0b0001, 0b0111, 0b011), // RW
1835
+ kTRCSTALLCTLR = encode(0b10, 0b001, 0b0000, 0b1011, 0b000), // RW
1836
+ kTRCSTATR = encode(0b10, 0b001, 0b0000, 0b0011, 0b000), // RO
1837
+ kTRCSYNCPR = encode(0b10, 0b001, 0b0000, 0b1101, 0b000), // RW
1838
+ kTRCTRACEIDR = encode(0b10, 0b001, 0b0000, 0b0000, 0b001), // RW
1839
+ kTRCTSCTLR = encode(0b10, 0b001, 0b0000, 0b1100, 0b000), // RW
1840
+ kTRCVDARCCTLR = encode(0b10, 0b001, 0b0000, 0b1010, 0b010), // RW
1841
+ kTRCVDCTLR = encode(0b10, 0b001, 0b0000, 0b1000, 0b010), // RW
1842
+ kTRCVDSACCTLR = encode(0b10, 0b001, 0b0000, 0b1001, 0b010), // RW
1843
+ kTRCVICTLR = encode(0b10, 0b001, 0b0000, 0b0000, 0b010), // RW
1844
+ kTRCVIIECTLR = encode(0b10, 0b001, 0b0000, 0b0001, 0b010), // RW
1845
+ kTRCVIPCSSCTLR = encode(0b10, 0b001, 0b0000, 0b0011, 0b010), // RW
1846
+ kTRCVISSCTLR = encode(0b10, 0b001, 0b0000, 0b0010, 0b010), // RW
1847
+ kTRCVMIDCCTLR0 = encode(0b10, 0b001, 0b0011, 0b0010, 0b010), // RW
1848
+ kTRCVMIDCCTLR1 = encode(0b10, 0b001, 0b0011, 0b0011, 0b010), // RW
1849
+ kTRCVMIDCVR0 = encode(0b10, 0b001, 0b0011, 0b0000, 0b001), // RW
1850
+ kTRCVMIDCVR1 = encode(0b10, 0b001, 0b0011, 0b0010, 0b001), // RW
1851
+ kTRCVMIDCVR2 = encode(0b10, 0b001, 0b0011, 0b0100, 0b001), // RW
1852
+ kTRCVMIDCVR3 = encode(0b10, 0b001, 0b0011, 0b0110, 0b001), // RW
1853
+ kTRCVMIDCVR4 = encode(0b10, 0b001, 0b0011, 0b1000, 0b001), // RW
1854
+ kTRCVMIDCVR5 = encode(0b10, 0b001, 0b0011, 0b1010, 0b001), // RW
1855
+ kTRCVMIDCVR6 = encode(0b10, 0b001, 0b0011, 0b1100, 0b001), // RW
1856
+ kTRCVMIDCVR7 = encode(0b10, 0b001, 0b0011, 0b1110, 0b001), // RW
1857
+ kTRFCR_EL1 = encode(0b11, 0b000, 0b0001, 0b0010, 0b001), // RW
1858
+ kTRFCR_EL12 = encode(0b11, 0b101, 0b0001, 0b0010, 0b001), // RW
1859
+ kTRFCR_EL2 = encode(0b11, 0b100, 0b0001, 0b0010, 0b001), // RW
1860
+ kTTBR0_EL1 = encode(0b11, 0b000, 0b0010, 0b0000, 0b000), // RW
1861
+ kTTBR0_EL12 = encode(0b11, 0b101, 0b0010, 0b0000, 0b000), // RW
1862
+ kTTBR0_EL2 = encode(0b11, 0b100, 0b0010, 0b0000, 0b000), // RW
1863
+ kTTBR0_EL3 = encode(0b11, 0b110, 0b0010, 0b0000, 0b000), // RW
1864
+ kTTBR1_EL1 = encode(0b11, 0b000, 0b0010, 0b0000, 0b001), // RW
1865
+ kTTBR1_EL12 = encode(0b11, 0b101, 0b0010, 0b0000, 0b001), // RW
1866
+ kTTBR1_EL2 = encode(0b11, 0b100, 0b0010, 0b0000, 0b001), // RW
1867
+ kUAO = encode(0b11, 0b000, 0b0100, 0b0010, 0b100), // RW
1868
+ kVBAR_EL1 = encode(0b11, 0b000, 0b1100, 0b0000, 0b000), // RW
1869
+ kVBAR_EL12 = encode(0b11, 0b101, 0b1100, 0b0000, 0b000), // RW
1870
+ kVBAR_EL2 = encode(0b11, 0b100, 0b1100, 0b0000, 0b000), // RW
1871
+ kVBAR_EL3 = encode(0b11, 0b110, 0b1100, 0b0000, 0b000), // RW
1872
+ kVDISR_EL2 = encode(0b11, 0b100, 0b1100, 0b0001, 0b001), // RW
1873
+ kVMPIDR_EL2 = encode(0b11, 0b100, 0b0000, 0b0000, 0b101), // RW
1874
+ kVNCR_EL2 = encode(0b11, 0b100, 0b0010, 0b0010, 0b000), // RW
1875
+ kVPIDR_EL2 = encode(0b11, 0b100, 0b0000, 0b0000, 0b000), // RW
1876
+ kVSESR_EL2 = encode(0b11, 0b100, 0b0101, 0b0010, 0b011), // RW
1877
+ kVSTCR_EL2 = encode(0b11, 0b100, 0b0010, 0b0110, 0b010), // RW
1878
+ kVSTTBR_EL2 = encode(0b11, 0b100, 0b0010, 0b0110, 0b000), // RW
1879
+ kVTCR_EL2 = encode(0b11, 0b100, 0b0010, 0b0001, 0b010), // RW
1880
+ kVTTBR_EL2 = encode(0b11, 0b100, 0b0010, 0b0001, 0b000), // RW
1881
+ kZCR_EL1 = encode(0b11, 0b000, 0b0001, 0b0010, 0b000), // RW
1882
+ kZCR_EL12 = encode(0b11, 0b101, 0b0001, 0b0010, 0b000), // RW
1883
+ kZCR_EL2 = encode(0b11, 0b100, 0b0001, 0b0010, 0b000), // RW
1884
+ kZCR_EL3 = encode(0b11, 0b110, 0b0001, 0b0010, 0b000) // RW
1885
+ };
1886
+ };
1887
+
1888
+ } // {Predicate}
1889
+
1890
+ //! \}
1891
+
1892
+ ASMJIT_END_SUB_NAMESPACE
1893
+
1894
+ #endif // ASMJIT_ARM_A64GLOBALS_H_INCLUDED