CodeViewRegisters.def 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795
  1. //===-- CodeViewRegisters.def - CodeView registers --------------*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. //
  9. // See CV_HREG_e in cvconst.h. This should match the constants there.
  10. //
  11. //===----------------------------------------------------------------------===//
  12. #ifndef CV_REGISTER
  13. #define CV_REGISTER(name, value)
  14. #endif
  15. #if !defined(CV_REGISTERS_ALL) && !defined(CV_REGISTERS_X86) && \
  16. !defined(CV_REGISTERS_ARM) && \
  17. !defined(CV_REGISTERS_ARM64)
  18. #error Need include at least one register set.
  19. #endif
  20. // This currently only contains the "register subset shared by all processor
  21. // types" (ERR etc.) and the x86/arm64 registers.
  22. #if defined(CV_REGISTERS_ALL) || defined(CV_REGISTERS_X86)
  23. // Some system headers define macros that conflict with our enums. Every
  24. // compiler supported by LLVM has the push_macro and pop_macro pragmas, so use
  25. // them to avoid the conflict.
  26. #pragma push_macro("CR0")
  27. #pragma push_macro("CR1")
  28. #pragma push_macro("CR2")
  29. #pragma push_macro("CR3")
  30. #pragma push_macro("CR4")
  31. CV_REGISTER(ERR, 30000)
  32. CV_REGISTER(TEB, 30001)
  33. CV_REGISTER(TIMER, 30002)
  34. CV_REGISTER(EFAD1, 30003)
  35. CV_REGISTER(EFAD2, 30004)
  36. CV_REGISTER(EFAD3, 30005)
  37. CV_REGISTER(VFRAME, 30006)
  38. CV_REGISTER(HANDLE, 30007)
  39. CV_REGISTER(PARAMS, 30008)
  40. CV_REGISTER(LOCALS, 30009)
  41. CV_REGISTER(TID, 30010)
  42. CV_REGISTER(ENV, 30011)
  43. CV_REGISTER(CMDLN, 30012)
  44. CV_REGISTER(NONE, 0)
  45. CV_REGISTER(AL, 1)
  46. CV_REGISTER(CL, 2)
  47. CV_REGISTER(DL, 3)
  48. CV_REGISTER(BL, 4)
  49. CV_REGISTER(AH, 5)
  50. CV_REGISTER(CH, 6)
  51. CV_REGISTER(DH, 7)
  52. CV_REGISTER(BH, 8)
  53. CV_REGISTER(AX, 9)
  54. CV_REGISTER(CX, 10)
  55. CV_REGISTER(DX, 11)
  56. CV_REGISTER(BX, 12)
  57. CV_REGISTER(SP, 13)
  58. CV_REGISTER(BP, 14)
  59. CV_REGISTER(SI, 15)
  60. CV_REGISTER(DI, 16)
  61. CV_REGISTER(EAX, 17)
  62. CV_REGISTER(ECX, 18)
  63. CV_REGISTER(EDX, 19)
  64. CV_REGISTER(EBX, 20)
  65. CV_REGISTER(ESP, 21)
  66. CV_REGISTER(EBP, 22)
  67. CV_REGISTER(ESI, 23)
  68. CV_REGISTER(EDI, 24)
  69. CV_REGISTER(ES, 25)
  70. CV_REGISTER(CS, 26)
  71. CV_REGISTER(SS, 27)
  72. CV_REGISTER(DS, 28)
  73. CV_REGISTER(FS, 29)
  74. CV_REGISTER(GS, 30)
  75. CV_REGISTER(IP, 31)
  76. CV_REGISTER(FLAGS, 32)
  77. CV_REGISTER(EIP, 33)
  78. CV_REGISTER(EFLAGS, 34)
  79. CV_REGISTER(TEMP, 40)
  80. CV_REGISTER(TEMPH, 41)
  81. CV_REGISTER(QUOTE, 42)
  82. CV_REGISTER(PCDR3, 43)
  83. CV_REGISTER(PCDR4, 44)
  84. CV_REGISTER(PCDR5, 45)
  85. CV_REGISTER(PCDR6, 46)
  86. CV_REGISTER(PCDR7, 47)
  87. CV_REGISTER(CR0, 80)
  88. CV_REGISTER(CR1, 81)
  89. CV_REGISTER(CR2, 82)
  90. CV_REGISTER(CR3, 83)
  91. CV_REGISTER(CR4, 84)
  92. CV_REGISTER(DR0, 90)
  93. CV_REGISTER(DR1, 91)
  94. CV_REGISTER(DR2, 92)
  95. CV_REGISTER(DR3, 93)
  96. CV_REGISTER(DR4, 94)
  97. CV_REGISTER(DR5, 95)
  98. CV_REGISTER(DR6, 96)
  99. CV_REGISTER(DR7, 97)
  100. CV_REGISTER(GDTR, 110)
  101. CV_REGISTER(GDTL, 111)
  102. CV_REGISTER(IDTR, 112)
  103. CV_REGISTER(IDTL, 113)
  104. CV_REGISTER(LDTR, 114)
  105. CV_REGISTER(TR, 115)
  106. CV_REGISTER(PSEUDO1, 116)
  107. CV_REGISTER(PSEUDO2, 117)
  108. CV_REGISTER(PSEUDO3, 118)
  109. CV_REGISTER(PSEUDO4, 119)
  110. CV_REGISTER(PSEUDO5, 120)
  111. CV_REGISTER(PSEUDO6, 121)
  112. CV_REGISTER(PSEUDO7, 122)
  113. CV_REGISTER(PSEUDO8, 123)
  114. CV_REGISTER(PSEUDO9, 124)
  115. CV_REGISTER(ST0, 128)
  116. CV_REGISTER(ST1, 129)
  117. CV_REGISTER(ST2, 130)
  118. CV_REGISTER(ST3, 131)
  119. CV_REGISTER(ST4, 132)
  120. CV_REGISTER(ST5, 133)
  121. CV_REGISTER(ST6, 134)
  122. CV_REGISTER(ST7, 135)
  123. CV_REGISTER(CTRL, 136)
  124. CV_REGISTER(STAT, 137)
  125. CV_REGISTER(TAG, 138)
  126. CV_REGISTER(FPIP, 139)
  127. CV_REGISTER(FPCS, 140)
  128. CV_REGISTER(FPDO, 141)
  129. CV_REGISTER(FPDS, 142)
  130. CV_REGISTER(ISEM, 143)
  131. CV_REGISTER(FPEIP, 144)
  132. CV_REGISTER(FPEDO, 145)
  133. CV_REGISTER(MM0, 146)
  134. CV_REGISTER(MM1, 147)
  135. CV_REGISTER(MM2, 148)
  136. CV_REGISTER(MM3, 149)
  137. CV_REGISTER(MM4, 150)
  138. CV_REGISTER(MM5, 151)
  139. CV_REGISTER(MM6, 152)
  140. CV_REGISTER(MM7, 153)
  141. CV_REGISTER(XMM0, 154)
  142. CV_REGISTER(XMM1, 155)
  143. CV_REGISTER(XMM2, 156)
  144. CV_REGISTER(XMM3, 157)
  145. CV_REGISTER(XMM4, 158)
  146. CV_REGISTER(XMM5, 159)
  147. CV_REGISTER(XMM6, 160)
  148. CV_REGISTER(XMM7, 161)
  149. CV_REGISTER(MXCSR, 211)
  150. CV_REGISTER(EDXEAX, 212)
  151. CV_REGISTER(EMM0L, 220)
  152. CV_REGISTER(EMM1L, 221)
  153. CV_REGISTER(EMM2L, 222)
  154. CV_REGISTER(EMM3L, 223)
  155. CV_REGISTER(EMM4L, 224)
  156. CV_REGISTER(EMM5L, 225)
  157. CV_REGISTER(EMM6L, 226)
  158. CV_REGISTER(EMM7L, 227)
  159. CV_REGISTER(EMM0H, 228)
  160. CV_REGISTER(EMM1H, 229)
  161. CV_REGISTER(EMM2H, 230)
  162. CV_REGISTER(EMM3H, 231)
  163. CV_REGISTER(EMM4H, 232)
  164. CV_REGISTER(EMM5H, 233)
  165. CV_REGISTER(EMM6H, 234)
  166. CV_REGISTER(EMM7H, 235)
  167. CV_REGISTER(MM00, 236)
  168. CV_REGISTER(MM01, 237)
  169. CV_REGISTER(MM10, 238)
  170. CV_REGISTER(MM11, 239)
  171. CV_REGISTER(MM20, 240)
  172. CV_REGISTER(MM21, 241)
  173. CV_REGISTER(MM30, 242)
  174. CV_REGISTER(MM31, 243)
  175. CV_REGISTER(MM40, 244)
  176. CV_REGISTER(MM41, 245)
  177. CV_REGISTER(MM50, 246)
  178. CV_REGISTER(MM51, 247)
  179. CV_REGISTER(MM60, 248)
  180. CV_REGISTER(MM61, 249)
  181. CV_REGISTER(MM70, 250)
  182. CV_REGISTER(MM71, 251)
  183. CV_REGISTER(BND0, 396)
  184. CV_REGISTER(BND1, 397)
  185. CV_REGISTER(BND2, 398)
  186. CV_REGISTER(XMM8, 252)
  187. CV_REGISTER(XMM9, 253)
  188. CV_REGISTER(XMM10, 254)
  189. CV_REGISTER(XMM11, 255)
  190. CV_REGISTER(XMM12, 256)
  191. CV_REGISTER(XMM13, 257)
  192. CV_REGISTER(XMM14, 258)
  193. CV_REGISTER(XMM15, 259)
  194. CV_REGISTER(SIL, 324)
  195. CV_REGISTER(DIL, 325)
  196. CV_REGISTER(BPL, 326)
  197. CV_REGISTER(SPL, 327)
  198. CV_REGISTER(RAX, 328)
  199. CV_REGISTER(RBX, 329)
  200. CV_REGISTER(RCX, 330)
  201. CV_REGISTER(RDX, 331)
  202. CV_REGISTER(RSI, 332)
  203. CV_REGISTER(RDI, 333)
  204. CV_REGISTER(RBP, 334)
  205. CV_REGISTER(RSP, 335)
  206. CV_REGISTER(R8, 336)
  207. CV_REGISTER(R9, 337)
  208. CV_REGISTER(R10, 338)
  209. CV_REGISTER(R11, 339)
  210. CV_REGISTER(R12, 340)
  211. CV_REGISTER(R13, 341)
  212. CV_REGISTER(R14, 342)
  213. CV_REGISTER(R15, 343)
  214. CV_REGISTER(R8B, 344)
  215. CV_REGISTER(R9B, 345)
  216. CV_REGISTER(R10B, 346)
  217. CV_REGISTER(R11B, 347)
  218. CV_REGISTER(R12B, 348)
  219. CV_REGISTER(R13B, 349)
  220. CV_REGISTER(R14B, 350)
  221. CV_REGISTER(R15B, 351)
  222. CV_REGISTER(R8W, 352)
  223. CV_REGISTER(R9W, 353)
  224. CV_REGISTER(R10W, 354)
  225. CV_REGISTER(R11W, 355)
  226. CV_REGISTER(R12W, 356)
  227. CV_REGISTER(R13W, 357)
  228. CV_REGISTER(R14W, 358)
  229. CV_REGISTER(R15W, 359)
  230. CV_REGISTER(R8D, 360)
  231. CV_REGISTER(R9D, 361)
  232. CV_REGISTER(R10D, 362)
  233. CV_REGISTER(R11D, 363)
  234. CV_REGISTER(R12D, 364)
  235. CV_REGISTER(R13D, 365)
  236. CV_REGISTER(R14D, 366)
  237. CV_REGISTER(R15D, 367)
  238. // cvconst.h defines both CV_REG_YMM0 (252) and CV_AMD64_YMM0 (368). Keep the
  239. // original prefix to distinguish them.
  240. CV_REGISTER(AMD64_YMM0, 368)
  241. CV_REGISTER(AMD64_YMM1, 369)
  242. CV_REGISTER(AMD64_YMM2, 370)
  243. CV_REGISTER(AMD64_YMM3, 371)
  244. CV_REGISTER(AMD64_YMM4, 372)
  245. CV_REGISTER(AMD64_YMM5, 373)
  246. CV_REGISTER(AMD64_YMM6, 374)
  247. CV_REGISTER(AMD64_YMM7, 375)
  248. CV_REGISTER(AMD64_YMM8, 376)
  249. CV_REGISTER(AMD64_YMM9, 377)
  250. CV_REGISTER(AMD64_YMM10, 378)
  251. CV_REGISTER(AMD64_YMM11, 379)
  252. CV_REGISTER(AMD64_YMM12, 380)
  253. CV_REGISTER(AMD64_YMM13, 381)
  254. CV_REGISTER(AMD64_YMM14, 382)
  255. CV_REGISTER(AMD64_YMM15, 383)
  256. CV_REGISTER(AMD64_XMM16, 694)
  257. CV_REGISTER(AMD64_XMM17, 695)
  258. CV_REGISTER(AMD64_XMM18, 696)
  259. CV_REGISTER(AMD64_XMM19, 697)
  260. CV_REGISTER(AMD64_XMM20, 698)
  261. CV_REGISTER(AMD64_XMM21, 699)
  262. CV_REGISTER(AMD64_XMM22, 700)
  263. CV_REGISTER(AMD64_XMM23, 701)
  264. CV_REGISTER(AMD64_XMM24, 702)
  265. CV_REGISTER(AMD64_XMM25, 703)
  266. CV_REGISTER(AMD64_XMM26, 704)
  267. CV_REGISTER(AMD64_XMM27, 705)
  268. CV_REGISTER(AMD64_XMM28, 706)
  269. CV_REGISTER(AMD64_XMM29, 707)
  270. CV_REGISTER(AMD64_XMM30, 708)
  271. CV_REGISTER(AMD64_XMM31, 709)
  272. CV_REGISTER(AMD64_YMM16, 710)
  273. CV_REGISTER(AMD64_YMM17, 711)
  274. CV_REGISTER(AMD64_YMM18, 712)
  275. CV_REGISTER(AMD64_YMM19, 713)
  276. CV_REGISTER(AMD64_YMM20, 714)
  277. CV_REGISTER(AMD64_YMM21, 715)
  278. CV_REGISTER(AMD64_YMM22, 716)
  279. CV_REGISTER(AMD64_YMM23, 717)
  280. CV_REGISTER(AMD64_YMM24, 718)
  281. CV_REGISTER(AMD64_YMM25, 719)
  282. CV_REGISTER(AMD64_YMM26, 720)
  283. CV_REGISTER(AMD64_YMM27, 721)
  284. CV_REGISTER(AMD64_YMM28, 722)
  285. CV_REGISTER(AMD64_YMM29, 723)
  286. CV_REGISTER(AMD64_YMM30, 724)
  287. CV_REGISTER(AMD64_YMM31, 725)
  288. CV_REGISTER(AMD64_ZMM0, 726)
  289. CV_REGISTER(AMD64_ZMM1, 727)
  290. CV_REGISTER(AMD64_ZMM2, 728)
  291. CV_REGISTER(AMD64_ZMM3, 729)
  292. CV_REGISTER(AMD64_ZMM4, 730)
  293. CV_REGISTER(AMD64_ZMM5, 731)
  294. CV_REGISTER(AMD64_ZMM6, 732)
  295. CV_REGISTER(AMD64_ZMM7, 733)
  296. CV_REGISTER(AMD64_ZMM8, 734)
  297. CV_REGISTER(AMD64_ZMM9, 735)
  298. CV_REGISTER(AMD64_ZMM10, 736)
  299. CV_REGISTER(AMD64_ZMM11, 737)
  300. CV_REGISTER(AMD64_ZMM12, 738)
  301. CV_REGISTER(AMD64_ZMM13, 739)
  302. CV_REGISTER(AMD64_ZMM14, 740)
  303. CV_REGISTER(AMD64_ZMM15, 741)
  304. CV_REGISTER(AMD64_ZMM16, 742)
  305. CV_REGISTER(AMD64_ZMM17, 743)
  306. CV_REGISTER(AMD64_ZMM18, 744)
  307. CV_REGISTER(AMD64_ZMM19, 745)
  308. CV_REGISTER(AMD64_ZMM20, 746)
  309. CV_REGISTER(AMD64_ZMM21, 747)
  310. CV_REGISTER(AMD64_ZMM22, 748)
  311. CV_REGISTER(AMD64_ZMM23, 749)
  312. CV_REGISTER(AMD64_ZMM24, 750)
  313. CV_REGISTER(AMD64_ZMM25, 751)
  314. CV_REGISTER(AMD64_ZMM26, 752)
  315. CV_REGISTER(AMD64_ZMM27, 753)
  316. CV_REGISTER(AMD64_ZMM28, 754)
  317. CV_REGISTER(AMD64_ZMM29, 755)
  318. CV_REGISTER(AMD64_ZMM30, 756)
  319. CV_REGISTER(AMD64_ZMM31, 757)
  320. CV_REGISTER(AMD64_K0, 758)
  321. CV_REGISTER(AMD64_K1, 759)
  322. CV_REGISTER(AMD64_K2, 760)
  323. CV_REGISTER(AMD64_K3, 761)
  324. CV_REGISTER(AMD64_K4, 762)
  325. CV_REGISTER(AMD64_K5, 763)
  326. CV_REGISTER(AMD64_K6, 764)
  327. CV_REGISTER(AMD64_K7, 765)
  328. #pragma pop_macro("CR0")
  329. #pragma pop_macro("CR1")
  330. #pragma pop_macro("CR2")
  331. #pragma pop_macro("CR3")
  332. #pragma pop_macro("CR4")
  333. #endif // defined(CV_REGISTERS_ALL) || defined(CV_REGISTERS_X86)
  334. #if defined(CV_REGISTERS_ALL) || defined(CV_REGISTERS_ARM)
  335. // ARM registers
  336. CV_REGISTER(ARM_NOREG, 0)
  337. // General purpose 32-bit integer registers
  338. CV_REGISTER(ARM_R0, 10)
  339. CV_REGISTER(ARM_R1, 11)
  340. CV_REGISTER(ARM_R2, 12)
  341. CV_REGISTER(ARM_R3, 13)
  342. CV_REGISTER(ARM_R4, 14)
  343. CV_REGISTER(ARM_R5, 15)
  344. CV_REGISTER(ARM_R6, 16)
  345. CV_REGISTER(ARM_R7, 17)
  346. CV_REGISTER(ARM_R8, 18)
  347. CV_REGISTER(ARM_R9, 19)
  348. CV_REGISTER(ARM_R10, 20)
  349. CV_REGISTER(ARM_R11, 21)
  350. CV_REGISTER(ARM_R12, 22)
  351. CV_REGISTER(ARM_SP, 23)
  352. CV_REGISTER(ARM_LR, 24)
  353. CV_REGISTER(ARM_PC, 25)
  354. // Status register
  355. CV_REGISTER(ARM_CPSR, 26)
  356. // ARM VFPv1 registers
  357. CV_REGISTER(ARM_FPSCR, 40)
  358. CV_REGISTER(ARM_FPEXC, 41)
  359. CV_REGISTER(ARM_FS0, 50)
  360. CV_REGISTER(ARM_FS1, 51)
  361. CV_REGISTER(ARM_FS2, 52)
  362. CV_REGISTER(ARM_FS3, 53)
  363. CV_REGISTER(ARM_FS4, 54)
  364. CV_REGISTER(ARM_FS5, 55)
  365. CV_REGISTER(ARM_FS6, 56)
  366. CV_REGISTER(ARM_FS7, 57)
  367. CV_REGISTER(ARM_FS8, 58)
  368. CV_REGISTER(ARM_FS9, 59)
  369. CV_REGISTER(ARM_FS10, 60)
  370. CV_REGISTER(ARM_FS11, 61)
  371. CV_REGISTER(ARM_FS12, 62)
  372. CV_REGISTER(ARM_FS13, 63)
  373. CV_REGISTER(ARM_FS14, 64)
  374. CV_REGISTER(ARM_FS15, 65)
  375. CV_REGISTER(ARM_FS16, 66)
  376. CV_REGISTER(ARM_FS17, 67)
  377. CV_REGISTER(ARM_FS18, 68)
  378. CV_REGISTER(ARM_FS19, 69)
  379. CV_REGISTER(ARM_FS20, 70)
  380. CV_REGISTER(ARM_FS21, 71)
  381. CV_REGISTER(ARM_FS22, 72)
  382. CV_REGISTER(ARM_FS23, 73)
  383. CV_REGISTER(ARM_FS24, 74)
  384. CV_REGISTER(ARM_FS25, 75)
  385. CV_REGISTER(ARM_FS26, 76)
  386. CV_REGISTER(ARM_FS27, 77)
  387. CV_REGISTER(ARM_FS28, 78)
  388. CV_REGISTER(ARM_FS29, 79)
  389. CV_REGISTER(ARM_FS30, 80)
  390. CV_REGISTER(ARM_FS31, 81)
  391. // ARM VFPv3/NEON registers
  392. CV_REGISTER(ARM_FS32, 200)
  393. CV_REGISTER(ARM_FS33, 201)
  394. CV_REGISTER(ARM_FS34, 202)
  395. CV_REGISTER(ARM_FS35, 203)
  396. CV_REGISTER(ARM_FS36, 204)
  397. CV_REGISTER(ARM_FS37, 205)
  398. CV_REGISTER(ARM_FS38, 206)
  399. CV_REGISTER(ARM_FS39, 207)
  400. CV_REGISTER(ARM_FS40, 208)
  401. CV_REGISTER(ARM_FS41, 209)
  402. CV_REGISTER(ARM_FS42, 210)
  403. CV_REGISTER(ARM_FS43, 211)
  404. CV_REGISTER(ARM_FS44, 212)
  405. CV_REGISTER(ARM_FS45, 213)
  406. CV_REGISTER(ARM_FS46, 214)
  407. CV_REGISTER(ARM_FS47, 215)
  408. CV_REGISTER(ARM_FS48, 216)
  409. CV_REGISTER(ARM_FS49, 217)
  410. CV_REGISTER(ARM_FS50, 218)
  411. CV_REGISTER(ARM_FS51, 219)
  412. CV_REGISTER(ARM_FS52, 220)
  413. CV_REGISTER(ARM_FS53, 221)
  414. CV_REGISTER(ARM_FS54, 222)
  415. CV_REGISTER(ARM_FS55, 223)
  416. CV_REGISTER(ARM_FS56, 224)
  417. CV_REGISTER(ARM_FS57, 225)
  418. CV_REGISTER(ARM_FS58, 226)
  419. CV_REGISTER(ARM_FS59, 227)
  420. CV_REGISTER(ARM_FS60, 228)
  421. CV_REGISTER(ARM_FS61, 229)
  422. CV_REGISTER(ARM_FS62, 230)
  423. CV_REGISTER(ARM_FS63, 231)
  424. CV_REGISTER(ARM_ND0, 300)
  425. CV_REGISTER(ARM_ND1, 301)
  426. CV_REGISTER(ARM_ND2, 302)
  427. CV_REGISTER(ARM_ND3, 303)
  428. CV_REGISTER(ARM_ND4, 304)
  429. CV_REGISTER(ARM_ND5, 305)
  430. CV_REGISTER(ARM_ND6, 306)
  431. CV_REGISTER(ARM_ND7, 307)
  432. CV_REGISTER(ARM_ND8, 308)
  433. CV_REGISTER(ARM_ND9, 309)
  434. CV_REGISTER(ARM_ND10, 310)
  435. CV_REGISTER(ARM_ND11, 311)
  436. CV_REGISTER(ARM_ND12, 312)
  437. CV_REGISTER(ARM_ND13, 313)
  438. CV_REGISTER(ARM_ND14, 314)
  439. CV_REGISTER(ARM_ND15, 315)
  440. CV_REGISTER(ARM_ND16, 316)
  441. CV_REGISTER(ARM_ND17, 317)
  442. CV_REGISTER(ARM_ND18, 318)
  443. CV_REGISTER(ARM_ND19, 319)
  444. CV_REGISTER(ARM_ND20, 320)
  445. CV_REGISTER(ARM_ND21, 321)
  446. CV_REGISTER(ARM_ND22, 322)
  447. CV_REGISTER(ARM_ND23, 323)
  448. CV_REGISTER(ARM_ND24, 324)
  449. CV_REGISTER(ARM_ND25, 325)
  450. CV_REGISTER(ARM_ND26, 326)
  451. CV_REGISTER(ARM_ND27, 327)
  452. CV_REGISTER(ARM_ND28, 328)
  453. CV_REGISTER(ARM_ND29, 329)
  454. CV_REGISTER(ARM_ND30, 330)
  455. CV_REGISTER(ARM_ND31, 331)
  456. CV_REGISTER(ARM_NQ0, 400)
  457. CV_REGISTER(ARM_NQ1, 401)
  458. CV_REGISTER(ARM_NQ2, 402)
  459. CV_REGISTER(ARM_NQ3, 403)
  460. CV_REGISTER(ARM_NQ4, 404)
  461. CV_REGISTER(ARM_NQ5, 405)
  462. CV_REGISTER(ARM_NQ6, 406)
  463. CV_REGISTER(ARM_NQ7, 407)
  464. CV_REGISTER(ARM_NQ8, 408)
  465. CV_REGISTER(ARM_NQ9, 409)
  466. CV_REGISTER(ARM_NQ10, 410)
  467. CV_REGISTER(ARM_NQ11, 411)
  468. CV_REGISTER(ARM_NQ12, 412)
  469. CV_REGISTER(ARM_NQ13, 413)
  470. CV_REGISTER(ARM_NQ14, 414)
  471. CV_REGISTER(ARM_NQ15, 415)
  472. #endif // defined(CV_REGISTERS_ALL) || defined(CV_REGISTERS_ARM)
  473. #if defined(CV_REGISTERS_ALL) || defined(CV_REGISTERS_ARM64)
  474. // arm64intr.h from MSVC defines ARM64_FPSR and ARM64_FPCR, which conflicts with
  475. // these declarations.
  476. #pragma push_macro("ARM64_FPSR")
  477. #pragma push_macro("ARM64_FPCR")
  478. #undef ARM64_FPSR
  479. #undef ARM64_FPCR
  480. // ARM64 registers
  481. CV_REGISTER(ARM64_NOREG, 0)
  482. // General purpose 32-bit integer registers
  483. CV_REGISTER(ARM64_W0, 10)
  484. CV_REGISTER(ARM64_W1, 11)
  485. CV_REGISTER(ARM64_W2, 12)
  486. CV_REGISTER(ARM64_W3, 13)
  487. CV_REGISTER(ARM64_W4, 14)
  488. CV_REGISTER(ARM64_W5, 15)
  489. CV_REGISTER(ARM64_W6, 16)
  490. CV_REGISTER(ARM64_W7, 17)
  491. CV_REGISTER(ARM64_W8, 18)
  492. CV_REGISTER(ARM64_W9, 19)
  493. CV_REGISTER(ARM64_W10, 20)
  494. CV_REGISTER(ARM64_W11, 21)
  495. CV_REGISTER(ARM64_W12, 22)
  496. CV_REGISTER(ARM64_W13, 23)
  497. CV_REGISTER(ARM64_W14, 24)
  498. CV_REGISTER(ARM64_W15, 25)
  499. CV_REGISTER(ARM64_W16, 26)
  500. CV_REGISTER(ARM64_W17, 27)
  501. CV_REGISTER(ARM64_W18, 28)
  502. CV_REGISTER(ARM64_W19, 29)
  503. CV_REGISTER(ARM64_W20, 30)
  504. CV_REGISTER(ARM64_W21, 31)
  505. CV_REGISTER(ARM64_W22, 32)
  506. CV_REGISTER(ARM64_W23, 33)
  507. CV_REGISTER(ARM64_W24, 34)
  508. CV_REGISTER(ARM64_W25, 35)
  509. CV_REGISTER(ARM64_W26, 36)
  510. CV_REGISTER(ARM64_W27, 37)
  511. CV_REGISTER(ARM64_W28, 38)
  512. CV_REGISTER(ARM64_W29, 39)
  513. CV_REGISTER(ARM64_W30, 40)
  514. CV_REGISTER(ARM64_WZR, 41)
  515. // General purpose 64-bit integer registers
  516. CV_REGISTER(ARM64_X0, 50)
  517. CV_REGISTER(ARM64_X1, 51)
  518. CV_REGISTER(ARM64_X2, 52)
  519. CV_REGISTER(ARM64_X3, 53)
  520. CV_REGISTER(ARM64_X4, 54)
  521. CV_REGISTER(ARM64_X5, 55)
  522. CV_REGISTER(ARM64_X6, 56)
  523. CV_REGISTER(ARM64_X7, 57)
  524. CV_REGISTER(ARM64_X8, 58)
  525. CV_REGISTER(ARM64_X9, 59)
  526. CV_REGISTER(ARM64_X10, 60)
  527. CV_REGISTER(ARM64_X11, 61)
  528. CV_REGISTER(ARM64_X12, 62)
  529. CV_REGISTER(ARM64_X13, 63)
  530. CV_REGISTER(ARM64_X14, 64)
  531. CV_REGISTER(ARM64_X15, 65)
  532. CV_REGISTER(ARM64_X16, 66)
  533. CV_REGISTER(ARM64_X17, 67)
  534. CV_REGISTER(ARM64_X18, 68)
  535. CV_REGISTER(ARM64_X19, 69)
  536. CV_REGISTER(ARM64_X20, 70)
  537. CV_REGISTER(ARM64_X21, 71)
  538. CV_REGISTER(ARM64_X22, 72)
  539. CV_REGISTER(ARM64_X23, 73)
  540. CV_REGISTER(ARM64_X24, 74)
  541. CV_REGISTER(ARM64_X25, 75)
  542. CV_REGISTER(ARM64_X26, 76)
  543. CV_REGISTER(ARM64_X27, 77)
  544. CV_REGISTER(ARM64_X28, 78)
  545. CV_REGISTER(ARM64_FP, 79)
  546. CV_REGISTER(ARM64_LR, 80)
  547. CV_REGISTER(ARM64_SP, 81)
  548. CV_REGISTER(ARM64_ZR, 82)
  549. // status register
  550. CV_REGISTER(ARM64_NZCV, 90)
  551. // 32-bit floating point registers
  552. CV_REGISTER(ARM64_S0, 100)
  553. CV_REGISTER(ARM64_S1, 101)
  554. CV_REGISTER(ARM64_S2, 102)
  555. CV_REGISTER(ARM64_S3, 103)
  556. CV_REGISTER(ARM64_S4, 104)
  557. CV_REGISTER(ARM64_S5, 105)
  558. CV_REGISTER(ARM64_S6, 106)
  559. CV_REGISTER(ARM64_S7, 107)
  560. CV_REGISTER(ARM64_S8, 108)
  561. CV_REGISTER(ARM64_S9, 109)
  562. CV_REGISTER(ARM64_S10, 110)
  563. CV_REGISTER(ARM64_S11, 111)
  564. CV_REGISTER(ARM64_S12, 112)
  565. CV_REGISTER(ARM64_S13, 113)
  566. CV_REGISTER(ARM64_S14, 114)
  567. CV_REGISTER(ARM64_S15, 115)
  568. CV_REGISTER(ARM64_S16, 116)
  569. CV_REGISTER(ARM64_S17, 117)
  570. CV_REGISTER(ARM64_S18, 118)
  571. CV_REGISTER(ARM64_S19, 119)
  572. CV_REGISTER(ARM64_S20, 120)
  573. CV_REGISTER(ARM64_S21, 121)
  574. CV_REGISTER(ARM64_S22, 122)
  575. CV_REGISTER(ARM64_S23, 123)
  576. CV_REGISTER(ARM64_S24, 124)
  577. CV_REGISTER(ARM64_S25, 125)
  578. CV_REGISTER(ARM64_S26, 126)
  579. CV_REGISTER(ARM64_S27, 127)
  580. CV_REGISTER(ARM64_S28, 128)
  581. CV_REGISTER(ARM64_S29, 129)
  582. CV_REGISTER(ARM64_S30, 130)
  583. CV_REGISTER(ARM64_S31, 131)
  584. // 64-bit floating point registers
  585. CV_REGISTER(ARM64_D0, 140)
  586. CV_REGISTER(ARM64_D1, 141)
  587. CV_REGISTER(ARM64_D2, 142)
  588. CV_REGISTER(ARM64_D3, 143)
  589. CV_REGISTER(ARM64_D4, 144)
  590. CV_REGISTER(ARM64_D5, 145)
  591. CV_REGISTER(ARM64_D6, 146)
  592. CV_REGISTER(ARM64_D7, 147)
  593. CV_REGISTER(ARM64_D8, 148)
  594. CV_REGISTER(ARM64_D9, 149)
  595. CV_REGISTER(ARM64_D10, 150)
  596. CV_REGISTER(ARM64_D11, 151)
  597. CV_REGISTER(ARM64_D12, 152)
  598. CV_REGISTER(ARM64_D13, 153)
  599. CV_REGISTER(ARM64_D14, 154)
  600. CV_REGISTER(ARM64_D15, 155)
  601. CV_REGISTER(ARM64_D16, 156)
  602. CV_REGISTER(ARM64_D17, 157)
  603. CV_REGISTER(ARM64_D18, 158)
  604. CV_REGISTER(ARM64_D19, 159)
  605. CV_REGISTER(ARM64_D20, 160)
  606. CV_REGISTER(ARM64_D21, 161)
  607. CV_REGISTER(ARM64_D22, 162)
  608. CV_REGISTER(ARM64_D23, 163)
  609. CV_REGISTER(ARM64_D24, 164)
  610. CV_REGISTER(ARM64_D25, 165)
  611. CV_REGISTER(ARM64_D26, 166)
  612. CV_REGISTER(ARM64_D27, 167)
  613. CV_REGISTER(ARM64_D28, 168)
  614. CV_REGISTER(ARM64_D29, 169)
  615. CV_REGISTER(ARM64_D30, 170)
  616. CV_REGISTER(ARM64_D31, 171)
  617. // 128-bit SIMD registers
  618. CV_REGISTER(ARM64_Q0, 180)
  619. CV_REGISTER(ARM64_Q1, 181)
  620. CV_REGISTER(ARM64_Q2, 182)
  621. CV_REGISTER(ARM64_Q3, 183)
  622. CV_REGISTER(ARM64_Q4, 184)
  623. CV_REGISTER(ARM64_Q5, 185)
  624. CV_REGISTER(ARM64_Q6, 186)
  625. CV_REGISTER(ARM64_Q7, 187)
  626. CV_REGISTER(ARM64_Q8, 188)
  627. CV_REGISTER(ARM64_Q9, 189)
  628. CV_REGISTER(ARM64_Q10, 190)
  629. CV_REGISTER(ARM64_Q11, 191)
  630. CV_REGISTER(ARM64_Q12, 192)
  631. CV_REGISTER(ARM64_Q13, 193)
  632. CV_REGISTER(ARM64_Q14, 194)
  633. CV_REGISTER(ARM64_Q15, 195)
  634. CV_REGISTER(ARM64_Q16, 196)
  635. CV_REGISTER(ARM64_Q17, 197)
  636. CV_REGISTER(ARM64_Q18, 198)
  637. CV_REGISTER(ARM64_Q19, 199)
  638. CV_REGISTER(ARM64_Q20, 200)
  639. CV_REGISTER(ARM64_Q21, 201)
  640. CV_REGISTER(ARM64_Q22, 202)
  641. CV_REGISTER(ARM64_Q23, 203)
  642. CV_REGISTER(ARM64_Q24, 204)
  643. CV_REGISTER(ARM64_Q25, 205)
  644. CV_REGISTER(ARM64_Q26, 206)
  645. CV_REGISTER(ARM64_Q27, 207)
  646. CV_REGISTER(ARM64_Q28, 208)
  647. CV_REGISTER(ARM64_Q29, 209)
  648. CV_REGISTER(ARM64_Q30, 210)
  649. CV_REGISTER(ARM64_Q31, 211)
  650. // Floating point status register
  651. CV_REGISTER(ARM64_FPSR, 220)
  652. CV_REGISTER(ARM64_FPCR, 221)
  653. // 8 bit floating point registers
  654. CV_REGISTER(ARM64_B0, 230)
  655. CV_REGISTER(ARM64_B1, 231)
  656. CV_REGISTER(ARM64_B2, 232)
  657. CV_REGISTER(ARM64_B3, 233)
  658. CV_REGISTER(ARM64_B4, 234)
  659. CV_REGISTER(ARM64_B5, 235)
  660. CV_REGISTER(ARM64_B6, 236)
  661. CV_REGISTER(ARM64_B7, 237)
  662. CV_REGISTER(ARM64_B8, 238)
  663. CV_REGISTER(ARM64_B9, 239)
  664. CV_REGISTER(ARM64_B10, 240)
  665. CV_REGISTER(ARM64_B11, 241)
  666. CV_REGISTER(ARM64_B12, 242)
  667. CV_REGISTER(ARM64_B13, 243)
  668. CV_REGISTER(ARM64_B14, 244)
  669. CV_REGISTER(ARM64_B15, 245)
  670. CV_REGISTER(ARM64_B16, 246)
  671. CV_REGISTER(ARM64_B17, 247)
  672. CV_REGISTER(ARM64_B18, 248)
  673. CV_REGISTER(ARM64_B19, 249)
  674. CV_REGISTER(ARM64_B20, 250)
  675. CV_REGISTER(ARM64_B21, 251)
  676. CV_REGISTER(ARM64_B22, 252)
  677. CV_REGISTER(ARM64_B23, 253)
  678. CV_REGISTER(ARM64_B24, 254)
  679. CV_REGISTER(ARM64_B25, 255)
  680. CV_REGISTER(ARM64_B26, 256)
  681. CV_REGISTER(ARM64_B27, 257)
  682. CV_REGISTER(ARM64_B28, 258)
  683. CV_REGISTER(ARM64_B29, 259)
  684. CV_REGISTER(ARM64_B30, 260)
  685. CV_REGISTER(ARM64_B31, 261)
  686. // 16 bit floating point registers
  687. CV_REGISTER(ARM64_H0, 270)
  688. CV_REGISTER(ARM64_H1, 271)
  689. CV_REGISTER(ARM64_H2, 272)
  690. CV_REGISTER(ARM64_H3, 273)
  691. CV_REGISTER(ARM64_H4, 274)
  692. CV_REGISTER(ARM64_H5, 275)
  693. CV_REGISTER(ARM64_H6, 276)
  694. CV_REGISTER(ARM64_H7, 277)
  695. CV_REGISTER(ARM64_H8, 278)
  696. CV_REGISTER(ARM64_H9, 279)
  697. CV_REGISTER(ARM64_H10, 280)
  698. CV_REGISTER(ARM64_H11, 281)
  699. CV_REGISTER(ARM64_H12, 282)
  700. CV_REGISTER(ARM64_H13, 283)
  701. CV_REGISTER(ARM64_H14, 284)
  702. CV_REGISTER(ARM64_H15, 285)
  703. CV_REGISTER(ARM64_H16, 286)
  704. CV_REGISTER(ARM64_H17, 287)
  705. CV_REGISTER(ARM64_H18, 288)
  706. CV_REGISTER(ARM64_H19, 289)
  707. CV_REGISTER(ARM64_H20, 290)
  708. CV_REGISTER(ARM64_H21, 291)
  709. CV_REGISTER(ARM64_H22, 292)
  710. CV_REGISTER(ARM64_H23, 293)
  711. CV_REGISTER(ARM64_H24, 294)
  712. CV_REGISTER(ARM64_H25, 295)
  713. CV_REGISTER(ARM64_H26, 296)
  714. CV_REGISTER(ARM64_H27, 297)
  715. CV_REGISTER(ARM64_H28, 298)
  716. CV_REGISTER(ARM64_H29, 299)
  717. CV_REGISTER(ARM64_H30, 300)
  718. CV_REGISTER(ARM64_H31, 301)
  719. #pragma pop_macro("ARM64_FPSR")
  720. #pragma pop_macro("ARM64_FPCR")
  721. #endif // defined(CV_REGISTERS_ALL) || defined(CV_REGISTERS_ARM64)