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