//===-- CodeViewRegisters.def - CodeView registers --------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// See CV_HREG_e in cvconst.h. This should match the constants there.
//
//===----------------------------------------------------------------------===//

#ifndef CV_REGISTER
#define CV_REGISTER(name, value)
#endif

// This currently only contains the "register subset shared by all processor
// types" (ERR etc.) and the x86 registers.

CV_REGISTER(CVRegERR, 30000)
CV_REGISTER(CVRegTEB, 30001)
CV_REGISTER(CVRegTIMER, 30002)
CV_REGISTER(CVRegEFAD1, 30003)
CV_REGISTER(CVRegEFAD2, 30004)
CV_REGISTER(CVRegEFAD3, 30005)
CV_REGISTER(CVRegVFRAME, 30006)
CV_REGISTER(CVRegHANDLE, 30007)
CV_REGISTER(CVRegPARAMS, 30008)
CV_REGISTER(CVRegLOCALS, 30009)
CV_REGISTER(CVRegTID, 30010)
CV_REGISTER(CVRegENV, 30011)
CV_REGISTER(CVRegCMDLN, 30012)

CV_REGISTER(CVRegNONE, 0)
CV_REGISTER(CVRegAL, 1)
CV_REGISTER(CVRegCL, 2)
CV_REGISTER(CVRegDL, 3)
CV_REGISTER(CVRegBL, 4)
CV_REGISTER(CVRegAH, 5)
CV_REGISTER(CVRegCH, 6)
CV_REGISTER(CVRegDH, 7)
CV_REGISTER(CVRegBH, 8)
CV_REGISTER(CVRegAX, 9)
CV_REGISTER(CVRegCX, 10)
CV_REGISTER(CVRegDX, 11)
CV_REGISTER(CVRegBX, 12)
CV_REGISTER(CVRegSP, 13)
CV_REGISTER(CVRegBP, 14)
CV_REGISTER(CVRegSI, 15)
CV_REGISTER(CVRegDI, 16)
CV_REGISTER(CVRegEAX, 17)
CV_REGISTER(CVRegECX, 18)
CV_REGISTER(CVRegEDX, 19)
CV_REGISTER(CVRegEBX, 20)
CV_REGISTER(CVRegESP, 21)
CV_REGISTER(CVRegEBP, 22)
CV_REGISTER(CVRegESI, 23)
CV_REGISTER(CVRegEDI, 24)
CV_REGISTER(CVRegES, 25)
CV_REGISTER(CVRegCS, 26)
CV_REGISTER(CVRegSS, 27)
CV_REGISTER(CVRegDS, 28)
CV_REGISTER(CVRegFS, 29)
CV_REGISTER(CVRegGS, 30)
CV_REGISTER(CVRegIP, 31)
CV_REGISTER(CVRegFLAGS, 32)
CV_REGISTER(CVRegEIP, 33)
CV_REGISTER(CVRegEFLAGS, 34)
CV_REGISTER(CVRegTEMP, 40)
CV_REGISTER(CVRegTEMPH, 41)
CV_REGISTER(CVRegQUOTE, 42)
CV_REGISTER(CVRegPCDR3, 43)
CV_REGISTER(CVRegPCDR4, 44)
CV_REGISTER(CVRegPCDR5, 45)
CV_REGISTER(CVRegPCDR6, 46)
CV_REGISTER(CVRegPCDR7, 47)
CV_REGISTER(CVRegCR0, 80)
CV_REGISTER(CVRegCR1, 81)
CV_REGISTER(CVRegCR2, 82)
CV_REGISTER(CVRegCR3, 83)
CV_REGISTER(CVRegCR4, 84)
CV_REGISTER(CVRegDR0, 90)
CV_REGISTER(CVRegDR1, 91)
CV_REGISTER(CVRegDR2, 92)
CV_REGISTER(CVRegDR3, 93)
CV_REGISTER(CVRegDR4, 94)
CV_REGISTER(CVRegDR5, 95)
CV_REGISTER(CVRegDR6, 96)
CV_REGISTER(CVRegDR7, 97)
CV_REGISTER(CVRegGDTR, 110)
CV_REGISTER(CVRegGDTL, 111)
CV_REGISTER(CVRegIDTR, 112)
CV_REGISTER(CVRegIDTL, 113)
CV_REGISTER(CVRegLDTR, 114)
CV_REGISTER(CVRegTR, 115)

