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