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

source code of llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def