CV_REGISTER(CVRegPSEUDO1, 116)
CV_REGISTER(CVRegPSEUDO2, 117)
CV_REGISTER(CVRegPSEUDO3, 118)
CV_REGISTER(CVRegPSEUDO4, 119)
CV_REGISTER(CVRegPSEUDO5, 120)
CV_REGISTER(CVRegPSEUDO6, 121)
CV_REGISTER(CVRegPSEUDO7, 122)
CV_REGISTER(CVRegPSEUDO8, 123)
CV_REGISTER(CVRegPSEUDO9, 124)

CV_REGISTER(CVRegST0, 128)
CV_REGISTER(CVRegST1, 129)
CV_REGISTER(CVRegST2, 130)
CV_REGISTER(CVRegST3, 131)
CV_REGISTER(CVRegST4, 132)
CV_REGISTER(CVRegST5, 133)
CV_REGISTER(CVRegST6, 134)
CV_REGISTER(CVRegST7, 135)
CV_REGISTER(CVRegCTRL, 136)
CV_REGISTER(CVRegSTAT, 137)
CV_REGISTER(CVRegTAG, 138)
CV_REGISTER(CVRegFPIP, 139)
CV_REGISTER(CVRegFPCS, 140)
CV_REGISTER(CVRegFPDO, 141)
CV_REGISTER(CVRegFPDS, 142)
CV_REGISTER(CVRegISEM, 143)
CV_REGISTER(CVRegFPEIP, 144)
CV_REGISTER(CVRegFPEDO, 145)

CV_REGISTER(CVRegMM0, 146)
CV_REGISTER(CVRegMM1, 147)
CV_REGISTER(CVRegMM2, 148)
CV_REGISTER(CVRegMM3, 149)
CV_REGISTER(CVRegMM4, 150)
CV_REGISTER(CVRegMM5, 151)
CV_REGISTER(CVRegMM6, 152)
CV_REGISTER(CVRegMM7, 153)

CV_REGISTER(CVRegXMM0, 154)
CV_REGISTER(CVRegXMM1, 155)
CV_REGISTER(CVRegXMM2, 156)
CV_REGISTER(CVRegXMM3, 157)
CV_REGISTER(CVRegXMM4, 158)
CV_REGISTER(CVRegXMM5, 159)
CV_REGISTER(CVRegXMM6, 160)
CV_REGISTER(CVRegXMM7, 161)

CV_REGISTER(CVRegMXCSR, 211)

CV_REGISTER(CVRegEDXEAX, 212)

CV_REGISTER(CVRegEMM0L, 220)
CV_REGISTER(CVRegEMM1L, 221)
CV_REGISTER(CVRegEMM2L, 222)
CV_REGISTER(CVRegEMM3L, 223)
CV_REGISTER(CVRegEMM4L, 224)
CV_REGISTER(CVRegEMM5L, 225)
CV_REGISTER(CVRegEMM6L, 226)
CV_REGISTER(CVRegEMM7L, 227)

CV_REGISTER(CVRegEMM0H, 228)
CV_REGISTER(CVRegEMM1H, 229)
CV_REGISTER(CVRegEMM2H, 230)
CV_REGISTER(CVRegEMM3H, 231)
CV_REGISTER(CVRegEMM4H, 232)
CV_REGISTER(CVRegEMM5H, 233)
CV_REGISTER(CVRegEMM6H, 234)
CV_REGISTER(CVRegEMM7H, 235)

CV_REGISTER(CVRegMM00, 236)
CV_REGISTER(CVRegMM01, 237)
CV_REGISTER(CVRegMM10, 238)
CV_REGISTER(CVRegMM11, 239)
CV_REGISTER(CVRegMM20, 240)
CV_REGISTER(CVRegMM21, 241)
CV_REGISTER(CVRegMM30, 242)
CV_REGISTER(CVRegMM31, 243)
CV_REGISTER(CVRegMM40, 244)
CV_REGISTER(CVRegMM41, 245)
CV_REGISTER(CVRegMM50, 246)
CV_REGISTER(CVRegMM51, 247)
CV_REGISTER(CVRegMM60, 248)
CV_REGISTER(CVRegMM61, 249)
CV_REGISTER(CVRegMM70, 250)
CV_REGISTER(CVRegMM71, 251)

CV_REGISTER(CVRegBND0, 396)
CV_REGISTER(CVRegBND1, 397)
CV_REGISTER(CVRegBND2, 398)


CV_REGISTER(CVRegXMM8, 252)
CV_REGISTER(CVRegXMM9, 253)
CV_REGISTER(CVRegXMM10, 254)
CV_REGISTER(CVRegXMM11, 255)
CV_REGISTER(CVRegXMM12, 256)
CV_REGISTER(CVRegXMM13, 257)
CV_REGISTER(CVRegXMM14, 258)
CV_REGISTER(CVRegXMM15, 259)


CV_REGISTER(CVRegSIL, 324)
CV_REGISTER(CVRegDIL, 325)
CV_REGISTER(CVRegBPL, 326)
CV_REGISTER(CVRegSPL, 327)

CV_REGISTER(CVRegRAX, 328)
CV_REGISTER(CVRegRBX, 329)
CV_REGISTER(CVRegRCX, 330)
CV_REGISTER(CVRegRDX, 331)
CV_REGISTER(CVRegRSI, 332)
CV_REGISTER(CVRegRDI, 333)
CV_REGISTER(CVRegRBP, 334)
CV_REGISTER(CVRegRSP, 335)

CV_REGISTER(CVRegR8, 336)
CV_REGISTER(CVRegR9, 337)
CV_REGISTER(CVRegR10, 338)
CV_REGISTER(CVRegR11, 339)
CV_REGISTER(CVRegR12, 340)
CV_REGISTER(CVRegR13, 341)
CV_REGISTER(CVRegR14, 342)
CV_REGISTER(CVRegR15, 343)

CV_REGISTER(CVRegR8B, 344)
CV_REGISTER(CVRegR9B, 345)
CV_REGISTER(CVRegR10B, 346)
CV_REGISTER(CVRegR11B, 347)
CV_REGISTER(CVRegR12B, 348)
CV_REGISTER(CVRegR13B, 349)
CV_REGISTER(CVRegR14B, 350)
CV_REGISTER(CVRegR15B, 351)

CV_REGISTER(CVRegR8W, 352)
CV_REGISTER(CVRegR9W, 353)
CV_REGISTER(CVRegR10W, 354)
CV_REGISTER(CVRegR11W, 355)
CV_REGISTER(CVRegR12W, 356)
CV_REGISTER(CVRegR13W, 357)
CV_REGISTER(CVRegR14W, 358)
CV_REGISTER(CVRegR15W, 359)

CV_REGISTER(CVRegR8D, 360)
CV_REGISTER(CVRegR9D, 361)
CV_REGISTER(CVRegR10D, 362)
CV_REGISTER(CVRegR11D, 363)
CV_REGISTER(CVRegR12D, 364)
CV_REGISTER(CVRegR13D, 365)
CV_REGISTER(CVRegR14D, 366)
CV_REGISTER(CVRegR15D, 367)


// cvconst.h defines both CV_REG_YMM0 (252) and CV_AMD64_YMM0 (368). Keep the
// original prefix to distinguish them.

CV_REGISTER(CVRegAMD64_YMM0, 368)
CV_REGISTER(CVRegAMD64_YMM1, 369)
CV_REGISTER(CVRegAMD64_YMM2, 370)
CV_REGISTER(CVRegAMD64_YMM3, 371)
CV_REGISTER(CVRegAMD64_YMM4, 372)
CV_REGISTER(CVRegAMD64_YMM5, 373)
CV_REGISTER(CVRegAMD64_YMM6, 374)
CV_REGISTER(CVRegAMD64_YMM7, 375)
CV_REGISTER(CVRegAMD64_YMM8, 376)
CV_REGISTER(CVRegAMD64_YMM9, 377)
CV_REGISTER(CVRegAMD64_YMM10, 378)
CV_REGISTER(CVRegAMD64_YMM11, 379)
CV_REGISTER(CVRegAMD64_YMM12, 380)
CV_REGISTER(CVRegAMD64_YMM13, 381)
CV_REGISTER(CVRegAMD64_YMM14, 382)
CV_REGISTER(CVRegAMD64_YMM15, 383)
