LLVM API Documentation

X86GenRegisterInfo.inc

Go to the documentation of this file.
00001 //===- TableGen'erated file -------------------------------------*- C++ -*-===//
00002 //
00003 // Register Information Source Fragment
00004 //
00005 // Automatically generated file, do not edit!
00006 //
00007 //===----------------------------------------------------------------------===//
00008 
00009 namespace llvm {
00010 
00011 namespace {     // Register classes...
00012   // CCR Register Class...
00013   static const unsigned CCR[] = {
00014     X86::EFLAGS, 
00015   };
00016 
00017   // CONTROL_REG_32 Register Class...
00018   static const unsigned CONTROL_REG_32[] = {
00019     X86::ECR0, X86::ECR1, X86::ECR2, X86::ECR3, X86::ECR4, X86::ECR5, X86::ECR6, X86::ECR7, 
00020   };
00021 
00022   // CONTROL_REG_64 Register Class...
00023   static const unsigned CONTROL_REG_64[] = {
00024     X86::RCR0, X86::RCR1, X86::RCR2, X86::RCR3, X86::RCR4, X86::RCR5, X86::RCR6, X86::RCR7, X86::RCR8, 
00025   };
00026 
00027   // DEBUG_REG Register Class...
00028   static const unsigned DEBUG_REG[] = {
00029     X86::DR0, X86::DR1, X86::DR2, X86::DR3, X86::DR4, X86::DR5, X86::DR6, X86::DR7, 
00030   };
00031 
00032   // FR32 Register Class...
00033   static const unsigned FR32[] = {
00034     X86::XMM0, X86::XMM1, X86::XMM2, X86::XMM3, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 
00035   };
00036 
00037   // FR64 Register Class...
00038   static const unsigned FR64[] = {
00039     X86::XMM0, X86::XMM1, X86::XMM2, X86::XMM3, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 
00040   };
00041 
00042   // GR16 Register Class...
00043   static const unsigned GR16[] = {
00044     X86::AX, X86::CX, X86::DX, X86::SI, X86::DI, X86::BX, X86::BP, X86::SP, X86::R8W, X86::R9W, X86::R10W, X86::R11W, X86::R14W, X86::R15W, X86::R12W, X86::R13W, 
00045   };
00046 
00047   // GR16_ABCD Register Class...
00048   static const unsigned GR16_ABCD[] = {
00049     X86::AX, X86::CX, X86::DX, X86::BX, 
00050   };
00051 
00052   // GR16_NOREX Register Class...
00053   static const unsigned GR16_NOREX[] = {
00054     X86::AX, X86::CX, X86::DX, X86::SI, X86::DI, X86::BX, X86::BP, X86::SP, 
00055   };
00056 
00057   // GR32 Register Class...
00058   static const unsigned GR32[] = {
00059     X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP, X86::R8D, X86::R9D, X86::R10D, X86::R11D, X86::R14D, X86::R15D, X86::R12D, X86::R13D, 
00060   };
00061 
00062   // GR32_ABCD Register Class...
00063   static const unsigned GR32_ABCD[] = {
00064     X86::EAX, X86::ECX, X86::EDX, X86::EBX, 
00065   };
00066 
00067   // GR32_AD Register Class...
00068   static const unsigned GR32_AD[] = {
00069     X86::EAX, X86::EDX, 
00070   };
00071 
00072   // GR32_NOREX Register Class...
00073   static const unsigned GR32_NOREX[] = {
00074     X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP, 
00075   };
00076 
00077   // GR32_NOSP Register Class...
00078   static const unsigned GR32_NOSP[] = {
00079     X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::R8D, X86::R9D, X86::R10D, X86::R11D, X86::R14D, X86::R15D, X86::R12D, X86::R13D, 
00080   };
00081 
00082   // GR64 Register Class...
00083   static const unsigned GR64[] = {
00084     X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::RBX, X86::R14, X86::R15, X86::R12, X86::R13, X86::RBP, X86::RSP, X86::RIP, 
00085   };
00086 
00087   // GR64_ABCD Register Class...
00088   static const unsigned GR64_ABCD[] = {
00089     X86::RAX, X86::RCX, X86::RDX, X86::RBX, 
00090   };
00091 
00092   // GR64_NOREX Register Class...
00093   static const unsigned GR64_NOREX[] = {
00094     X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP, X86::RSP, X86::RIP, 
00095   };
00096 
00097   // GR64_NOREX_NOSP Register Class...
00098   static const unsigned GR64_NOREX_NOSP[] = {
00099     X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP, 
00100   };
00101 
00102   // GR64_NOSP Register Class...
00103   static const unsigned GR64_NOSP[] = {
00104     X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::RBX, X86::R14, X86::R15, X86::R12, X86::R13, X86::RBP, 
00105   };
00106 
00107   // GR8 Register Class...
00108   static const unsigned GR8[] = {
00109     X86::AL, X86::CL, X86::DL, X86::AH, X86::CH, X86::DH, X86::BL, X86::BH, X86::SIL, X86::DIL, X86::BPL, X86::SPL, X86::R8B, X86::R9B, X86::R10B, X86::R11B, X86::R14B, X86::R15B, X86::R12B, X86::R13B, 
00110   };
00111 
00112   // GR8_ABCD_H Register Class...
00113   static const unsigned GR8_ABCD_H[] = {
00114     X86::AH, X86::CH, X86::DH, X86::BH, 
00115   };
00116 
00117   // GR8_ABCD_L Register Class...
00118   static const unsigned GR8_ABCD_L[] = {
00119     X86::AL, X86::CL, X86::DL, X86::BL, 
00120   };
00121 
00122   // GR8_NOREX Register Class...
00123   static const unsigned GR8_NOREX[] = {
00124     X86::AL, X86::CL, X86::DL, X86::AH, X86::CH, X86::DH, X86::BL, X86::BH, 
00125   };
00126 
00127   // RFP32 Register Class...
00128   static const unsigned RFP32[] = {
00129     X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6, 
00130   };
00131 
00132   // RFP64 Register Class...
00133   static const unsigned RFP64[] = {
00134     X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6, 
00135   };
00136 
00137   // RFP80 Register Class...
00138   static const unsigned RFP80[] = {
00139     X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6, 
00140   };
00141 
00142   // RST Register Class...
00143   static const unsigned RST[] = {
00144     X86::ST0, X86::ST1, X86::ST2, X86::ST3, X86::ST4, X86::ST5, X86::ST6, X86::ST7, 
00145   };
00146 
00147   // SEGMENT_REG Register Class...
00148   static const unsigned SEGMENT_REG[] = {
00149     X86::CS, X86::DS, X86::SS, X86::ES, X86::FS, X86::GS, 
00150   };
00151 
00152   // VR128 Register Class...
00153   static const unsigned VR128[] = {
00154     X86::XMM0, X86::XMM1, X86::XMM2, X86::XMM3, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, 
00155   };
00156 
00157   // VR256 Register Class...
00158   static const unsigned VR256[] = {
00159     X86::YMM0, X86::YMM1, X86::YMM2, X86::YMM3, X86::YMM4, X86::YMM5, X86::YMM6, X86::YMM7, X86::YMM8, X86::YMM9, X86::YMM10, X86::YMM11, X86::YMM12, X86::YMM13, X86::YMM14, X86::YMM15, 
00160   };
00161 
00162   // VR64 Register Class...
00163   static const unsigned VR64[] = {
00164     X86::MM0, X86::MM1, X86::MM2, X86::MM3, X86::MM4, X86::MM5, X86::MM6, X86::MM7, 
00165   };
00166 
00167   // CCRVTs Register Class Value Types...
00168   static const EVT CCRVTs[] = {
00169     MVT::i32, MVT::Other
00170   };
00171 
00172   // CONTROL_REG_32VTs Register Class Value Types...
00173   static const EVT CONTROL_REG_32VTs[] = {
00174     MVT::i32, MVT::Other
00175   };
00176 
00177   // CONTROL_REG_64VTs Register Class Value Types...
00178   static const EVT CONTROL_REG_64VTs[] = {
00179     MVT::i64, MVT::Other
00180   };
00181 
00182   // DEBUG_REGVTs Register Class Value Types...
00183   static const EVT DEBUG_REGVTs[] = {
00184     MVT::i32, MVT::Other
00185   };
00186 
00187   // FR32VTs Register Class Value Types...
00188   static const EVT FR32VTs[] = {
00189     MVT::f32, MVT::Other
00190   };
00191 
00192   // FR64VTs Register Class Value Types...
00193   static const EVT FR64VTs[] = {
00194     MVT::f64, MVT::Other
00195   };
00196 
00197   // GR16VTs Register Class Value Types...
00198   static const EVT GR16VTs[] = {
00199     MVT::i16, MVT::Other
00200   };
00201 
00202   // GR16_ABCDVTs Register Class Value Types...
00203   static const EVT GR16_ABCDVTs[] = {
00204     MVT::i16, MVT::Other
00205   };
00206 
00207   // GR16_NOREXVTs Register Class Value Types...
00208   static const EVT GR16_NOREXVTs[] = {
00209     MVT::i16, MVT::Other
00210   };
00211 
00212   // GR32VTs Register Class Value Types...
00213   static const EVT GR32VTs[] = {
00214     MVT::i32, MVT::Other
00215   };
00216 
00217   // GR32_ABCDVTs Register Class Value Types...
00218   static const EVT GR32_ABCDVTs[] = {
00219     MVT::i32, MVT::Other
00220   };
00221 
00222   // GR32_ADVTs Register Class Value Types...
00223   static const EVT GR32_ADVTs[] = {
00224     MVT::i32, MVT::Other
00225   };
00226 
00227   // GR32_NOREXVTs Register Class Value Types...
00228   static const EVT GR32_NOREXVTs[] = {
00229     MVT::i32, MVT::Other
00230   };
00231 
00232   // GR32_NOSPVTs Register Class Value Types...
00233   static const EVT GR32_NOSPVTs[] = {
00234     MVT::i32, MVT::Other
00235   };
00236 
00237   // GR64VTs Register Class Value Types...
00238   static const EVT GR64VTs[] = {
00239     MVT::i64, MVT::Other
00240   };
00241 
00242   // GR64_ABCDVTs Register Class Value Types...
00243   static const EVT GR64_ABCDVTs[] = {
00244     MVT::i64, MVT::Other
00245   };
00246 
00247   // GR64_NOREXVTs Register Class Value Types...
00248   static const EVT GR64_NOREXVTs[] = {
00249     MVT::i64, MVT::Other
00250   };
00251 
00252   // GR64_NOREX_NOSPVTs Register Class Value Types...
00253   static const EVT GR64_NOREX_NOSPVTs[] = {
00254     MVT::i64, MVT::Other
00255   };
00256 
00257   // GR64_NOSPVTs Register Class Value Types...
00258   static const EVT GR64_NOSPVTs[] = {
00259     MVT::i64, MVT::Other
00260   };
00261 
00262   // GR8VTs Register Class Value Types...
00263   static const EVT GR8VTs[] = {
00264     MVT::i8, MVT::Other
00265   };
00266 
00267   // GR8_ABCD_HVTs Register Class Value Types...
00268   static const EVT GR8_ABCD_HVTs[] = {
00269     MVT::i8, MVT::Other
00270   };
00271 
00272   // GR8_ABCD_LVTs Register Class Value Types...
00273   static const EVT GR8_ABCD_LVTs[] = {
00274     MVT::i8, MVT::Other
00275   };
00276 
00277   // GR8_NOREXVTs Register Class Value Types...
00278   static const EVT GR8_NOREXVTs[] = {
00279     MVT::i8, MVT::Other
00280   };
00281 
00282   // RFP32VTs Register Class Value Types...
00283   static const EVT RFP32VTs[] = {
00284     MVT::f32, MVT::Other
00285   };
00286 
00287   // RFP64VTs Register Class Value Types...
00288   static const EVT RFP64VTs[] = {
00289     MVT::f64, MVT::Other
00290   };
00291 
00292   // RFP80VTs Register Class Value Types...
00293   static const EVT RFP80VTs[] = {
00294     MVT::f80, MVT::Other
00295   };
00296 
00297   // RSTVTs Register Class Value Types...
00298   static const EVT RSTVTs[] = {
00299     MVT::f80, MVT::f64, MVT::f32, MVT::Other
00300   };
00301 
00302   // SEGMENT_REGVTs Register Class Value Types...
00303   static const EVT SEGMENT_REGVTs[] = {
00304     MVT::i16, MVT::Other
00305   };
00306 
00307   // VR128VTs Register Class Value Types...
00308   static const EVT VR128VTs[] = {
00309     MVT::v16i8, MVT::v8i16, MVT::v4i32, MVT::v2i64, MVT::v4f32, MVT::v2f64, MVT::Other
00310   };
00311 
00312   // VR256VTs Register Class Value Types...
00313   static const EVT VR256VTs[] = {
00314     MVT::v8i32, MVT::v4i64, MVT::v8f32, MVT::v4f64, MVT::Other
00315   };
00316 
00317   // VR64VTs Register Class Value Types...
00318   static const EVT VR64VTs[] = {
00319     MVT::v8i8, MVT::v4i16, MVT::v2i32, MVT::v1i64, MVT::v2f32, MVT::Other
00320   };
00321 
00322 }  // end anonymous namespace
00323 
00324 namespace X86 {   // Register class instances
00325   CCRClass  CCRRegClass;
00326   CONTROL_REG_32Class CONTROL_REG_32RegClass;
00327   CONTROL_REG_64Class CONTROL_REG_64RegClass;
00328   DEBUG_REGClass  DEBUG_REGRegClass;
00329   FR32Class FR32RegClass;
00330   FR64Class FR64RegClass;
00331   GR16Class GR16RegClass;
00332   GR16_ABCDClass  GR16_ABCDRegClass;
00333   GR16_NOREXClass GR16_NOREXRegClass;
00334   GR32Class GR32RegClass;
00335   GR32_ABCDClass  GR32_ABCDRegClass;
00336   GR32_ADClass  GR32_ADRegClass;
00337   GR32_NOREXClass GR32_NOREXRegClass;
00338   GR32_NOSPClass  GR32_NOSPRegClass;
00339   GR64Class GR64RegClass;
00340   GR64_ABCDClass  GR64_ABCDRegClass;
00341   GR64_NOREXClass GR64_NOREXRegClass;
00342   GR64_NOREX_NOSPClass  GR64_NOREX_NOSPRegClass;
00343   GR64_NOSPClass  GR64_NOSPRegClass;
00344   GR8Class  GR8RegClass;
00345   GR8_ABCD_HClass GR8_ABCD_HRegClass;
00346   GR8_ABCD_LClass GR8_ABCD_LRegClass;
00347   GR8_NOREXClass  GR8_NOREXRegClass;
00348   RFP32Class  RFP32RegClass;
00349   RFP64Class  RFP64RegClass;
00350   RFP80Class  RFP80RegClass;
00351   RSTClass  RSTRegClass;
00352   SEGMENT_REGClass  SEGMENT_REGRegClass;
00353   VR128Class  VR128RegClass;
00354   VR256Class  VR256RegClass;
00355   VR64Class VR64RegClass;
00356 
00357   // CCR Sub-register Classes...
00358   static const TargetRegisterClass* const CCRSubRegClasses[] = {
00359     NULL
00360   };
00361 
00362   // CONTROL_REG_32 Sub-register Classes...
00363   static const TargetRegisterClass* const CONTROL_REG_32SubRegClasses[] = {
00364     NULL
00365   };
00366 
00367   // CONTROL_REG_64 Sub-register Classes...
00368   static const TargetRegisterClass* const CONTROL_REG_64SubRegClasses[] = {
00369     NULL
00370   };
00371 
00372   // DEBUG_REG Sub-register Classes...
00373   static const TargetRegisterClass* const DEBUG_REGSubRegClasses[] = {
00374     NULL
00375   };
00376 
00377   // FR32 Sub-register Classes...
00378   static const TargetRegisterClass* const FR32SubRegClasses[] = {
00379     NULL
00380   };
00381 
00382   // FR64 Sub-register Classes...
00383   static const TargetRegisterClass* const FR64SubRegClasses[] = {
00384     NULL
00385   };
00386 
00387   // GR16 Sub-register Classes...
00388   static const TargetRegisterClass* const GR16SubRegClasses[] = {
00389     &X86::GR8RegClass, &X86::GR8RegClass, NULL
00390   };
00391 
00392   // GR16_ABCD Sub-register Classes...
00393   static const TargetRegisterClass* const GR16_ABCDSubRegClasses[] = {
00394     &X86::GR8_ABCD_LRegClass, &X86::GR8_ABCD_HRegClass, NULL
00395   };
00396 
00397   // GR16_NOREX Sub-register Classes...
00398   static const TargetRegisterClass* const GR16_NOREXSubRegClasses[] = {
00399     &X86::GR8_NOREXRegClass, &X86::GR8_NOREXRegClass, NULL
00400   };
00401 
00402   // GR32 Sub-register Classes...
00403   static const TargetRegisterClass* const GR32SubRegClasses[] = {
00404     &X86::GR8RegClass, &X86::GR8RegClass, &X86::GR16RegClass, NULL
00405   };
00406 
00407   // GR32_ABCD Sub-register Classes...
00408   static const TargetRegisterClass* const GR32_ABCDSubRegClasses[] = {
00409     &X86::GR8_ABCD_LRegClass, &X86::GR8_ABCD_HRegClass, &X86::GR16_ABCDRegClass, NULL
00410   };
00411 
00412   // GR32_AD Sub-register Classes...
00413   static const TargetRegisterClass* const GR32_ADSubRegClasses[] = {
00414     &X86::GR8_ABCD_LRegClass, &X86::GR8_ABCD_HRegClass, &X86::GR16_ABCDRegClass, NULL
00415   };
00416 
00417   // GR32_NOREX Sub-register Classes...
00418   static const TargetRegisterClass* const GR32_NOREXSubRegClasses[] = {
00419     &X86::GR8_NOREXRegClass, &X86::GR8_NOREXRegClass, &X86::GR16_NOREXRegClass, NULL
00420   };
00421 
00422   // GR32_NOSP Sub-register Classes...
00423   static const TargetRegisterClass* const GR32_NOSPSubRegClasses[] = {
00424     &X86::GR8RegClass, &X86::GR8RegClass, &X86::GR16RegClass, NULL
00425   };
00426 
00427   // GR64 Sub-register Classes...
00428   static const TargetRegisterClass* const GR64SubRegClasses[] = {
00429     &X86::GR8RegClass, &X86::GR8RegClass, &X86::GR16RegClass, &X86::GR32RegClass, NULL
00430   };
00431 
00432   // GR64_ABCD Sub-register Classes...
00433   static const TargetRegisterClass* const GR64_ABCDSubRegClasses[] = {
00434     &X86::GR8_ABCD_LRegClass, &X86::GR8_ABCD_HRegClass, &X86::GR16_ABCDRegClass, &X86::GR32_ABCDRegClass, NULL
00435   };
00436 
00437   // GR64_NOREX Sub-register Classes...
00438   static const TargetRegisterClass* const GR64_NOREXSubRegClasses[] = {
00439     &X86::GR8_NOREXRegClass, &X86::GR8_NOREXRegClass, &X86::GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, NULL
00440   };
00441 
00442   // GR64_NOREX_NOSP Sub-register Classes...
00443   static const TargetRegisterClass* const GR64_NOREX_NOSPSubRegClasses[] = {
00444     &X86::GR8_NOREXRegClass, &X86::GR8_NOREXRegClass, &X86::GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, NULL
00445   };
00446 
00447   // GR64_NOSP Sub-register Classes...
00448   static const TargetRegisterClass* const GR64_NOSPSubRegClasses[] = {
00449     &X86::GR8RegClass, &X86::GR8RegClass, &X86::GR16RegClass, &X86::GR32_NOSPRegClass, NULL
00450   };
00451 
00452   // GR8 Sub-register Classes...
00453   static const TargetRegisterClass* const GR8SubRegClasses[] = {
00454     NULL
00455   };
00456 
00457   // GR8_ABCD_H Sub-register Classes...
00458   static const TargetRegisterClass* const GR8_ABCD_HSubRegClasses[] = {
00459     NULL
00460   };
00461 
00462   // GR8_ABCD_L Sub-register Classes...
00463   static const TargetRegisterClass* const GR8_ABCD_LSubRegClasses[] = {
00464     NULL
00465   };
00466 
00467   // GR8_NOREX Sub-register Classes...
00468   static const TargetRegisterClass* const GR8_NOREXSubRegClasses[] = {
00469     NULL
00470   };
00471 
00472   // RFP32 Sub-register Classes...
00473   static const TargetRegisterClass* const RFP32SubRegClasses[] = {
00474     NULL
00475   };
00476 
00477   // RFP64 Sub-register Classes...
00478   static const TargetRegisterClass* const RFP64SubRegClasses[] = {
00479     NULL
00480   };
00481 
00482   // RFP80 Sub-register Classes...
00483   static const TargetRegisterClass* const RFP80SubRegClasses[] = {
00484     NULL
00485   };
00486 
00487   // RST Sub-register Classes...
00488   static const TargetRegisterClass* const RSTSubRegClasses[] = {
00489     NULL
00490   };
00491 
00492   // SEGMENT_REG Sub-register Classes...
00493   static const TargetRegisterClass* const SEGMENT_REGSubRegClasses[] = {
00494     NULL
00495   };
00496 
00497   // VR128 Sub-register Classes...
00498   static const TargetRegisterClass* const VR128SubRegClasses[] = {
00499     &X86::FR32RegClass, &X86::FR64RegClass, NULL
00500   };
00501 
00502   // VR256 Sub-register Classes...
00503   static const TargetRegisterClass* const VR256SubRegClasses[] = {
00504     &X86::FR32RegClass, &X86::FR64RegClass, &X86::VR128RegClass, NULL
00505   };
00506 
00507   // VR64 Sub-register Classes...
00508   static const TargetRegisterClass* const VR64SubRegClasses[] = {
00509     NULL
00510   };
00511 
00512   // CCR Super-register Classes...
00513   static const TargetRegisterClass* const CCRSuperRegClasses[] = {
00514     NULL
00515   };
00516 
00517   // CONTROL_REG_32 Super-register Classes...
00518   static const TargetRegisterClass* const CONTROL_REG_32SuperRegClasses[] = {
00519     NULL
00520   };
00521 
00522   // CONTROL_REG_64 Super-register Classes...
00523   static const TargetRegisterClass* const CONTROL_REG_64SuperRegClasses[] = {
00524     NULL
00525   };
00526 
00527   // DEBUG_REG Super-register Classes...
00528   static const TargetRegisterClass* const DEBUG_REGSuperRegClasses[] = {
00529     NULL
00530   };
00531 
00532   // FR32 Super-register Classes...
00533   static const TargetRegisterClass* const FR32SuperRegClasses[] = {
00534     &X86::VR128RegClass, &X86::VR256RegClass, NULL
00535   };
00536 
00537   // FR64 Super-register Classes...
00538   static const TargetRegisterClass* const FR64SuperRegClasses[] = {
00539     &X86::VR128RegClass, &X86::VR256RegClass, NULL
00540   };
00541 
00542   // GR16 Super-register Classes...
00543   static const TargetRegisterClass* const GR16SuperRegClasses[] = {
00544     &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::GR64RegClass, &X86::GR64_NOSPRegClass, NULL
00545   };
00546 
00547   // GR16_ABCD Super-register Classes...
00548   static const TargetRegisterClass* const GR16_ABCDSuperRegClasses[] = {
00549     &X86::GR32_ABCDRegClass, &X86::GR32_ADRegClass, &X86::GR64_ABCDRegClass, NULL
00550   };
00551 
00552   // GR16_NOREX Super-register Classes...
00553   static const TargetRegisterClass* const GR16_NOREXSuperRegClasses[] = {
00554     &X86::GR32_NOREXRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, NULL
00555   };
00556 
00557   // GR32 Super-register Classes...
00558   static const TargetRegisterClass* const GR32SuperRegClasses[] = {
00559     &X86::GR64RegClass, NULL
00560   };
00561 
00562   // GR32_ABCD Super-register Classes...
00563   static const TargetRegisterClass* const GR32_ABCDSuperRegClasses[] = {
00564     &X86::GR64_ABCDRegClass, NULL
00565   };
00566 
00567   // GR32_AD Super-register Classes...
00568   static const TargetRegisterClass* const GR32_ADSuperRegClasses[] = {
00569     NULL
00570   };
00571 
00572   // GR32_NOREX Super-register Classes...
00573   static const TargetRegisterClass* const GR32_NOREXSuperRegClasses[] = {
00574     &X86::GR64_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, NULL
00575   };
00576 
00577   // GR32_NOSP Super-register Classes...
00578   static const TargetRegisterClass* const GR32_NOSPSuperRegClasses[] = {
00579     &X86::GR64_NOSPRegClass, NULL
00580   };
00581 
00582   // GR64 Super-register Classes...
00583   static const TargetRegisterClass* const GR64SuperRegClasses[] = {
00584     NULL
00585   };
00586 
00587   // GR64_ABCD Super-register Classes...
00588   static const TargetRegisterClass* const GR64_ABCDSuperRegClasses[] = {
00589     NULL
00590   };
00591 
00592   // GR64_NOREX Super-register Classes...
00593   static const TargetRegisterClass* const GR64_NOREXSuperRegClasses[] = {
00594     NULL
00595   };
00596 
00597   // GR64_NOREX_NOSP Super-register Classes...
00598   static const TargetRegisterClass* const GR64_NOREX_NOSPSuperRegClasses[] = {
00599     NULL
00600   };
00601 
00602   // GR64_NOSP Super-register Classes...
00603   static const TargetRegisterClass* const GR64_NOSPSuperRegClasses[] = {
00604     NULL
00605   };
00606 
00607   // GR8 Super-register Classes...
00608   static const TargetRegisterClass* const GR8SuperRegClasses[] = {
00609     &X86::GR16RegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::GR64RegClass, &X86::GR64_NOSPRegClass, NULL
00610   };
00611 
00612   // GR8_ABCD_H Super-register Classes...
00613   static const TargetRegisterClass* const GR8_ABCD_HSuperRegClasses[] = {
00614     &X86::GR16_ABCDRegClass, &X86::GR32_ABCDRegClass, &X86::GR32_ADRegClass, &X86::GR64_ABCDRegClass, NULL
00615   };
00616 
00617   // GR8_ABCD_L Super-register Classes...
00618   static const TargetRegisterClass* const GR8_ABCD_LSuperRegClasses[] = {
00619     &X86::GR16_ABCDRegClass, &X86::GR32_ABCDRegClass, &X86::GR32_ADRegClass, &X86::GR64_ABCDRegClass, NULL
00620   };
00621 
00622   // GR8_NOREX Super-register Classes...
00623   static const TargetRegisterClass* const GR8_NOREXSuperRegClasses[] = {
00624     &X86::GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, NULL
00625   };
00626 
00627   // RFP32 Super-register Classes...
00628   static const TargetRegisterClass* const RFP32SuperRegClasses[] = {
00629     NULL
00630   };
00631 
00632   // RFP64 Super-register Classes...
00633   static const TargetRegisterClass* const RFP64SuperRegClasses[] = {
00634     NULL
00635   };
00636 
00637   // RFP80 Super-register Classes...
00638   static const TargetRegisterClass* const RFP80SuperRegClasses[] = {
00639     NULL
00640   };
00641 
00642   // RST Super-register Classes...
00643   static const TargetRegisterClass* const RSTSuperRegClasses[] = {
00644     NULL
00645   };
00646 
00647   // SEGMENT_REG Super-register Classes...
00648   static const TargetRegisterClass* const SEGMENT_REGSuperRegClasses[] = {
00649     NULL
00650   };
00651 
00652   // VR128 Super-register Classes...
00653   static const TargetRegisterClass* const VR128SuperRegClasses[] = {
00654     &X86::VR256RegClass, NULL
00655   };
00656 
00657   // VR256 Super-register Classes...
00658   static const TargetRegisterClass* const VR256SuperRegClasses[] = {
00659     NULL
00660   };
00661 
00662   // VR64 Super-register Classes...
00663   static const TargetRegisterClass* const VR64SuperRegClasses[] = {
00664     NULL
00665   };
00666 
00667   // CCR Register Class sub-classes...
00668   static const TargetRegisterClass* const CCRSubclasses[] = {
00669     NULL
00670   };
00671 
00672   // CONTROL_REG_32 Register Class sub-classes...
00673   static const TargetRegisterClass* const CONTROL_REG_32Subclasses[] = {
00674     NULL
00675   };
00676 
00677   // CONTROL_REG_64 Register Class sub-classes...
00678   static const TargetRegisterClass* const CONTROL_REG_64Subclasses[] = {
00679     NULL
00680   };
00681 
00682   // DEBUG_REG Register Class sub-classes...
00683   static const TargetRegisterClass* const DEBUG_REGSubclasses[] = {
00684     NULL
00685   };
00686 
00687   // FR32 Register Class sub-classes...
00688   static const TargetRegisterClass* const FR32Subclasses[] = {
00689     &X86::FR64RegClass, &X86::VR128RegClass, NULL
00690   };
00691 
00692   // FR64 Register Class sub-classes...
00693   static const TargetRegisterClass* const FR64Subclasses[] = {
00694     &X86::VR128RegClass, NULL
00695   };
00696 
00697   // GR16 Register Class sub-classes...
00698   static const TargetRegisterClass* const GR16Subclasses[] = {
00699     &X86::GR16_ABCDRegClass, &X86::GR16_NOREXRegClass, NULL
00700   };
00701 
00702   // GR16_ABCD Register Class sub-classes...
00703   static const TargetRegisterClass* const GR16_ABCDSubclasses[] = {
00704     NULL
00705   };
00706 
00707   // GR16_NOREX Register Class sub-classes...
00708   static const TargetRegisterClass* const GR16_NOREXSubclasses[] = {
00709     &X86::GR16_ABCDRegClass, NULL
00710   };
00711 
00712   // GR32 Register Class sub-classes...
00713   static const TargetRegisterClass* const GR32Subclasses[] = {
00714     &X86::GR32_ABCDRegClass, &X86::GR32_ADRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOSPRegClass, NULL
00715   };
00716 
00717   // GR32_ABCD Register Class sub-classes...
00718   static const TargetRegisterClass* const GR32_ABCDSubclasses[] = {
00719     &X86::GR32_ADRegClass, NULL
00720   };
00721 
00722   // GR32_AD Register Class sub-classes...
00723   static const TargetRegisterClass* const GR32_ADSubclasses[] = {
00724     NULL
00725   };
00726 
00727   // GR32_NOREX Register Class sub-classes...
00728   static const TargetRegisterClass* const GR32_NOREXSubclasses[] = {
00729     &X86::GR32_ABCDRegClass, &X86::GR32_ADRegClass, NULL
00730   };
00731 
00732   // GR32_NOSP Register Class sub-classes...
00733   static const TargetRegisterClass* const GR32_NOSPSubclasses[] = {
00734     &X86::GR32_ABCDRegClass, &X86::GR32_ADRegClass, NULL
00735   };
00736 
00737   // GR64 Register Class sub-classes...
00738   static const TargetRegisterClass* const GR64Subclasses[] = {
00739     &X86::GR64_ABCDRegClass, &X86::GR64_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOSPRegClass, NULL
00740   };
00741 
00742   // GR64_ABCD Register Class sub-classes...
00743   static const TargetRegisterClass* const GR64_ABCDSubclasses[] = {
00744     NULL
00745   };
00746 
00747   // GR64_NOREX Register Class sub-classes...
00748   static const TargetRegisterClass* const GR64_NOREXSubclasses[] = {
00749     &X86::GR64_ABCDRegClass, &X86::GR64_NOREX_NOSPRegClass, NULL
00750   };
00751 
00752   // GR64_NOREX_NOSP Register Class sub-classes...
00753   static const TargetRegisterClass* const GR64_NOREX_NOSPSubclasses[] = {
00754     &X86::GR64_ABCDRegClass, NULL
00755   };
00756 
00757   // GR64_NOSP Register Class sub-classes...
00758   static const TargetRegisterClass* const GR64_NOSPSubclasses[] = {
00759     &X86::GR64_ABCDRegClass, &X86::GR64_NOREX_NOSPRegClass, NULL
00760   };
00761 
00762   // GR8 Register Class sub-classes...
00763   static const TargetRegisterClass* const GR8Subclasses[] = {
00764     &X86::GR8_ABCD_HRegClass, &X86::GR8_ABCD_LRegClass, &X86::GR8_NOREXRegClass, NULL
00765   };
00766 
00767   // GR8_ABCD_H Register Class sub-classes...
00768   static const TargetRegisterClass* const GR8_ABCD_HSubclasses[] = {
00769     NULL
00770   };
00771 
00772   // GR8_ABCD_L Register Class sub-classes...
00773   static const TargetRegisterClass* const GR8_ABCD_LSubclasses[] = {
00774     NULL
00775   };
00776 
00777   // GR8_NOREX Register Class sub-classes...
00778   static const TargetRegisterClass* const GR8_NOREXSubclasses[] = {
00779     &X86::GR8_ABCD_HRegClass, &X86::GR8_ABCD_LRegClass, NULL
00780   };
00781 
00782   // RFP32 Register Class sub-classes...
00783   static const TargetRegisterClass* const RFP32Subclasses[] = {
00784     &X86::RFP64RegClass, &X86::RFP80RegClass, NULL
00785   };
00786 
00787   // RFP64 Register Class sub-classes...
00788   static const TargetRegisterClass* const RFP64Subclasses[] = {
00789     &X86::RFP80RegClass, NULL
00790   };
00791 
00792   // RFP80 Register Class sub-classes...
00793   static const TargetRegisterClass* const RFP80Subclasses[] = {
00794     NULL
00795   };
00796 
00797   // RST Register Class sub-classes...
00798   static const TargetRegisterClass* const RSTSubclasses[] = {
00799     NULL
00800   };
00801 
00802   // SEGMENT_REG Register Class sub-classes...
00803   static const TargetRegisterClass* const SEGMENT_REGSubclasses[] = {
00804     NULL
00805   };
00806 
00807   // VR128 Register Class sub-classes...
00808   static const TargetRegisterClass* const VR128Subclasses[] = {
00809     NULL
00810   };
00811 
00812   // VR256 Register Class sub-classes...
00813   static const TargetRegisterClass* const VR256Subclasses[] = {
00814     NULL
00815   };
00816 
00817   // VR64 Register Class sub-classes...
00818   static const TargetRegisterClass* const VR64Subclasses[] = {
00819     NULL
00820   };
00821 
00822   // CCR Register Class super-classes...
00823   static const TargetRegisterClass* const CCRSuperclasses[] = {
00824     NULL
00825   };
00826 
00827   // CONTROL_REG_32 Register Class super-classes...
00828   static const TargetRegisterClass* const CONTROL_REG_32Superclasses[] = {
00829     NULL
00830   };
00831 
00832   // CONTROL_REG_64 Register Class super-classes...
00833   static const TargetRegisterClass* const CONTROL_REG_64Superclasses[] = {
00834     NULL
00835   };
00836 
00837   // DEBUG_REG Register Class super-classes...
00838   static const TargetRegisterClass* const DEBUG_REGSuperclasses[] = {
00839     NULL
00840   };
00841 
00842   // FR32 Register Class super-classes...
00843   static const TargetRegisterClass* const FR32Superclasses[] = {
00844     NULL
00845   };
00846 
00847   // FR64 Register Class super-classes...
00848   static const TargetRegisterClass* const FR64Superclasses[] = {
00849     &X86::FR32RegClass, NULL
00850   };
00851 
00852   // GR16 Register Class super-classes...
00853   static const TargetRegisterClass* const GR16Superclasses[] = {
00854     NULL
00855   };
00856 
00857   // GR16_ABCD Register Class super-classes...
00858   static const TargetRegisterClass* const GR16_ABCDSuperclasses[] = {
00859     &X86::GR16RegClass, &X86::GR16_NOREXRegClass, NULL
00860   };
00861 
00862   // GR16_NOREX Register Class super-classes...
00863   static const TargetRegisterClass* const GR16_NOREXSuperclasses[] = {
00864     &X86::GR16RegClass, NULL
00865   };
00866 
00867   // GR32 Register Class super-classes...
00868   static const TargetRegisterClass* const GR32Superclasses[] = {
00869     NULL
00870   };
00871 
00872   // GR32_ABCD Register Class super-classes...
00873   static const TargetRegisterClass* const GR32_ABCDSuperclasses[] = {
00874     &X86::GR32RegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOSPRegClass, NULL
00875   };
00876 
00877   // GR32_AD Register Class super-classes...
00878   static const TargetRegisterClass* const GR32_ADSuperclasses[] = {
00879     &X86::GR32RegClass, &X86::GR32_ABCDRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOSPRegClass, NULL
00880   };
00881 
00882   // GR32_NOREX Register Class super-classes...
00883   static const TargetRegisterClass* const GR32_NOREXSuperclasses[] = {
00884     &X86::GR32RegClass, NULL
00885   };
00886 
00887   // GR32_NOSP Register Class super-classes...
00888   static const TargetRegisterClass* const GR32_NOSPSuperclasses[] = {
00889     &X86::GR32RegClass, NULL
00890   };
00891 
00892   // GR64 Register Class super-classes...
00893   static const TargetRegisterClass* const GR64Superclasses[] = {
00894     NULL
00895   };
00896 
00897   // GR64_ABCD Register Class super-classes...
00898   static const TargetRegisterClass* const GR64_ABCDSuperclasses[] = {
00899     &X86::GR64RegClass, &X86::GR64_NOREXRegClass, &X86::GR64_NOREX_NOSPRegClass, &X86::GR64_NOSPRegClass, NULL
00900   };
00901 
00902   // GR64_NOREX Register Class super-classes...
00903   static const TargetRegisterClass* const GR64_NOREXSuperclasses[] = {
00904     &X86::GR64RegClass, NULL
00905   };
00906 
00907   // GR64_NOREX_NOSP Register Class super-classes...
00908   static const TargetRegisterClass* const GR64_NOREX_NOSPSuperclasses[] = {
00909     &X86::GR64RegClass, &X86::GR64_NOREXRegClass, &X86::GR64_NOSPRegClass, NULL
00910   };
00911 
00912   // GR64_NOSP Register Class super-classes...
00913   static const TargetRegisterClass* const GR64_NOSPSuperclasses[] = {
00914     &X86::GR64RegClass, NULL
00915   };
00916 
00917   // GR8 Register Class super-classes...
00918   static const TargetRegisterClass* const GR8Superclasses[] = {
00919     NULL
00920   };
00921 
00922   // GR8_ABCD_H Register Class super-classes...
00923   static const TargetRegisterClass* const GR8_ABCD_HSuperclasses[] = {
00924     &X86::GR8RegClass, &X86::GR8_NOREXRegClass, NULL
00925   };
00926 
00927   // GR8_ABCD_L Register Class super-classes...
00928   static const TargetRegisterClass* const GR8_ABCD_LSuperclasses[] = {
00929     &X86::GR8RegClass, &X86::GR8_NOREXRegClass, NULL
00930   };
00931 
00932   // GR8_NOREX Register Class super-classes...
00933   static const TargetRegisterClass* const GR8_NOREXSuperclasses[] = {
00934     &X86::GR8RegClass, NULL
00935   };
00936 
00937   // RFP32 Register Class super-classes...
00938   static const TargetRegisterClass* const RFP32Superclasses[] = {
00939     NULL
00940   };
00941 
00942   // RFP64 Register Class super-classes...
00943   static const TargetRegisterClass* const RFP64Superclasses[] = {
00944     &X86::RFP32RegClass, NULL
00945   };
00946 
00947   // RFP80 Register Class super-classes...
00948   static const TargetRegisterClass* const RFP80Superclasses[] = {
00949     &X86::RFP32RegClass, &X86::RFP64RegClass, NULL
00950   };
00951 
00952   // RST Register Class super-classes...
00953   static const TargetRegisterClass* const RSTSuperclasses[] = {
00954     NULL
00955   };
00956 
00957   // SEGMENT_REG Register Class super-classes...
00958   static const TargetRegisterClass* const SEGMENT_REGSuperclasses[] = {
00959     NULL
00960   };
00961 
00962   // VR128 Register Class super-classes...
00963   static const TargetRegisterClass* const VR128Superclasses[] = {
00964     &X86::FR32RegClass, &X86::FR64RegClass, NULL
00965   };
00966 
00967   // VR256 Register Class super-classes...
00968   static const TargetRegisterClass* const VR256Superclasses[] = {
00969     NULL
00970   };
00971 
00972   // VR64 Register Class super-classes...
00973   static const TargetRegisterClass* const VR64Superclasses[] = {
00974     NULL
00975   };
00976 
00977 
00978 CCRClass::CCRClass()  : TargetRegisterClass(CCRRegClassID, "CCR", CCRVTs, CCRSubclasses, CCRSuperclasses, CCRSubRegClasses, CCRSuperRegClasses, 4, 4, -1, CCR, CCR + 1) {}
00979 
00980 CONTROL_REG_32Class::CONTROL_REG_32Class()  : TargetRegisterClass(CONTROL_REG_32RegClassID, "CONTROL_REG_32", CONTROL_REG_32VTs, CONTROL_REG_32Subclasses, CONTROL_REG_32Superclasses, CONTROL_REG_32SubRegClasses, CONTROL_REG_32SuperRegClasses, 4, 4, 1, CONTROL_REG_32, CONTROL_REG_32 + 8) {}
00981 
00982 CONTROL_REG_64Class::CONTROL_REG_64Class()  : TargetRegisterClass(CONTROL_REG_64RegClassID, "CONTROL_REG_64", CONTROL_REG_64VTs, CONTROL_REG_64Subclasses, CONTROL_REG_64Superclasses, CONTROL_REG_64SubRegClasses, CONTROL_REG_64SuperRegClasses, 8, 8, 1, CONTROL_REG_64, CONTROL_REG_64 + 9) {}
00983 
00984 DEBUG_REGClass::DEBUG_REGClass()  : TargetRegisterClass(DEBUG_REGRegClassID, "DEBUG_REG", DEBUG_REGVTs, DEBUG_REGSubclasses, DEBUG_REGSuperclasses, DEBUG_REGSubRegClasses, DEBUG_REGSuperRegClasses, 4, 4, 1, DEBUG_REG, DEBUG_REG + 8) {}
00985 
00986     FR32Class::iterator
00987     FR32Class::allocation_order_end(const MachineFunction &MF) const {
00988       const TargetMachine &TM = MF.getTarget();
00989       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
00990       if (!Subtarget.is64Bit())
00991         return end()-8; // Only XMM0 to XMM7 are available in 32-bit mode.
00992       else
00993         return end();
00994     }
00995   
00996 FR32Class::FR32Class()  : TargetRegisterClass(FR32RegClassID, "FR32", FR32VTs, FR32Subclasses, FR32Superclasses, FR32SubRegClasses, FR32SuperRegClasses, 4, 4, 1, FR32, FR32 + 16) {}
00997 
00998     FR64Class::iterator
00999     FR64Class::allocation_order_end(const MachineFunction &MF) const {
01000       const TargetMachine &TM = MF.getTarget();
01001       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01002       if (!Subtarget.is64Bit())
01003         return end()-8; // Only XMM0 to XMM7 are available in 32-bit mode.
01004       else
01005         return end();
01006     }
01007   
01008 FR64Class::FR64Class()  : TargetRegisterClass(FR64RegClassID, "FR64", FR64VTs, FR64Subclasses, FR64Superclasses, FR64SubRegClasses, FR64SuperRegClasses, 8, 8, 1, FR64, FR64 + 16) {}
01009 
01010     static const unsigned X86_GR16_AO_64[] = {
01011       X86::AX,  X86::CX,   X86::DX,   X86::SI,   X86::DI,
01012       X86::R8W, X86::R9W,  X86::R10W, X86::R11W,
01013       X86::BX, X86::R14W, X86::R15W,  X86::R12W, X86::R13W, X86::BP
01014     };
01015 
01016     GR16Class::iterator
01017     GR16Class::allocation_order_begin(const MachineFunction &MF) const {
01018       const TargetMachine &TM = MF.getTarget();
01019       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01020       if (Subtarget.is64Bit())
01021         return X86_GR16_AO_64;
01022       else
01023         return begin();
01024     }
01025 
01026     GR16Class::iterator
01027     GR16Class::allocation_order_end(const MachineFunction &MF) const {
01028       const TargetMachine &TM = MF.getTarget();
01029       const TargetRegisterInfo *RI = TM.getRegisterInfo();
01030       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01031       const X86MachineFunctionInfo *MFI = MF.getInfo<X86MachineFunctionInfo>();
01032       if (Subtarget.is64Bit()) {
01033         // Does the function dedicate RBP to being a frame ptr?
01034         if (RI->hasFP(MF) || MFI->getReserveFP())
01035           // If so, don't allocate SP or BP.
01036           return array_endof(X86_GR16_AO_64) - 1;
01037         else
01038           // If not, just don't allocate SP.
01039           return array_endof(X86_GR16_AO_64);
01040       } else {
01041         // Does the function dedicate EBP to being a frame ptr?
01042         if (RI->hasFP(MF) || MFI->getReserveFP())
01043           // If so, don't allocate SP or BP.
01044           return begin() + 6;
01045         else
01046           // If not, just don't allocate SP.
01047           return begin() + 7;
01048       }
01049     }
01050   
01051 GR16Class::GR16Class()  : TargetRegisterClass(GR16RegClassID, "GR16", GR16VTs, GR16Subclasses, GR16Superclasses, GR16SubRegClasses, GR16SuperRegClasses, 2, 2, 1, GR16, GR16 + 16) {}
01052 
01053 GR16_ABCDClass::GR16_ABCDClass()  : TargetRegisterClass(GR16_ABCDRegClassID, "GR16_ABCD", GR16_ABCDVTs, GR16_ABCDSubclasses, GR16_ABCDSuperclasses, GR16_ABCDSubRegClasses, GR16_ABCDSuperRegClasses, 2, 2, 1, GR16_ABCD, GR16_ABCD + 4) {}
01054 
01055     GR16_NOREXClass::iterator
01056     GR16_NOREXClass::allocation_order_end(const MachineFunction &MF) const {
01057       const TargetMachine &TM = MF.getTarget();
01058       const TargetRegisterInfo *RI = TM.getRegisterInfo();
01059       const X86MachineFunctionInfo *MFI = MF.getInfo<X86MachineFunctionInfo>();
01060       // Does the function dedicate RBP / EBP to being a frame ptr?
01061       if (RI->hasFP(MF) || MFI->getReserveFP())
01062         // If so, don't allocate SP or BP.
01063         return end() - 2;
01064       else
01065         // If not, just don't allocate SP.
01066         return end() - 1;
01067     }
01068   
01069 GR16_NOREXClass::GR16_NOREXClass()  : TargetRegisterClass(GR16_NOREXRegClassID, "GR16_NOREX", GR16_NOREXVTs, GR16_NOREXSubclasses, GR16_NOREXSuperclasses, GR16_NOREXSubRegClasses, GR16_NOREXSuperRegClasses, 2, 2, 1, GR16_NOREX, GR16_NOREX + 8) {}
01070 
01071     static const unsigned X86_GR32_AO_64[] = {
01072       X86::EAX, X86::ECX,  X86::EDX,  X86::ESI,  X86::EDI,
01073       X86::R8D, X86::R9D,  X86::R10D, X86::R11D,
01074       X86::EBX, X86::R14D, X86::R15D, X86::R12D, X86::R13D, X86::EBP
01075     };
01076 
01077     GR32Class::iterator
01078     GR32Class::allocation_order_begin(const MachineFunction &MF) const {
01079       const TargetMachine &TM = MF.getTarget();
01080       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01081       if (Subtarget.is64Bit())
01082         return X86_GR32_AO_64;
01083       else
01084         return begin();
01085     }
01086 
01087     GR32Class::iterator
01088     GR32Class::allocation_order_end(const MachineFunction &MF) const {
01089       const TargetMachine &TM = MF.getTarget();
01090       const TargetRegisterInfo *RI = TM.getRegisterInfo();
01091       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01092       const X86MachineFunctionInfo *MFI = MF.getInfo<X86MachineFunctionInfo>();
01093       if (Subtarget.is64Bit()) {
01094         // Does the function dedicate RBP to being a frame ptr?
01095         if (RI->hasFP(MF) || MFI->getReserveFP())
01096           // If so, don't allocate ESP or EBP.
01097           return array_endof(X86_GR32_AO_64) - 1;
01098         else
01099           // If not, just don't allocate ESP.
01100           return array_endof(X86_GR32_AO_64);
01101       } else {
01102         // Does the function dedicate EBP to being a frame ptr?
01103         if (RI->hasFP(MF) || MFI->getReserveFP())
01104           // If so, don't allocate ESP or EBP.
01105           return begin() + 6;
01106         else
01107           // If not, just don't allocate ESP.
01108           return begin() + 7;
01109       }
01110     }
01111   
01112 GR32Class::GR32Class()  : TargetRegisterClass(GR32RegClassID, "GR32", GR32VTs, GR32Subclasses, GR32Superclasses, GR32SubRegClasses, GR32SuperRegClasses, 4, 4, 1, GR32, GR32 + 16) {}
01113 
01114 GR32_ABCDClass::GR32_ABCDClass()  : TargetRegisterClass(GR32_ABCDRegClassID, "GR32_ABCD", GR32_ABCDVTs, GR32_ABCDSubclasses, GR32_ABCDSuperclasses, GR32_ABCDSubRegClasses, GR32_ABCDSuperRegClasses, 4, 4, 1, GR32_ABCD, GR32_ABCD + 4) {}
01115 
01116 GR32_ADClass::GR32_ADClass()  : TargetRegisterClass(GR32_ADRegClassID, "GR32_AD", GR32_ADVTs, GR32_ADSubclasses, GR32_ADSuperclasses, GR32_ADSubRegClasses, GR32_ADSuperRegClasses, 4, 4, 1, GR32_AD, GR32_AD + 2) {}
01117 
01118     GR32_NOREXClass::iterator
01119     GR32_NOREXClass::allocation_order_end(const MachineFunction &MF) const {
01120       const TargetMachine &TM = MF.getTarget();
01121       const TargetRegisterInfo *RI = TM.getRegisterInfo();
01122       const X86MachineFunctionInfo *MFI = MF.getInfo<X86MachineFunctionInfo>();
01123       // Does the function dedicate RBP / EBP to being a frame ptr?
01124       if (RI->hasFP(MF) || MFI->getReserveFP())
01125         // If so, don't allocate ESP or EBP.
01126         return end() - 2;
01127       else
01128         // If not, just don't allocate ESP.
01129         return end() - 1;
01130     }
01131   
01132 GR32_NOREXClass::GR32_NOREXClass()  : TargetRegisterClass(GR32_NOREXRegClassID, "GR32_NOREX", GR32_NOREXVTs, GR32_NOREXSubclasses, GR32_NOREXSuperclasses, GR32_NOREXSubRegClasses, GR32_NOREXSuperRegClasses, 4, 4, 1, GR32_NOREX, GR32_NOREX + 8) {}
01133 
01134     static const unsigned X86_GR32_NOSP_AO_64[] = {
01135       X86::EAX, X86::ECX,  X86::EDX,  X86::ESI,  X86::EDI,
01136       X86::R8D, X86::R9D,  X86::R10D, X86::R11D,
01137       X86::EBX, X86::R14D, X86::R15D, X86::R12D, X86::R13D, X86::EBP
01138     };
01139 
01140     GR32_NOSPClass::iterator
01141     GR32_NOSPClass::allocation_order_begin(const MachineFunction &MF) const {
01142       const TargetMachine &TM = MF.getTarget();
01143       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01144       if (Subtarget.is64Bit())
01145         return X86_GR32_NOSP_AO_64;
01146       else
01147         return begin();
01148     }
01149 
01150     GR32_NOSPClass::iterator
01151     GR32_NOSPClass::allocation_order_end(const MachineFunction &MF) const {
01152       const TargetMachine &TM = MF.getTarget();
01153       const TargetRegisterInfo *RI = TM.getRegisterInfo();
01154       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01155       const X86MachineFunctionInfo *MFI = MF.getInfo<X86MachineFunctionInfo>();
01156       if (Subtarget.is64Bit()) {
01157         // Does the function dedicate RBP to being a frame ptr?
01158         if (RI->hasFP(MF) || MFI->getReserveFP())
01159           // If so, don't allocate EBP.
01160           return array_endof(X86_GR32_NOSP_AO_64) - 1;
01161         else
01162           // If not, any reg in this class is ok.
01163           return array_endof(X86_GR32_NOSP_AO_64);
01164       } else {
01165         // Does the function dedicate EBP to being a frame ptr?
01166         if (RI->hasFP(MF) || MFI->getReserveFP())
01167           // If so, don't allocate EBP.
01168           return begin() + 6;
01169         else
01170           // If not, any reg in this class is ok.
01171           return begin() + 7;
01172       }
01173     }
01174   
01175 GR32_NOSPClass::GR32_NOSPClass()  : TargetRegisterClass(GR32_NOSPRegClassID, "GR32_NOSP", GR32_NOSPVTs, GR32_NOSPSubclasses, GR32_NOSPSuperclasses, GR32_NOSPSubRegClasses, GR32_NOSPSuperRegClasses, 4, 4, 1, GR32_NOSP, GR32_NOSP + 15) {}
01176 
01177     GR64Class::iterator
01178     GR64Class::allocation_order_end(const MachineFunction &MF) const {
01179       const TargetMachine &TM = MF.getTarget();
01180       const TargetRegisterInfo *RI = TM.getRegisterInfo();
01181       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01182       const X86MachineFunctionInfo *MFI = MF.getInfo<X86MachineFunctionInfo>();
01183       if (!Subtarget.is64Bit())
01184         return begin();  // None of these are allocatable in 32-bit.
01185       // Does the function dedicate RBP to being a frame ptr?
01186       if (RI->hasFP(MF) || MFI->getReserveFP())
01187         return end()-3;  // If so, don't allocate RIP, RSP or RBP
01188       else
01189         return end()-2;  // If not, just don't allocate RIP or RSP
01190     }
01191   
01192 GR64Class::GR64Class()  : TargetRegisterClass(GR64RegClassID, "GR64", GR64VTs, GR64Subclasses, GR64Superclasses, GR64SubRegClasses, GR64SuperRegClasses, 8, 8, 1, GR64, GR64 + 17) {}
01193 
01194 GR64_ABCDClass::GR64_ABCDClass()  : TargetRegisterClass(GR64_ABCDRegClassID, "GR64_ABCD", GR64_ABCDVTs, GR64_ABCDSubclasses, GR64_ABCDSuperclasses, GR64_ABCDSubRegClasses, GR64_ABCDSuperRegClasses, 8, 8, 1, GR64_ABCD, GR64_ABCD + 4) {}
01195 
01196     GR64_NOREXClass::iterator
01197     GR64_NOREXClass::allocation_order_end(const MachineFunction &MF) const {
01198       const TargetMachine &TM = MF.getTarget();
01199       const TargetRegisterInfo *RI = TM.getRegisterInfo();
01200       const X86MachineFunctionInfo *MFI = MF.getInfo<X86MachineFunctionInfo>();
01201       // Does the function dedicate RBP to being a frame ptr?
01202       if (RI->hasFP(MF) || MFI->getReserveFP())
01203         // If so, don't allocate RIP, RSP or RBP.
01204         return end() - 3;
01205       else
01206         // If not, just don't allocate RIP or RSP.
01207         return end() - 2;
01208     }
01209   
01210 GR64_NOREXClass::GR64_NOREXClass()  : TargetRegisterClass(GR64_NOREXRegClassID, "GR64_NOREX", GR64_NOREXVTs, GR64_NOREXSubclasses, GR64_NOREXSuperclasses, GR64_NOREXSubRegClasses, GR64_NOREXSuperRegClasses, 8, 8, 1, GR64_NOREX, GR64_NOREX + 9) {}
01211 
01212     GR64_NOREX_NOSPClass::iterator
01213     GR64_NOREX_NOSPClass::allocation_order_end(const MachineFunction &MF) const
01214   {
01215       const TargetMachine &TM = MF.getTarget();
01216       const TargetRegisterInfo *RI = TM.getRegisterInfo();
01217       const X86MachineFunctionInfo *MFI = MF.getInfo<X86MachineFunctionInfo>();
01218       // Does the function dedicate RBP to being a frame ptr?
01219       if (RI->hasFP(MF) || MFI->getReserveFP())
01220         // If so, don't allocate RBP.
01221         return end() - 1;
01222       else
01223         // If not, any reg in this class is ok.
01224         return end();
01225     }
01226   
01227 GR64_NOREX_NOSPClass::GR64_NOREX_NOSPClass()  : TargetRegisterClass(GR64_NOREX_NOSPRegClassID, "GR64_NOREX_NOSP", GR64_NOREX_NOSPVTs, GR64_NOREX_NOSPSubclasses, GR64_NOREX_NOSPSuperclasses, GR64_NOREX_NOSPSubRegClasses, GR64_NOREX_NOSPSuperRegClasses, 8, 8, 1, GR64_NOREX_NOSP, GR64_NOREX_NOSP + 7) {}
01228 
01229     GR64_NOSPClass::iterator
01230     GR64_NOSPClass::allocation_order_end(const MachineFunction &MF) const {
01231       const TargetMachine &TM = MF.getTarget();
01232       const TargetRegisterInfo *RI = TM.getRegisterInfo();
01233       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01234       const X86MachineFunctionInfo *MFI = MF.getInfo<X86MachineFunctionInfo>();
01235       if (!Subtarget.is64Bit())
01236         return begin();  // None of these are allocatable in 32-bit.
01237       // Does the function dedicate RBP to being a frame ptr?
01238       if (RI->hasFP(MF) || MFI->getReserveFP())
01239         return end()-1;  // If so, don't allocate RBP
01240       else
01241         return end();  // If not, any reg in this class is ok.
01242     }
01243   
01244 GR64_NOSPClass::GR64_NOSPClass()  : TargetRegisterClass(GR64_NOSPRegClassID, "GR64_NOSP", GR64_NOSPVTs, GR64_NOSPSubclasses, GR64_NOSPSuperclasses, GR64_NOSPSubRegClasses, GR64_NOSPSuperRegClasses, 8, 8, 1, GR64_NOSP, GR64_NOSP + 15) {}
01245 
01246     static const unsigned X86_GR8_AO_64[] = {
01247       X86::AL,   X86::CL,   X86::DL,   X86::SIL, X86::DIL,
01248       X86::R8B,  X86::R9B,  X86::R10B, X86::R11B,
01249       X86::BL,   X86::R14B, X86::R15B, X86::R12B, X86::R13B, X86::BPL
01250     };
01251 
01252     GR8Class::iterator
01253     GR8Class::allocation_order_begin(const MachineFunction &MF) const {
01254       const TargetMachine &TM = MF.getTarget();
01255       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01256       if (Subtarget.is64Bit())
01257         return X86_GR8_AO_64;
01258       else
01259         return begin();
01260     }
01261 
01262     GR8Class::iterator
01263     GR8Class::allocation_order_end(const MachineFunction &MF) const {
01264       const TargetMachine &TM = MF.getTarget();
01265       const TargetRegisterInfo *RI = TM.getRegisterInfo();
01266       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01267       const X86MachineFunctionInfo *MFI = MF.getInfo<X86MachineFunctionInfo>();
01268       // Does the function dedicate RBP / EBP to being a frame ptr?
01269       if (!Subtarget.is64Bit())
01270         // In 32-mode, none of the 8-bit registers aliases EBP or ESP.
01271         return begin() + 8;
01272       else if (RI->hasFP(MF) || MFI->getReserveFP())
01273         // If so, don't allocate SPL or BPL.
01274         return array_endof(X86_GR8_AO_64) - 1;
01275       else
01276         // If not, just don't allocate SPL.
01277         return array_endof(X86_GR8_AO_64);
01278     }
01279   
01280 GR8Class::GR8Class()  : TargetRegisterClass(GR8RegClassID, "GR8", GR8VTs, GR8Subclasses, GR8Superclasses, GR8SubRegClasses, GR8SuperRegClasses, 1, 1, 1, GR8, GR8 + 20) {}
01281 
01282 GR8_ABCD_HClass::GR8_ABCD_HClass()  : TargetRegisterClass(GR8_ABCD_HRegClassID, "GR8_ABCD_H", GR8_ABCD_HVTs, GR8_ABCD_HSubclasses, GR8_ABCD_HSuperclasses, GR8_ABCD_HSubRegClasses, GR8_ABCD_HSuperRegClasses, 1, 1, 1, GR8_ABCD_H, GR8_ABCD_H + 4) {}
01283 
01284 GR8_ABCD_LClass::GR8_ABCD_LClass()  : TargetRegisterClass(GR8_ABCD_LRegClassID, "GR8_ABCD_L", GR8_ABCD_LVTs, GR8_ABCD_LSubclasses, GR8_ABCD_LSuperclasses, GR8_ABCD_LSubRegClasses, GR8_ABCD_LSuperRegClasses, 1, 1, 1, GR8_ABCD_L, GR8_ABCD_L + 4) {}
01285 
01286     // In 64-bit mode, it's not safe to blindly allocate H registers.
01287     static const unsigned X86_GR8_NOREX_AO_64[] = {
01288       X86::AL, X86::CL, X86::DL, X86::BL
01289     };
01290 
01291     GR8_NOREXClass::iterator
01292     GR8_NOREXClass::allocation_order_begin(const MachineFunction &MF) const {
01293       const TargetMachine &TM = MF.getTarget();
01294       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01295       if (Subtarget.is64Bit())
01296         return X86_GR8_NOREX_AO_64;
01297       else
01298         return begin();
01299     }
01300 
01301     GR8_NOREXClass::iterator
01302     GR8_NOREXClass::allocation_order_end(const MachineFunction &MF) const {
01303       const TargetMachine &TM = MF.getTarget();
01304       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01305       if (Subtarget.is64Bit())
01306         return array_endof(X86_GR8_NOREX_AO_64);
01307       else
01308         return end();
01309     }
01310   
01311 GR8_NOREXClass::GR8_NOREXClass()  : TargetRegisterClass(GR8_NOREXRegClassID, "GR8_NOREX", GR8_NOREXVTs, GR8_NOREXSubclasses, GR8_NOREXSuperclasses, GR8_NOREXSubRegClasses, GR8_NOREXSuperRegClasses, 1, 1, 1, GR8_NOREX, GR8_NOREX + 8) {}
01312 
01313 RFP32Class::RFP32Class()  : TargetRegisterClass(RFP32RegClassID, "RFP32", RFP32VTs, RFP32Subclasses, RFP32Superclasses, RFP32SubRegClasses, RFP32SuperRegClasses, 4, 4, 1, RFP32, RFP32 + 7) {}
01314 
01315 RFP64Class::RFP64Class()  : TargetRegisterClass(RFP64RegClassID, "RFP64", RFP64VTs, RFP64Subclasses, RFP64Superclasses, RFP64SubRegClasses, RFP64SuperRegClasses, 8, 4, 1, RFP64, RFP64 + 7) {}
01316 
01317 RFP80Class::RFP80Class()  : TargetRegisterClass(RFP80RegClassID, "RFP80", RFP80VTs, RFP80Subclasses, RFP80Superclasses, RFP80SubRegClasses, RFP80SuperRegClasses, 10, 4, 1, RFP80, RFP80 + 7) {}
01318 
01319     RSTClass::iterator
01320     RSTClass::allocation_order_end(const MachineFunction &MF) const {
01321       return begin();
01322     }
01323   
01324 RSTClass::RSTClass()  : TargetRegisterClass(RSTRegClassID, "RST", RSTVTs, RSTSubclasses, RSTSuperclasses, RSTSubRegClasses, RSTSuperRegClasses, 10, 4, 1, RST, RST + 8) {}
01325 
01326 SEGMENT_REGClass::SEGMENT_REGClass()  : TargetRegisterClass(SEGMENT_REGRegClassID, "SEGMENT_REG", SEGMENT_REGVTs, SEGMENT_REGSubclasses, SEGMENT_REGSuperclasses, SEGMENT_REGSubRegClasses, SEGMENT_REGSuperRegClasses, 2, 2, 1, SEGMENT_REG, SEGMENT_REG + 6) {}
01327 
01328     VR128Class::iterator
01329     VR128Class::allocation_order_end(const MachineFunction &MF) const {
01330       const TargetMachine &TM = MF.getTarget();
01331       const X86Subtarget &Subtarget = TM.getSubtarget<X86Subtarget>();
01332       if (!Subtarget.is64Bit())
01333         return end()-8; // Only XMM0 to XMM7 are available in 32-bit mode.
01334       else
01335         return end();
01336     }
01337   
01338 VR128Class::VR128Class()  : TargetRegisterClass(VR128RegClassID, "VR128", VR128VTs, VR128Subclasses, VR128Superclasses, VR128SubRegClasses, VR128SuperRegClasses, 16, 16, 1, VR128, VR128 + 16) {}
01339 
01340 VR256Class::VR256Class()  : TargetRegisterClass(VR256RegClassID, "VR256", VR256VTs, VR256Subclasses, VR256Superclasses, VR256SubRegClasses, VR256SuperRegClasses, 32, 32, 1, VR256, VR256 + 16) {}
01341 
01342 VR64Class::VR64Class()  : TargetRegisterClass(VR64RegClassID, "VR64", VR64VTs, VR64Subclasses, VR64Superclasses, VR64SubRegClasses, VR64SuperRegClasses, 8, 8, 1, VR64, VR64 + 8) {}
01343 }
01344 
01345 namespace {
01346   const TargetRegisterClass* const RegisterClasses[] = {
01347     &X86::CCRRegClass,
01348     &X86::CONTROL_REG_32RegClass,
01349     &X86::CONTROL_REG_64RegClass,
01350     &X86::DEBUG_REGRegClass,
01351     &X86::FR32RegClass,
01352     &X86::FR64RegClass,
01353     &X86::GR16RegClass,
01354     &X86::GR16_ABCDRegClass,
01355     &X86::GR16_NOREXRegClass,
01356     &X86::GR32RegClass,
01357     &X86::GR32_ABCDRegClass,
01358     &X86::GR32_ADRegClass,
01359     &X86::GR32_NOREXRegClass,
01360     &X86::GR32_NOSPRegClass,
01361     &X86::GR64RegClass,
01362     &X86::GR64_ABCDRegClass,
01363     &X86::GR64_NOREXRegClass,
01364     &X86::GR64_NOREX_NOSPRegClass,
01365     &X86::GR64_NOSPRegClass,
01366     &X86::GR8RegClass,
01367     &X86::GR8_ABCD_HRegClass,
01368     &X86::GR8_ABCD_LRegClass,
01369     &X86::GR8_NOREXRegClass,
01370     &X86::RFP32RegClass,
01371     &X86::RFP64RegClass,
01372     &X86::RFP80RegClass,
01373     &X86::RSTRegClass,
01374     &X86::SEGMENT_REGRegClass,
01375     &X86::VR128RegClass,
01376     &X86::VR256RegClass,
01377     &X86::VR64RegClass,
01378   };
01379 
01380 
01381   // Number of hash collisions: 20
01382   const unsigned SubregHashTable[] = { X86::NoRegister, X86::NoRegister, 
01383                                        X86::NoRegister, X86::NoRegister, 
01384                                        X86::NoRegister, X86::NoRegister, 
01385                                        X86::NoRegister, X86::NoRegister, 
01386                                        X86::NoRegister, X86::NoRegister, 
01387                                        X86::R14, X86::R14B, 
01388                                        X86::NoRegister, X86::NoRegister, 
01389                                        X86::R14D, X86::R14B, 
01390                                        X86::R14W, X86::R14B, 
01391                                        X86::EDX, X86::DH, 
01392                                        X86::NoRegister, X86::NoRegister, 
01393                                        X86::NoRegister, X86::NoRegister, 
01394                                        X86::NoRegister, X86::NoRegister, 
01395                                        X86::NoRegister, X86::NoRegister, 
01396                                        X86::NoRegister, X86::NoRegister, 
01397                                        X86::NoRegister, X86::NoRegister, 
01398                                        X86::RDI, X86::EDI, 
01399                                        X86::NoRegister, X86::NoRegister, 
01400                                        X86::NoRegister, X86::NoRegister, 
01401                                        X86::NoRegister, X86::NoRegister, 
01402                                        X86::NoRegister, X86::NoRegister, 
01403                                        X86::NoRegister, X86::NoRegister, 
01404                                        X86::NoRegister, X86::NoRegister, 
01405                                        X86::R9, X86::R9W, 
01406                                        X86::NoRegister, X86::NoRegister, 
01407                                        X86::R9D, X86::R9W, 
01408                                        X86::YMM2, X86::XMM2, 
01409                                        X86::NoRegister, X86::NoRegister, 
01410                                        X86::NoRegister, X86::NoRegister, 
01411                                        X86::EIP, X86::IP, 
01412                                        X86::NoRegister, X86::NoRegister, 
01413                                        X86::NoRegister, X86::NoRegister, 
01414                                        X86::NoRegister, X86::NoRegister, 
01415                                        X86::NoRegister, X86::NoRegister, 
01416                                        X86::NoRegister, X86::NoRegister, 
01417                                        X86::NoRegister, X86::NoRegister, 
01418                                        X86::NoRegister, X86::NoRegister, 
01419                                        X86::NoRegister, X86::NoRegister, 
01420                                        X86::NoRegister, X86::NoRegister, 
01421                                        X86::NoRegister, X86::NoRegister, 
01422                                        X86::AX, X86::AH, 
01423                                        X86::NoRegister, X86::NoRegister, 
01424                                        X86::R14, X86::R14D, 
01425                                        X86::NoRegister, X86::NoRegister, 
01426                                        X86::NoRegister, X86::NoRegister, 
01427                                        X86::EDI, X86::DI, 
01428                                        X86::RCX, X86::CX, 
01429                                        X86::NoRegister, X86::NoRegister, 
01430                                        X86::RDX, X86::DX, 
01431                                        X86::NoRegister, X86::NoRegister, 
01432                                        X86::NoRegister, X86::NoRegister, 
01433                                        X86::NoRegister, X86::NoRegister, 
01434                                        X86::NoRegister, X86::NoRegister, 
01435                                        X86::NoRegister, X86::NoRegister, 
01436                                        X86::RDX, X86::EDX, 
01437                                        X86::NoRegister, X86::NoRegister, 
01438                                        X86::NoRegister, X86::NoRegister, 
01439                                        X86::DI, X86::DIL, 
01440                                        X86::NoRegister, X86::NoRegister, 
01441                                        X86::NoRegister, X86::NoRegister, 
01442                                        X86::NoRegister, X86::NoRegister, 
01443                                        X86::R11, X86::R11B, 
01444                                        X86::NoRegister, X86::NoRegister, 
01445                                        X86::R11D, X86::R11B, 
01446                                        X86::EAX, X86::AH, 
01447                                        X86::NoRegister, X86::NoRegister, 
01448                                        X86::R11W, X86::R11B, 
01449                                        X86::NoRegister, X86::NoRegister, 
01450                                        X86::NoRegister, X86::NoRegister, 
01451                                        X86::NoRegister, X86::NoRegister, 
01452                                        X86::YMM3, X86::XMM3, 
01453                                        X86::RAX, X86::EAX, 
01454                                        X86::NoRegister, X86::NoRegister, 
01455                                        X86::NoRegister, X86::NoRegister, 
01456                                        X86::NoRegister, X86::NoRegister, 
01457                                        X86::NoRegister, X86::NoRegister, 
01458                                        X86::NoRegister, X86::NoRegister, 
01459                                        X86::AX, X86::AL, 
01460                                        X86::NoRegister, X86::NoRegister, 
01461                                        X86::R14, X86::R14W, 
01462                                        X86::NoRegister, X86::NoRegister, 
01463                                        X86::R14D, X86::R14W, 
01464                                        X86::EDI, X86::DIL, 
01465                                        X86::NoRegister, X86::NoRegister, 
01466                                        X86::NoRegister, X86::NoRegister, 
01467                                        X86::RDX, X86::DH, 
01468                                        X86::NoRegister, X86::NoRegister, 
01469                                        X86::NoRegister, X86::NoRegister, 
01470                                        X86::NoRegister, X86::NoRegister, 
01471                                        X86::NoRegister, X86::NoRegister, 
01472                                        X86::NoRegister, X86::NoRegister, 
01473                                        X86::NoRegister, X86::NoRegister, 
01474                                        X86::NoRegister, X86::NoRegister, 
01475                                        X86::NoRegister, X86::NoRegister, 
01476                                        X86::NoRegister, X86::NoRegister, 
01477                                        X86::NoRegister, X86::NoRegister, 
01478                                        X86::NoRegister, X86::NoRegister, 
01479                                        X86::NoRegister, X86::NoRegister, 
01480                                        X86::R11, X86::R11D, 
01481                                        X86::NoRegister, X86::NoRegister, 
01482                                        X86::RIP, X86::IP, 
01483                                        X86::EAX, X86::AL, 
01484                                        X86::YMM4, X86::XMM4, 
01485                                        X86::NoRegister, X86::NoRegister, 
01486                                        X86::NoRegister, X86::NoRegister, 
01487                                        X86::NoRegister, X86::NoRegister, 
01488                                        X86::DX, X86::DL, 
01489                                        X86::NoRegister, X86::NoRegister, 
01490                                        X86::NoRegister, X86::NoRegister, 
01491                                        X86::RBP, X86::EBP, 
01492                                        X86::NoRegister, X86::NoRegister, 
01493                                        X86::NoRegister, X86::NoRegister, 
01494                                        X86::NoRegister, X86::NoRegister, 
01495                                        X86::NoRegister, X86::NoRegister, 
01496                                        X86::NoRegister, X86::NoRegister, 
01497                                        X86::RDI, X86::DI, 
01498                                        X86::NoRegister, X86::NoRegister, 
01499                                        X86::NoRegister, X86::NoRegister, 
01500                                        X86::NoRegister, X86::NoRegister, 
01501                                        X86::NoRegister, X86::NoRegister, 
01502                                        X86::EDX, X86::DL, 
01503                                        X86::NoRegister, X86::NoRegister, 
01504                                        X86::NoRegister, X86::NoRegister, 
01505                                        X86::NoRegister, X86::NoRegister, 
01506                                        X86::NoRegister, X86::NoRegister, 
01507                                        X86::NoRegister, X86::NoRegister, 
01508                                        X86::NoRegister, X86::NoRegister, 
01509                                        X86::NoRegister, X86::NoRegister, 
01510                                        X86::NoRegister, X86::NoRegister, 
01511                                        X86::RIP, X86::EIP, 
01512                                        X86::NoRegister, X86::NoRegister, 
01513                                        X86::NoRegister, X86::NoRegister, 
01514                                        X86::NoRegister, X86::NoRegister, 
01515                                        X86::RAX, X86::AH, 
01516                                        X86::NoRegister, X86::NoRegister, 
01517                                        X86::R11, X86::R11W, 
01518                                        X86::NoRegister, X86::NoRegister, 
01519                                        X86::R11D, X86::R11W, 
01520                                        X86::EAX, X86::AX, 
01521                                        X86::NoRegister, X86::NoRegister, 
01522                                        X86::YMM5, X86::XMM5, 
01523                                        X86::NoRegister, X86::NoRegister, 
01524                                        X86::NoRegister, X86::NoRegister, 
01525                                        X86::NoRegister, X86::NoRegister, 
01526                                        X86::NoRegister, X86::NoRegister, 
01527                                        X86::NoRegister, X86::NoRegister, 
01528                                        X86::NoRegister, X86::NoRegister, 
01529                                        X86::RBX, X86::EBX, 
01530                                        X86::NoRegister, X86::NoRegister, 
01531                                        X86::NoRegister, X86::NoRegister, 
01532                                        X86::NoRegister, X86::NoRegister, 
01533                                        X86::NoRegister, X86::NoRegister, 
01534                                        X86::RDI, X86::DIL, 
01535                                        X86::NoRegister, X86::NoRegister, 
01536                                        X86::NoRegister, X86::NoRegister, 
01537                                        X86::NoRegister, X86::NoRegister, 
01538                                        X86::BX, X86::BH, 
01539                                        X86::R15, X86::R15B, 
01540                                        X86::NoRegister, X86::NoRegister, 
01541                                        X86::R15D, X86::R15B, 
01542                                        X86::R15W, X86::R15B, 
01543                                        X86::NoRegister, X86::NoRegister, 
01544                                        X86::NoRegister, X86::NoRegister, 
01545                                        X86::NoRegister, X86::NoRegister, 
01546                                        X86::NoRegister, X86::NoRegister, 
01547                                        X86::NoRegister, X86::NoRegister, 
01548                                        X86::ESI, X86::SI, 
01549                                        X86::NoRegister, X86::NoRegister, 
01550                                        X86::NoRegister, X86::NoRegister, 
01551                                        X86::NoRegister, X86::NoRegister, 
01552                                        X86::RAX, X86::AL, 
01553                                        X86::NoRegister, X86::NoRegister, 
01554                                        X86::NoRegister, X86::NoRegister, 
01555                                        X86::NoRegister, X86::NoRegister, 
01556                                        X86::NoRegister, X86::NoRegister, 
01557                                        X86::NoRegister, X86::NoRegister, 
01558                                        X86::NoRegister, X86::NoRegister, 
01559                                        X86::EBX, X86::BH, 
01560                                        X86::YMM6, X86::XMM6, 
01561                                        X86::NoRegister, X86::NoRegister, 
01562                                        X86::NoRegister, X86::NoRegister, 
01563                                        X86::NoRegister, X86::NoRegister, 
01564                                        X86::NoRegister, X86::NoRegister, 
01565                                        X86::NoRegister, X86::NoRegister, 
01566                                        X86::NoRegister, X86::NoRegister, 
01567                                        X86::NoRegister, X86::NoRegister, 
01568                                        X86::NoRegister, X86::NoRegister, 
01569                                        X86::NoRegister, X86::NoRegister, 
01570                                        X86::NoRegister, X86::NoRegister, 
01571                                        X86::NoRegister, X86::NoRegister, 
01572                                        X86::RDX, X86::DL, 
01573                                        X86::NoRegister, X86::NoRegister, 
01574                                        X86::NoRegister, X86::NoRegister, 
01575                                        X86::BX, X86::BL, 
01576                                        X86::R15, X86::R15D, 
01577                                        X86::NoRegister, X86::NoRegister, 
01578                                        X86::NoRegister, X86::NoRegister, 
01579                                        X86::NoRegister, X86::NoRegister, 
01580                                        X86::NoRegister, X86::NoRegister, 
01581                                        X86::NoRegister, X86::NoRegister, 
01582                                        X86::NoRegister, X86::NoRegister, 
01583                                        X86::NoRegister, X86::NoRegister, 
01584                                        X86::NoRegister, X86::NoRegister, 
01585                                        X86::ESI, X86::SIL, 
01586                                        X86::RSI, X86::ESI, 
01587                                        X86::NoRegister, X86::NoRegister, 
01588                                        X86::NoRegister, X86::NoRegister, 
01589                                        X86::RAX, X86::AX, 
01590                                        X86::NoRegister, X86::NoRegister, 
01591                                        X86::NoRegister, X86::NoRegister, 
01592                                        X86::NoRegister, X86::NoRegister, 
01593                                        X86::NoRegister, X86::NoRegister, 
01594                                        X86::NoRegister, X86::NoRegister, 
01595                                        X86::R12, X86::R12B, 
01596                                        X86::EBX, X86::BL, 
01597                                        X86::R12D, X86::R12B, 
01598                                        X86::R12W, X86::R12B, 
01599                                        X86::NoRegister, X86::NoRegister, 
01600                                        X86::YMM7, X86::XMM7, 
01601                                        X86::NoRegister, X86::NoRegister, 
01602                                        X86::NoRegister, X86::NoRegister, 
01603                                        X86::NoRegister, X86::NoRegister, 
01604                                        X86::NoRegister, X86::NoRegister, 
01605                                        X86::NoRegister, X86::NoRegister, 
01606                                        X86::NoRegister, X86::NoRegister, 
01607                                        X86::NoRegister, X86::NoRegister, 
01608                                        X86::NoRegister, X86::NoRegister, 
01609                                        X86::NoRegister, X86::NoRegister, 
01610                                        X86::NoRegister, X86::NoRegister, 
01611                                        X86::NoRegister, X86::NoRegister, 
01612                                        X86::NoRegister, X86::NoRegister, 
01613                                        X86::R15, X86::R15W, 
01614                                        X86::NoRegister, X86::NoRegister, 
01615                                        X86::R15D, X86::R15W, 
01616                                        X86::RSI, X86::SI, 
01617                                        X86::NoRegister, X86::NoRegister, 
01618                                        X86::YMM0, X86::XMM0, 
01619                                        X86::NoRegister, X86::NoRegister, 
01620                                        X86::NoRegister, X86::NoRegister, 
01621                                        X86::NoRegister, X86::NoRegister, 
01622                                        X86::NoRegister, X86::NoRegister, 
01623                                        X86::ESP, X86::SP, 
01624                                        X86::RSP, X86::ESP, 
01625                                        X86::NoRegister, X86::NoRegister, 
01626                                        X86::NoRegister, X86::NoRegister, 
01627                                        X86::NoRegister, X86::NoRegister, 
01628                                        X86::RBX, X86::BH, 
01629                                        X86::NoRegister, X86::NoRegister, 
01630                                        X86::NoRegister, X86::NoRegister, 
01631                                        X86::NoRegister, X86::NoRegister, 
01632                                        X86::EBP, X86::BP, 
01633                                        X86::NoRegister, X86::NoRegister, 
01634                                        X86::R12, X86::R12D, 
01635                                        X86::NoRegister, X86::NoRegister, 
01636                                        X86::YMM8, X86::XMM8, 
01637                                        X86::NoRegister, X86::NoRegister, 
01638                                        X86::NoRegister, X86::NoRegister, 
01639                                        X86::NoRegister, X86::NoRegister, 
01640                                        X86::NoRegister, X86::NoRegister, 
01641                                        X86::NoRegister, X86::NoRegister, 
01642                                        X86::NoRegister, X86::NoRegister, 
01643                                        X86::NoRegister, X86::NoRegister, 
01644                                        X86::NoRegister, X86::NoRegister, 
01645                                        X86::NoRegister, X86::NoRegister, 
01646                                        X86::NoRegister, X86::NoRegister, 
01647                                        X86::BP, X86::BPL, 
01648                                        X86::NoRegister, X86::NoRegister, 
01649                                        X86::NoRegister, X86::NoRegister, 
01650                                        X86::NoRegister, X86::NoRegister, 
01651                                        X86::NoRegister, X86::NoRegister, 
01652                                        X86::NoRegister, X86::NoRegister, 
01653                                        X86::RSI, X86::SIL, 
01654                                        X86::YMM1, X86::XMM1, 
01655                                        X86::SI, X86::SIL, 
01656                                        X86::NoRegister, X86::NoRegister, 
01657                                        X86::NoRegister, X86::NoRegister, 
01658                                        X86::NoRegister, X86::NoRegister, 
01659                                        X86::NoRegister, X86::NoRegister, 
01660                                        X86::ESP, X86::SPL, 
01661                                        X86::NoRegister, X86::NoRegister, 
01662                                        X86::NoRegister, X86::NoRegister, 
01663                                        X86::NoRegister, X86::NoRegister, 
01664                                        X86::NoRegister, X86::NoRegister, 
01665                                        X86::RBX, X86::BL, 
01666                                        X86::NoRegister, X86::NoRegister, 
01667                                        X86::NoRegister, X86::NoRegister, 
01668                                        X86::NoRegister, X86::NoRegister, 
01669                                        X86::EBP, X86::BPL, 
01670                                        X86::NoRegister, X86::NoRegister, 
01671                                        X86::R12, X86::R12W, 
01672                                        X86::NoRegister, X86::NoRegister, 
01673                                        X86::R12D, X86::R12W, 
01674                                        X86::YMM9, X86::XMM9, 
01675                                        X86::NoRegister, X86::NoRegister, 
01676                                        X86::NoRegister, X86::NoRegister, 
01677                                        X86::NoRegister, X86::NoRegister, 
01678                                        X86::NoRegister, X86::NoRegister, 
01679                                        X86::NoRegister, X86::NoRegister, 
01680                                        X86::NoRegister, X86::NoRegister, 
01681                                        X86::NoRegister, X86::NoRegister, 
01682                                        X86::NoRegister, X86::NoRegister, 
01683                                        X86::NoRegister, X86::NoRegister, 
01684                                        X86::NoRegister, X86::NoRegister, 
01685                                        X86::NoRegister, X86::NoRegister, 
01686                                        X86::NoRegister, X86::NoRegister, 
01687                                        X86::NoRegister, X86::NoRegister, 
01688                                        X86::NoRegister, X86::NoRegister, 
01689                                        X86::NoRegister, X86::NoRegister, 
01690                                        X86::NoRegister, X86::NoRegister, 
01691                                        X86::R8, X86::R8B, 
01692                                        X86::YMM10, X86::XMM10, 
01693                                        X86::R8D, X86::R8B, 
01694                                        X86::R8W, X86::R8B, 
01695                                        X86::NoRegister, X86::NoRegister, 
01696                                        X86::NoRegister, X86::NoRegister, 
01697                                        X86::RSP, X86::SP, 
01698                                        X86::NoRegister, X86::NoRegister, 
01699                                        X86::NoRegister, X86::NoRegister, 
01700                                        X86::NoRegister, X86::NoRegister, 
01701                                        X86::RBP, X86::BP, 
01702                                        X86::NoRegister, X86::NoRegister, 
01703                                        X86::NoRegister, X86::NoRegister, 
01704                                        X86::NoRegister, X86::NoRegister, 
01705                                        X86::NoRegister, X86::NoRegister, 
01706                                        X86::NoRegister, X86::NoRegister, 
01707                                        X86::EBX, X86::BX, 
01708                                        X86::NoRegister, X86::NoRegister, 
01709                                        X86::NoRegister, X86::NoRegister, 
01710                                        X86::NoRegister, X86::NoRegister, 
01711                                        X86::NoRegister, X86::NoRegister, 
01712                                        X86::NoRegister, X86::NoRegister, 
01713                                        X86::NoRegister, X86::NoRegister, 
01714                                        X86::NoRegister, X86::NoRegister, 
01715                                        X86::NoRegister, X86::NoRegister, 
01716                                        X86::NoRegister, X86::NoRegister, 
01717                                        X86::NoRegister, X86::NoRegister, 
01718                                        X86::NoRegister, X86::NoRegister, 
01719                                        X86::NoRegister, X86::NoRegister, 
01720                                        X86::NoRegister, X86::NoRegister, 
01721                                        X86::NoRegister, X86::NoRegister, 
01722                                        X86::NoRegister, X86::NoRegister, 
01723                                        X86::NoRegister, X86::NoRegister, 
01724                                        X86::NoRegister, X86::NoRegister, 
01725                                        X86::NoRegister, X86::NoRegister, 
01726                                        X86::NoRegister, X86::NoRegister, 
01727                                        X86::CX, X86::CH, 
01728                                        X86::R8, X86::R8D, 
01729                                        X86::NoRegister, X86::NoRegister, 
01730                                        X86::RSP, X86::SPL, 
01731                                        X86::SP, X86::SPL, 
01732                                        X86::YMM11, X86::XMM11, 
01733                                        X86::NoRegister, X86::NoRegister, 
01734                                        X86::NoRegister, X86::NoRegister, 
01735                                        X86::NoRegister, X86::NoRegister, 
01736                                        X86::NoRegister, X86::NoRegister, 
01737                                        X86::NoRegister, X86::NoRegister, 
01738                                        X86::RBP, X86::BPL, 
01739                                        X86::NoRegister, X86::NoRegister, 
01740                                        X86::NoRegister, X86::NoRegister, 
01741                                        X86::NoRegister, X86::NoRegister, 
01742                                        X86::NoRegister, X86::NoRegister, 
01743                                        X86::NoRegister, X86::NoRegister, 
01744                                        X86::NoRegister, X86::NoRegister, 
01745                                        X86::NoRegister, X86::NoRegister, 
01746                                        X86::NoRegister, X86::NoRegister, 
01747                                        X86::R13, X86::R13B, 
01748                                        X86::NoRegister, X86::NoRegister, 
01749                                        X86::R13D, X86::R13B, 
01750                                        X86::R13W, X86::R13B, 
01751                                        X86::NoRegister, X86::NoRegister, 
01752                                        X86::NoRegister, X86::NoRegister, 
01753                                        X86::ECX, X86::CH, 
01754                                        X86::NoRegister, X86::NoRegister, 
01755                                        X86::NoRegister, X86::NoRegister, 
01756                                        X86::NoRegister, X86::NoRegister, 
01757                                        X86::NoRegister, X86::NoRegister, 
01758                                        X86::NoRegister, X86::NoRegister, 
01759                                        X86::NoRegister, X86::NoRegister, 
01760                                        X86::NoRegister, X86::NoRegister, 
01761                                        X86::NoRegister, X86::NoRegister, 
01762                                        X86::NoRegister, X86::NoRegister, 
01763                                        X86::NoRegister, X86::NoRegister, 
01764                                        X86::CX, X86::CL, 
01765                                        X86::R8, X86::R8W, 
01766                                        X86::NoRegister, X86::NoRegister, 
01767                                        X86::R8D, X86::R8W, 
01768                                        X86::YMM12, X86::XMM12, 
01769                                        X86::NoRegister, X86::NoRegister, 
01770                                        X86::NoRegister, X86::NoRegister, 
01771                                        X86::NoRegister, X86::NoRegister, 
01772                                        X86::NoRegister, X86::NoRegister, 
01773                                        X86::NoRegister, X86::NoRegister, 
01774                                        X86::NoRegister, X86::NoRegister, 
01775                                        X86::NoRegister, X86::NoRegister, 
01776                                        X86::RBX, X86::BX, 
01777                                        X86::NoRegister, X86::NoRegister, 
01778                                        X86::NoRegister, X86::NoRegister, 
01779                                        X86::NoRegister, X86::NoRegister, 
01780                                        X86::NoRegister, X86::NoRegister, 
01781                                        X86::NoRegister, X86::NoRegister, 
01782                                        X86::NoRegister, X86::NoRegister, 
01783                                        X86::NoRegister, X86::NoRegister, 
01784                                        X86::R13, X86::R13D, 
01785                                        X86::NoRegister, X86::NoRegister, 
01786                                        X86::NoRegister, X86::NoRegister, 
01787                                        X86::NoRegister, X86::NoRegister, 
01788                                        X86::NoRegister, X86::NoRegister, 
01789                                        X86::NoRegister, X86::NoRegister, 
01790                                        X86::ECX, X86::CL, 
01791                                        X86::NoRegister, X86::NoRegister, 
01792                                        X86::NoRegister, X86::NoRegister, 
01793                                        X86::NoRegister, X86::NoRegister, 
01794                                        X86::NoRegister, X86::NoRegister, 
01795                                        X86::NoRegister, X86::NoRegister, 
01796                                        X86::NoRegister, X86::NoRegister, 
01797                                        X86::NoRegister, X86::NoRegister, 
01798                                        X86::NoRegister, X86::NoRegister, 
01799                                        X86::NoRegister, X86::NoRegister, 
01800                                        X86::NoRegister, X86::NoRegister, 
01801                                        X86::NoRegister, X86::NoRegister, 
01802                                        X86::NoRegister, X86::NoRegister, 
01803                                        X86::R10, X86::R10B, 
01804                                        X86::NoRegister, X86::NoRegister, 
01805                                        X86::R10D, X86::R10B, 
01806                                        X86::R10W, X86::R10B, 
01807                                        X86::NoRegister, X86::NoRegister, 
01808                                        X86::YMM13, X86::XMM13, 
01809                                        X86::NoRegister, X86::NoRegister, 
01810                                        X86::NoRegister, X86::NoRegister, 
01811                                        X86::NoRegister, X86::NoRegister, 
01812                                        X86::NoRegister, X86::NoRegister, 
01813                                        X86::NoRegister, X86::NoRegister, 
01814                                        X86::NoRegister, X86::NoRegister, 
01815                                        X86::NoRegister, X86::NoRegister, 
01816                                        X86::NoRegister, X86::NoRegister, 
01817                                        X86::NoRegister, X86::NoRegister, 
01818                                        X86::NoRegister, X86::NoRegister, 
01819                                        X86::NoRegister, X86::NoRegister, 
01820                                        X86::NoRegister, X86::NoRegister, 
01821                                        X86::R13, X86::R13W, 
01822                                        X86::NoRegister, X86::NoRegister, 
01823                                        X86::R13D, X86::R13W, 
01824                                        X86::NoRegister, X86::NoRegister, 
01825                                        X86::RCX, X86::CH, 
01826                                        X86::NoRegister, X86::NoRegister, 
01827                                        X86::NoRegister, X86::NoRegister, 
01828                                        X86::NoRegister, X86::NoRegister, 
01829                                        X86::NoRegister, X86::NoRegister, 
01830                                        X86::NoRegister, X86::NoRegister, 
01831                                        X86::NoRegister, X86::NoRegister, 
01832                                        X86::NoRegister, X86::NoRegister, 
01833                                        X86::NoRegister, X86::NoRegister, 
01834                                        X86::NoRegister, X86::NoRegister, 
01835                                        X86::NoRegister, X86::NoRegister, 
01836                                        X86::NoRegister, X86::NoRegister, 
01837                                        X86::NoRegister, X86::NoRegister, 
01838                                        X86::NoRegister, X86::NoRegister, 
01839                                        X86::NoRegister, X86::NoRegister, 
01840                                        X86::R10, X86::R10D, 
01841                                        X86::NoRegister, X86::NoRegister, 
01842                                        X86::NoRegister, X86::NoRegister, 
01843                                        X86::R9, X86::R9B, 
01844                                        X86::YMM14, X86::XMM14, 
01845                                        X86::R9D, X86::R9B, 
01846                                        X86::R9W, X86::R9B, 
01847                                        X86::NoRegister, X86::NoRegister, 
01848                                        X86::NoRegister, X86::NoRegister, 
01849                                        X86::NoRegister, X86::NoRegister, 
01850                                        X86::NoRegister, X86::NoRegister, 
01851                                        X86::NoRegister, X86::NoRegister, 
01852                                        X86::NoRegister, X86::NoRegister, 
01853                                        X86::NoRegister, X86::NoRegister, 
01854                                        X86::NoRegister, X86::NoRegister, 
01855                                        X86::NoRegister, X86::NoRegister, 
01856                                        X86::NoRegister, X86::NoRegister, 
01857                                        X86::NoRegister, X86::NoRegister, 
01858                                        X86::NoRegister, X86::NoRegister, 
01859                                        X86::NoRegister, X86::NoRegister, 
01860                                        X86::RCX, X86::CL, 
01861                                        X86::NoRegister, X86::NoRegister, 
01862                                        X86::NoRegister, X86::NoRegister, 
01863                                        X86::NoRegister, X86::NoRegister, 
01864                                        X86::ECX, X86::CX, 
01865                                        X86::NoRegister, X86::NoRegister, 
01866                                        X86::NoRegister, X86::NoRegister, 
01867                                        X86::NoRegister, X86::NoRegister, 
01868                                        X86::NoRegister, X86::NoRegister, 
01869                                        X86::NoRegister, X86::NoRegister, 
01870                                        X86::NoRegister, X86::NoRegister, 
01871                                        X86::NoRegister, X86::NoRegister, 
01872                                        X86::EDX, X86::DX, 
01873                                        X86::NoRegister, X86::NoRegister, 
01874                                        X86::RCX, X86::ECX, 
01875                                        X86::NoRegister, X86::NoRegister, 
01876                                        X86::NoRegister, X86::NoRegister, 
01877                                        X86::R10, X86::R10W, 
01878                                        X86::NoRegister, X86::NoRegister, 
01879                                        X86::R10D, X86::R10W, 
01880                                        X86::R9, X86::R9D, 
01881                                        X86::NoRegister, X86::NoRegister, 
01882                                        X86::YMM15, X86::XMM15, 
01883                                        X86::NoRegister, X86::NoRegister, 
01884                                        X86::NoRegister, X86::NoRegister, 
01885                                        X86::NoRegister, X86::NoRegister, 
01886                                        X86::NoRegister, X86::NoRegister, 
01887                                        X86::NoRegister, X86::NoRegister, 
01888                                        X86::NoRegister, X86::NoRegister, 
01889                                        X86::DX, X86::DH, 
01890                                        X86::NoRegister, X86::NoRegister, 
01891                                        X86::NoRegister, X86::NoRegister, 
01892                                        X86::NoRegister, X86::NoRegister, 
01893 X86::NoRegister, X86::NoRegister };
01894   const unsigned SubregHashTableSize = 512;
01895 
01896 
01897   // Number of hash collisions: 23
01898   const unsigned SuperregHashTable[] = { X86::DX, X86::RDX, 
01899                                        X86::NoRegister, X86::NoRegister, 
01900                                        X86::NoRegister, X86::NoRegister, 
01901                                        X86::NoRegister, X86::NoRegister, 
01902                                        X86::NoRegister, X86::NoRegister, 
01903                                        X86::NoRegister, X86::NoRegister, 
01904                                        X86::NoRegister, X86::NoRegister, 
01905                                        X86::NoRegister, X86::NoRegister, 
01906                                        X86::NoRegister, X86::NoRegister, 
01907                                        X86::NoRegister, X86::NoRegister, 
01908                                        X86::NoRegister, X86::NoRegister, 
01909                                        X86::BP, X86::RBP, 
01910                                        X86::BPL, X86::RBP, 
01911                                        X86::NoRegister, X86::NoRegister, 
01912                                        X86::EDX, X86::RDX, 
01913                                        X86::NoRegister, X86::NoRegister, 
01914                                        X86::XMM14, X86::YMM14, 
01915                                        X86::NoRegister, X86::NoRegister, 
01916                                        X86::BP, X86::EBP, 
01917                                        X86::BPL, X86::EBP, 
01918                                        X86::NoRegister, X86::NoRegister, 
01919                                        X86::DIL, X86::DI, 
01920                                        X86::NoRegister, X86::NoRegister, 
01921                                        X86::NoRegister, X86::NoRegister, 
01922                                        X86::R9B, X86::R9W, 
01923                                        X86::R11B, X86::R11, 
01924                                        X86::R11D, X86::R11, 
01925                                        X86::R11W, X86::R11, 
01926                                        X86::NoRegister, X86::NoRegister, 
01927                                        X86::NoRegister, X86::NoRegister, 
01928                                        X86::NoRegister, X86::NoRegister, 
01929                                        X86::NoRegister, X86::NoRegister, 
01930                                        X86::NoRegister, X86::NoRegister, 
01931                                        X86::EBP, X86::RBP, 
01932                                        X86::NoRegister, X86::NoRegister, 
01933                                        X86::NoRegister, X86::NoRegister, 
01934                                        X86::NoRegister, X86::NoRegister, 
01935                                        X86::NoRegister, X86::NoRegister, 
01936                                        X86::NoRegister, X86::NoRegister, 
01937                                        X86::NoRegister, X86::NoRegister, 
01938                                        X86::NoRegister, X86::NoRegister, 
01939                                        X86::NoRegister, X86::NoRegister, 
01940                                        X86::R14D, X86::R14, 
01941                                        X86::R14B, X86::R14D, 
01942                                        X86::NoRegister, X86::NoRegister, 
01943                                        X86::R14W, X86::R14D, 
01944                                        X86::BH, X86::RBX, 
01945                                        X86::BL, X86::RBX, 
01946                                        X86::NoRegister, X86::NoRegister, 
01947                                        X86::NoRegister, X86::NoRegister, 
01948                                        X86::BX, X86::RBX, 
01949                                        X86::NoRegister, X86::NoRegister, 
01950                                        X86::XMM15, X86::YMM15, 
01951                                        X86::BH, X86::EBX, 
01952                                        X86::BL, X86::EBX, 
01953                                        X86::EIP, X86::RIP, 
01954                                        X86::NoRegister, X86::NoRegister, 
01955                                        X86::BX, X86::EBX, 
01956                                        X86::NoRegister, X86::NoRegister, 
01957                                        X86::NoRegister, X86::NoRegister, 
01958                                        X86::NoRegister, X86::NoRegister, 
01959                                        X86::NoRegister, X86::NoRegister, 
01960                                        X86::NoRegister, X86::NoRegister, 
01961                                        X86::NoRegister, X86::NoRegister, 
01962                                        X86::NoRegister, X86::NoRegister, 
01963                                        X86::NoRegister, X86::NoRegister, 
01964                                        X86::IP, X86::RIP, 
01965                                        X86::NoRegister, X86::NoRegister, 
01966                                        X86::NoRegister, X86::NoRegister, 
01967                                        X86::NoRegister, X86::NoRegister, 
01968                                        X86::NoRegister, X86::NoRegister, 
01969                                        X86::EBX, X86::RBX, 
01970                                        X86::NoRegister, X86::NoRegister, 
01971                                        X86::IP, X86::EIP, 
01972                                        X86::NoRegister, X86::NoRegister, 
01973                                        X86::NoRegister, X86::NoRegister, 
01974                                        X86::NoRegister, X86::NoRegister, 
01975                                        X86::NoRegister, X86::NoRegister, 
01976                                        X86::NoRegister, X86::NoRegister, 
01977                                        X86::NoRegister, X86::NoRegister, 
01978                                        X86::R14B, X86::R14W, 
01979                                        X86::NoRegister, X86::NoRegister, 
01980                                        X86::NoRegister, X86::NoRegister, 
01981                                        X86::NoRegister, X86::NoRegister, 
01982                                        X86::NoRegister, X86::NoRegister, 
01983                                        X86::NoRegister, X86::NoRegister, 
01984                                        X86::NoRegister, X86::NoRegister, 
01985                                        X86::NoRegister, X86::NoRegister, 
01986                                        X86::NoRegister, X86::NoRegister, 
01987                                        X86::NoRegister, X86::NoRegister, 
01988                                        X86::XMM2, X86::YMM2, 
01989                                        X86::NoRegister, X86::NoRegister, 
01990                                        X86::ESI, X86::RSI, 
01991                                        X86::NoRegister, X86::NoRegister, 
01992                                        X86::NoRegister, X86::NoRegister, 
01993                                        X86::NoRegister, X86::NoRegister, 
01994                                        X86::NoRegister, X86::NoRegister, 
01995                                        X86::NoRegister, X86::NoRegister, 
01996                                        X86::NoRegister, X86::NoRegister, 
01997                                        X86::R11B, X86::R11D, 
01998                                        X86::NoRegister, X86::NoRegister, 
01999                                        X86::R11W, X86::R11D, 
02000                                        X86::NoRegister, X86::NoRegister, 
02001                                        X86::NoRegister, X86::NoRegister, 
02002                                        X86::NoRegister, X86::NoRegister, 
02003                                        X86::NoRegister, X86::NoRegister, 
02004                                        X86::NoRegister, X86::NoRegister, 
02005                                        X86::NoRegister, X86::NoRegister, 
02006                                        X86::NoRegister, X86::NoRegister, 
02007                                        X86::NoRegister, X86::NoRegister, 
02008                                        X86::NoRegister, X86::NoRegister, 
02009                                        X86::NoRegister, X86::NoRegister, 
02010                                        X86::AH, X86::AX, 
02011                                        X86::AL, X86::AX, 
02012                                        X86::NoRegister, X86::NoRegister, 
02013                                        X86::NoRegister, X86::NoRegister, 
02014                                        X86::NoRegister, X86::NoRegister, 
02015                                        X86::NoRegister, X86::NoRegister, 
02016                                        X86::NoRegister, X86::NoRegister, 
02017                                        X86::NoRegister, X86::NoRegister, 
02018                                        X86::NoRegister, X86::NoRegister, 
02019                                        X86::R15B, X86::R15, 
02020                                        X86::R15D, X86::R15, 
02021                                        X86::R15W, X86::R15, 
02022                                        X86::NoRegister, X86::NoRegister, 
02023                                        X86::NoRegister, X86::NoRegister, 
02024                                        X86::NoRegister, X86::NoRegister, 
02025                                        X86::NoRegister, X86::NoRegister, 
02026                                        X86::XMM3, X86::YMM3, 
02027                                        X86::NoRegister, X86::NoRegister, 
02028                                        X86::ESP, X86::RSP, 
02029                                        X86::NoRegister, X86::NoRegister, 
02030                                        X86::NoRegister, X86::NoRegister, 
02031                                        X86::NoRegister, X86::NoRegister, 
02032                                        X86::NoRegister, X86::NoRegister, 
02033                                        X86::NoRegister, X86::NoRegister, 
02034                                        X86::R11B, X86::R11W, 
02035                                        X86::NoRegister, X86::NoRegister, 
02036                                        X86::NoRegister, X86::NoRegister, 
02037                                        X86::NoRegister, X86::NoRegister, 
02038                                        X86::NoRegister, X86::NoRegister, 
02039                                        X86::NoRegister, X86::NoRegister, 
02040                                        X86::NoRegister, X86::NoRegister, 
02041                                        X86::NoRegister, X86::NoRegister, 
02042                                        X86::NoRegister, X86::NoRegister, 
02043                                        X86::NoRegister, X86::NoRegister, 
02044                                        X86::NoRegister, X86::NoRegister, 
02045                                        X86::NoRegister, X86::NoRegister, 
02046                                        X86::NoRegister, X86::NoRegister, 
02047                                        X86::NoRegister, X86::NoRegister, 
02048                                        X86::NoRegister, X86::NoRegister, 
02049                                        X86::NoRegister, X86::NoRegister, 
02050                                        X86::NoRegister, X86::NoRegister, 
02051                                        X86::NoRegister, X86::NoRegister, 
02052                                        X86::NoRegister, X86::NoRegister, 
02053                                        X86::NoRegister, X86::NoRegister, 
02054                                        X86::NoRegister, X86::NoRegister, 
02055                                        X86::NoRegister, X86::NoRegister, 
02056                                        X86::NoRegister, X86::NoRegister, 
02057                                        X86::NoRegister, X86::NoRegister, 
02058                                        X86::NoRegister, X86::NoRegister, 
02059                                        X86::NoRegister, X86::NoRegister, 
02060                                        X86::SI, X86::RSI, 
02061                                        X86::SIL, X86::RSI, 
02062                                        X86::NoRegister, X86::NoRegister, 
02063                                        X86::NoRegister, X86::NoRegister, 
02064                                        X86::XMM4, X86::YMM4, 
02065                                        X86::NoRegister, X86::NoRegister, 
02066                                        X86::NoRegister, X86::NoRegister, 
02067                                        X86::NoRegister, X86::NoRegister, 
02068                                        X86::NoRegister, X86::NoRegister, 
02069                                        X86::NoRegister, X86::NoRegister, 
02070                                        X86::NoRegister, X86::NoRegister, 
02071                                        X86::NoRegister, X86::NoRegister, 
02072                                        X86::NoRegister, X86::NoRegister, 
02073                                        X86::NoRegister, X86::NoRegister, 
02074                                        X86::NoRegister, X86::NoRegister, 
02075                                        X86::R12B, X86::R12, 
02076                                        X86::R12D, X86::R12, 
02077                                        X86::R12W, X86::R12, 
02078                                        X86::NoRegister, X86::NoRegister, 
02079                                        X86::NoRegister, X86::NoRegister, 
02080                                        X86::NoRegister, X86::NoRegister, 
02081                                        X86::NoRegister, X86::NoRegister, 
02082                                        X86::NoRegister, X86::NoRegister, 
02083                                        X86::NoRegister, X86::NoRegister, 
02084                                        X86::NoRegister, X86::NoRegister, 
02085                                        X86::NoRegister, X86::NoRegister, 
02086                                        X86::NoRegister, X86::NoRegister, 
02087                                        X86::NoRegister, X86::NoRegister, 
02088                                        X86::NoRegister, X86::NoRegister, 
02089                                        X86::NoRegister, X86::NoRegister, 
02090                                        X86::NoRegister, X86::NoRegister, 
02091                                        X86::NoRegister, X86::NoRegister, 
02092                                        X86::NoRegister, X86::NoRegister, 
02093                                        X86::R15B, X86::R15D, 
02094                                        X86::NoRegister, X86::NoRegister, 
02095                                        X86::R15W, X86::R15D, 
02096                                        X86::NoRegister, X86::NoRegister, 
02097                                        X86::NoRegister, X86::NoRegister, 
02098                                        X86::NoRegister, X86::NoRegister, 
02099                                        X86::SP, X86::RSP, 
02100                                        X86::SPL, X86::RSP, 
02101                                        X86::NoRegister, X86::NoRegister, 
02102                                        X86::XMM5, X86::YMM5, 
02103                                        X86::NoRegister, X86::NoRegister, 
02104                                        X86::SI, X86::ESI, 
02105                                        X86::SIL, X86::ESI, 
02106                                        X86::NoRegister, X86::NoRegister, 
02107                                        X86::NoRegister, X86::NoRegister, 
02108                                        X86::NoRegister, X86::NoRegister, 
02109                                        X86::NoRegister, X86::NoRegister, 
02110                                        X86::NoRegister, X86::NoRegister, 
02111                                        X86::NoRegister, X86::NoRegister, 
02112                                        X86::NoRegister, X86::NoRegister, 
02113                                        X86::NoRegister, X86::NoRegister, 
02114                                        X86::NoRegister, X86::NoRegister, 
02115                                        X86::NoRegister, X86::NoRegister, 
02116                                        X86::NoRegister, X86::NoRegister, 
02117                                        X86::NoRegister, X86::NoRegister, 
02118                                        X86::NoRegister, X86::NoRegister, 
02119                                        X86::NoRegister, X86::NoRegister, 
02120                                        X86::NoRegister, X86::NoRegister, 
02121                                        X86::NoRegister, X86::NoRegister, 
02122                                        X86::NoRegister, X86::NoRegister, 
02123                                        X86::NoRegister, X86::NoRegister, 
02124                                        X86::NoRegister, X86::NoRegister, 
02125                                        X86::NoRegister, X86::NoRegister, 
02126                                        X86::NoRegister, X86::NoRegister, 
02127                                        X86::BPL, X86::BP, 
02128                                        X86::NoRegister, X86::NoRegister, 
02129                                        X86::NoRegister, X86::NoRegister, 
02130                                        X86::R15B, X86::R15W, 
02131                                        X86::NoRegister, X86::NoRegister, 
02132                                        X86::NoRegister, X86::NoRegister, 
02133                                        X86::NoRegister, X86::NoRegister, 
02134                                        X86::NoRegister, X86::NoRegister, 
02135                                        X86::SIL, X86::SI, 
02136                                        X86::NoRegister, X86::NoRegister, 
02137                                        X86::NoRegister, X86::NoRegister, 
02138                                        X86::NoRegister, X86::NoRegister, 
02139                                        X86::NoRegister, X86::NoRegister, 
02140                                        X86::XMM6, X86::YMM6, 
02141                                        X86::NoRegister, X86::NoRegister, 
02142                                        X86::NoRegister, X86::NoRegister, 
02143                                        X86::SP, X86::ESP, 
02144                                        X86::SPL, X86::ESP, 
02145                                        X86::NoRegister, X86::NoRegister, 
02146                                        X86::NoRegister, X86::NoRegister, 
02147                                        X86::NoRegister, X86::NoRegister, 
02148                                        X86::NoRegister, X86::NoRegister, 
02149                                        X86::R12B, X86::R12D, 
02150                                        X86::NoRegister, X86::NoRegister, 
02151                                        X86::R12W, X86::R12D, 
02152                                        X86::NoRegister, X86::NoRegister, 
02153                                        X86::NoRegister, X86::NoRegister, 
02154                                        X86::NoRegister, X86::NoRegister, 
02155                                        X86::NoRegister, X86::NoRegister, 
02156                                        X86::NoRegister, X86::NoRegister, 
02157                                        X86::NoRegister, X86::NoRegister, 
02158                                        X86::NoRegister, X86::NoRegister, 
02159                                        X86::NoRegister, X86::NoRegister, 
02160                                        X86::NoRegister, X86::NoRegister, 
02161                                        X86::NoRegister, X86::NoRegister, 
02162                                        X86::NoRegister, X86::NoRegister, 
02163                                        X86::NoRegister, X86::NoRegister, 
02164                                        X86::NoRegister, X86::NoRegister, 
02165                                        X86::NoRegister, X86::NoRegister, 
02166                                        X86::NoRegister, X86::NoRegister, 
02167                                        X86::NoRegister, X86::NoRegister, 
02168                                        X86::NoRegister, X86::NoRegister, 
02169                                        X86::NoRegister, X86::NoRegister, 
02170                                        X86::NoRegister, X86::NoRegister, 
02171                                        X86::R8B, X86::R8, 
02172                                        X86::R8D, X86::R8, 
02173                                        X86::R8W, X86::R8, 
02174                                        X86::NoRegister, X86::NoRegister, 
02175                                        X86::NoRegister, X86::NoRegister, 
02176                                        X86::NoRegister, X86::NoRegister, 
02177                                        X86::NoRegister, X86::NoRegister, 
02178                                        X86::XMM7, X86::YMM7, 
02179                                        X86::NoRegister, X86::NoRegister, 
02180                                        X86::NoRegister, X86::NoRegister, 
02181                                        X86::NoRegister, X86::NoRegister, 
02182                                        X86::NoRegister, X86::NoRegister, 
02183                                        X86::NoRegister, X86::NoRegister, 
02184                                        X86::NoRegister, X86::NoRegister, 
02185                                        X86::NoRegister, X86::NoRegister, 
02186                                        X86::R12B, X86::R12W, 
02187                                        X86::NoRegister, X86::NoRegister, 
02188                                        X86::NoRegister, X86::NoRegister, 
02189                                        X86::NoRegister, X86::NoRegister, 
02190                                        X86::NoRegister, X86::NoRegister, 
02191                                        X86::NoRegister, X86::NoRegister, 
02192                                        X86::NoRegister, X86::NoRegister, 
02193                                        X86::NoRegister, X86::NoRegister, 
02194                                        X86::NoRegister, X86::NoRegister, 
02195                                        X86::NoRegister, X86::NoRegister, 
02196                                        X86::XMM0, X86::YMM0, 
02197                                        X86::NoRegister, X86::NoRegister, 
02198                                        X86::BH, X86::BX, 
02199                                        X86::BL, X86::BX, 
02200                                        X86::NoRegister, X86::NoRegister, 
02201                                        X86::NoRegister, X86::NoRegister, 
02202                                        X86::NoRegister, X86::NoRegister, 
02203                                        X86::NoRegister, X86::NoRegister, 
02204                                        X86::NoRegister, X86::NoRegister, 
02205                                        X86::NoRegister, X86::NoRegister, 
02206                                        X86::NoRegister, X86::NoRegister, 
02207                                        X86::NoRegister, X86::NoRegister, 
02208                                        X86::NoRegister, X86::NoRegister, 
02209                                        X86::NoRegister, X86::NoRegister, 
02210                                        X86::NoRegister, X86::NoRegister, 
02211                                        X86::SPL, X86::SP, 
02212                                        X86::NoRegister, X86::NoRegister, 
02213                                        X86::NoRegister, X86::NoRegister, 
02214                                        X86::NoRegister, X86::NoRegister, 
02215                                        X86::NoRegister, X86::NoRegister, 
02216                                        X86::XMM8, X86::YMM8, 
02217                                        X86::NoRegister, X86::NoRegister, 
02218                                        X86::NoRegister, X86::NoRegister, 
02219                                        X86::NoRegister, X86::NoRegister, 
02220                                        X86::NoRegister, X86::NoRegister, 
02221                                        X86::NoRegister, X86::NoRegister, 
02222                                        X86::NoRegister, X86::NoRegister, 
02223                                        X86::NoRegister, X86::NoRegister, 
02224                                        X86::NoRegister, X86::NoRegister, 
02225                                        X86::NoRegister, X86::NoRegister, 
02226                                        X86::NoRegister, X86::NoRegister, 
02227                                        X86::R13B, X86::R13, 
02228                                        X86::R13D, X86::R13, 
02229                                        X86::R13W, X86::R13, 
02230                                        X86::NoRegister, X86::NoRegister, 
02231                                        X86::NoRegister, X86::NoRegister, 
02232                                        X86::NoRegister, X86::NoRegister, 
02233                                        X86::NoRegister, X86::NoRegister, 
02234                                        X86::XMM1, X86::YMM1, 
02235                                        X86::NoRegister, X86::NoRegister, 
02236                                        X86::NoRegister, X86::NoRegister, 
02237                                        X86::NoRegister, X86::NoRegister, 
02238                                        X86::NoRegister, X86::NoRegister, 
02239                                        X86::NoRegister, X86::NoRegister, 
02240                                        X86::NoRegister, X86::NoRegister, 
02241                                        X86::NoRegister, X86::NoRegister, 
02242                                        X86::NoRegister, X86::NoRegister, 
02243                                        X86::NoRegister, X86::NoRegister, 
02244                                        X86::NoRegister, X86::NoRegister, 
02245                                        X86::R8B, X86::R8D, 
02246                                        X86::NoRegister, X86::NoRegister, 
02247                                        X86::R8W, X86::R8D, 
02248                                        X86::NoRegister, X86::NoRegister, 
02249                                        X86::NoRegister, X86::NoRegister, 
02250                                        X86::NoRegister, X86::NoRegister, 
02251                                        X86::NoRegister, X86::NoRegister, 
02252                                        X86::NoRegister, X86::NoRegister, 
02253                                        X86::NoRegister, X86::NoRegister, 
02254                                        X86::XMM9, X86::YMM9, 
02255                                        X86::NoRegister, X86::NoRegister, 
02256                                        X86::NoRegister, X86::NoRegister, 
02257                                        X86::NoRegister, X86::NoRegister, 
02258                                        X86::NoRegister, X86::NoRegister, 
02259                                        X86::NoRegister, X86::NoRegister, 
02260                                        X86::NoRegister, X86::NoRegister, 
02261                                        X86::NoRegister, X86::NoRegister, 
02262                                        X86::NoRegister, X86::NoRegister, 
02263                                        X86::NoRegister, X86::NoRegister, 
02264                                        X86::NoRegister, X86::NoRegister, 
02265                                        X86::NoRegister, X86::NoRegister, 
02266                                        X86::NoRegister, X86::NoRegister, 
02267                                        X86::NoRegister, X86::NoRegister, 
02268                                        X86::NoRegister, X86::NoRegister, 
02269                                        X86::NoRegister, X86::NoRegister, 
02270                                        X86::NoRegister, X86::NoRegister, 
02271                                        X86::NoRegister, X86::NoRegister, 
02272                                        X86::XMM10, X86::YMM10, 
02273                                        X86::NoRegister, X86::NoRegister, 
02274                                        X86::NoRegister, X86::NoRegister, 
02275                                        X86::NoRegister, X86::NoRegister, 
02276                                        X86::NoRegister, X86::NoRegister, 
02277                                        X86::NoRegister, X86::NoRegister, 
02278                                        X86::NoRegister, X86::NoRegister, 
02279                                        X86::NoRegister, X86::NoRegister, 
02280                                        X86::NoRegister, X86::NoRegister, 
02281                                        X86::NoRegister, X86::NoRegister, 
02282                                        X86::R8B, X86::R8W, 
02283                                        X86::R10B, X86::R10, 
02284                                        X86::R10D, X86::R10, 
02285                                        X86::R10W, X86::R10, 
02286                                        X86::NoRegister, X86::NoRegister, 
02287                                        X86::NoRegister, X86::NoRegister, 
02288                                        X86::NoRegister, X86::NoRegister, 
02289                                        X86::CH, X86::ECX, 
02290                                        X86::CL, X86::ECX, 
02291                                        X86::NoRegister, X86::NoRegister, 
02292                                        X86::CX, X86::ECX, 
02293                                        X86::NoRegister, X86::NoRegister, 
02294                                        X86::NoRegister, X86::NoRegister, 
02295                                        X86::NoRegister, X86::NoRegister, 
02296                                        X86::NoRegister, X86::NoRegister, 
02297                                        X86::NoRegister, X86::NoRegister, 
02298                                        X86::NoRegister, X86::NoRegister, 
02299                                        X86::NoRegister, X86::NoRegister, 
02300                                        X86::NoRegister, X86::NoRegister, 
02301                                        X86::R13B, X86::R13D, 
02302                                        X86::NoRegister, X86::NoRegister, 
02303                                        X86::R13W, X86::R13D, 
02304                                        X86::NoRegister, X86::NoRegister, 
02305                                        X86::NoRegister, X86::NoRegister, 
02306                                        X86::NoRegister, X86::NoRegister, 
02307                                        X86::NoRegister, X86::NoRegister, 
02308                                        X86::NoRegister, X86::NoRegister, 
02309                                        X86::NoRegister, X86::NoRegister, 
02310                                        X86::XMM11, X86::YMM11, 
02311                                        X86::NoRegister, X86::NoRegister, 
02312                                        X86::NoRegister, X86::NoRegister, 
02313                                        X86::NoRegister, X86::NoRegister, 
02314                                        X86::NoRegister, X86::NoRegister, 
02315                                        X86::NoRegister, X86::NoRegister, 
02316                                        X86::NoRegister, X86::NoRegister, 
02317                                        X86::NoRegister, X86::NoRegister, 
02318                                        X86::NoRegister, X86::NoRegister, 
02319                                        X86::CH, X86::RCX, 
02320                                        X86::CL, X86::RCX, 
02321                                        X86::NoRegister, X86::NoRegister, 
02322                                        X86::CX, X86::RCX, 
02323                                        X86::R9B, X86::R9, 
02324                                        X86::R9D, X86::R9, 
02325                                        X86::R9W, X86::R9, 
02326                                        X86::NoRegister, X86::NoRegister, 
02327                                        X86::NoRegister, X86::NoRegister, 
02328                                        X86::NoRegister, X86::NoRegister, 
02329                                        X86::NoRegister, X86::NoRegister, 
02330                                        X86::NoRegister, X86::NoRegister, 
02331                                        X86::DI, X86::EDI, 
02332                                        X86::DIL, X86::EDI, 
02333                                        X86::NoRegister, X86::NoRegister, 
02334                                        X86::NoRegister, X86::NoRegister, 
02335                                        X86::NoRegister, X86::NoRegister, 
02336                                        X86::NoRegister, X86::NoRegister, 
02337                                        X86::NoRegister, X86::NoRegister, 
02338                                        X86::R13B, X86::R13W, 
02339                                        X86::NoRegister, X86::NoRegister, 
02340                                        X86::NoRegister, X86::NoRegister, 
02341                                        X86::NoRegister, X86::NoRegister, 
02342                                        X86::NoRegister, X86::NoRegister, 
02343                                        X86::NoRegister, X86::NoRegister, 
02344                                        X86::NoRegister, X86::NoRegister, 
02345                                        X86::NoRegister, X86::NoRegister, 
02346                                        X86::NoRegister, X86::NoRegister, 
02347                                        X86::NoRegister, X86::NoRegister, 
02348                                        X86::ECX, X86::RCX, 
02349                                        X86::NoRegister, X86::NoRegister, 
02350                                        X86::XMM12, X86::YMM12, 
02351                                        X86::CH, X86::CX, 
02352                                        X86::CL, X86::CX, 
02353                                        X86::NoRegister, X86::NoRegister, 
02354                                        X86::NoRegister, X86::NoRegister, 
02355                                        X86::NoRegister, X86::NoRegister, 
02356                                        X86::NoRegister, X86::NoRegister, 
02357                                        X86::R10B, X86::R10D, 
02358                                        X86::NoRegister, X86::NoRegister, 
02359                                        X86::R10W, X86::R10D, 
02360                                        X86::NoRegister, X86::NoRegister, 
02361                                        X86::DH, X86::DX, 
02362                                        X86::DIL, X86::RDI, 
02363                                        X86::DI, X86::RDI, 
02364                                        X86::DL, X86::DX, 
02365                                        X86::NoRegister, X86::NoRegister, 
02366                                        X86::NoRegister, X86::NoRegister, 
02367                                        X86::DH, X86::EDX, 
02368                                        X86::NoRegister, X86::NoRegister, 
02369                                        X86::NoRegister, X86::NoRegister, 
02370                                        X86::DL, X86::EDX, 
02371                                        X86::NoRegister, X86::NoRegister, 
02372                                        X86::NoRegister, X86::NoRegister, 
02373                                        X86::NoRegister, X86::NoRegister, 
02374                                        X86::NoRegister, X86::NoRegister, 
02375                                        X86::NoRegister, X86::NoRegister, 
02376                                        X86::NoRegister, X86::NoRegister, 
02377                                        X86::NoRegister, X86::NoRegister, 
02378                                        X86::NoRegister, X86::NoRegister, 
02379                                        X86::AH, X86::RAX, 
02380                                        X86::AL, X86::RAX, 
02381                                        X86::AX, X86::RAX, 
02382                                        X86::DX, X86::EDX, 
02383                                        X86::R14W, X86::R14, 
02384                                        X86::NoRegister, X86::NoRegister, 
02385                                        X86::R14B, X86::R14, 
02386                                        X86::AH, X86::EAX, 
02387                                        X86::AL, X86::EAX, 
02388                                        X86::AX, X86::EAX, 
02389                                        X86::NoRegister, X86::NoRegister, 
02390                                        X86::NoRegister, X86::NoRegister, 
02391                                        X86::NoRegister, X86::NoRegister, 
02392                                        X86::EDI, X86::RDI, 
02393                                        X86::NoRegister, X86::NoRegister, 
02394                                        X86::R10B, X86::R10W, 
02395                                        X86::NoRegister, X86::NoRegister, 
02396                                        X86::NoRegister, X86::NoRegister, 
02397                                        X86::DH, X86::RDX, 
02398                                        X86::XMM13, X86::YMM13, 
02399                                        X86::R9B, X86::R9D, 
02400                                        X86::DL, X86::RDX, 
02401                                        X86::R9W, X86::R9D, 
02402                                        X86::NoRegister, X86::NoRegister, 
02403                                        X86::NoRegister, X86::NoRegister, 
02404                                        X86::NoRegister, X86::NoRegister, 
02405                                        X86::EAX, X86::RAX, 
02406                                        X86::NoRegister, X86::NoRegister, 
02407                                        X86::NoRegister, X86::NoRegister, 
02408                                        X86::NoRegister, X86::NoRegister, 
02409 X86::NoRegister, X86::NoRegister };
02410   const unsigned SuperregHashTableSize = 512;
02411 
02412 
02413   // Number of hash collisions: 31
02414   const unsigned AliasesHashTable[] = { X86::DX, X86::RDX, 
02415                                        X86::NoRegister, X86::NoRegister, 
02416                                        X86::NoRegister, X86::NoRegister, 
02417                                        X86::NoRegister, X86::NoRegister, 
02418                                        X86::NoRegister, X86::NoRegister, 
02419                                        X86::R14, X86::R14B, 
02420                                        X86::NoRegister, X86::NoRegister, 
02421                                        X86::R14D, X86::R14B, 
02422                                        X86::R14W, X86::R14B, 
02423                                        X86::NoRegister, X86::NoRegister, 
02424                                        X86::NoRegister, X86::NoRegister, 
02425                                        X86::NoRegister, X86::NoRegister, 
02426                                        X86::NoRegister, X86::NoRegister, 
02427                                        X86::NoRegister, X86::NoRegister, 
02428                                        X86::EDX, X86::RDX, 
02429                                        X86::NoRegister, X86::NoRegister, 
02430                                        X86::NoRegister, X86::NoRegister, 
02431                                        X86::NoRegister, X86::NoRegister, 
02432                                        X86::BP, X86::EBP, 
02433                                        X86::BPL, X86::EBP, 
02434                                        X86::NoRegister, X86::NoRegister, 
02435                                        X86::NoRegister, X86::NoRegister, 
02436                                        X86::NoRegister, X86::NoRegister, 
02437                                        X86::NoRegister, X86::NoRegister, 
02438                                        X86::NoRegister, X86::NoRegister, 
02439                                        X86::NoRegister, X86::NoRegister, 
02440                                        X86::YMM2, X86::XMM2, 
02441                                        X86::NoRegister, X86::NoRegister, 
02442                                        X86::NoRegister, X86::NoRegister, 
02443                                        X86::EIP, X86::IP, 
02444                                        X86::NoRegister, X86::NoRegister, 
02445                                        X86::NoRegister, X86::NoRegister, 
02446                                        X86::NoRegister, X86::NoRegister, 
02447                                        X86::NoRegister, X86::NoRegister, 
02448                                        X86::NoRegister, X86::NoRegister, 
02449                                        X86::NoRegister, X86::NoRegister, 
02450                                        X86::NoRegister, X86::NoRegister, 
02451                                        X86::NoRegister, X86::NoRegister, 
02452                                        X86::NoRegister, X86::NoRegister, 
02453                                        X86::NoRegister, X86::NoRegister, 
02454                                        X86::AX, X86::AH, 
02455                                        X86::NoRegister, X86::NoRegister, 
02456                                        X86::R14, X86::R14D, 
02457                                        X86::R14B, X86::R14D, 
02458                                        X86::NoRegister, X86::NoRegister, 
02459                                        X86::R14W, X86::R14D, 
02460                                        X86::NoRegister, X86::NoRegister, 
02461                                        X86::NoRegister, X86::NoRegister, 
02462                                        X86::RDX, X86::DX, 
02463                                        X86::NoRegister, X86::NoRegister, 
02464                                        X86::NoRegister, X86::NoRegister, 
02465                                        X86::NoRegister, X86::NoRegister, 
02466                                        X86::NoRegister, X86::NoRegister, 
02467                                        X86::BH, X86::EBX, 
02468                                        X86::BL, X86::EBX, 
02469                                        X86::EIP, X86::RIP, 
02470                                        X86::NoRegister, X86::NoRegister, 
02471                                        X86::BX, X86::EBX, 
02472                                        X86::NoRegister, X86::NoRegister, 
02473                                        X86::NoRegister, X86::NoRegister, 
02474                                        X86::NoRegister, X86::NoRegister, 
02475                                        X86::NoRegister, X86::NoRegister, 
02476                                        X86::NoRegister, X86::NoRegister, 
02477                                        X86::NoRegister, X86::NoRegister, 
02478                                        X86::EAX, X86::AH, 
02479                                        X86::NoRegister, X86::NoRegister, 
02480                                        X86::IP, X86::RIP, 
02481                                        X86::NoRegister, X86::NoRegister, 
02482                                        X86::NoRegister, X86::NoRegister, 
02483                                        X86::NoRegister, X86::NoRegister, 
02484                                        X86::YMM3, X86::XMM3, 
02485                                        X86::RAX, X86::EAX, 
02486                                        X86::NoRegister, X86::NoRegister, 
02487                                        X86::NoRegister, X86::NoRegister, 
02488                                        X86::NoRegister, X86::NoRegister, 
02489                                        X86::NoRegister, X86::NoRegister, 
02490                                        X86::NoRegister, X86::NoRegister, 
02491                                        X86::AX, X86::AL, 
02492                                        X86::NoRegister, X86::NoRegister, 
02493                                        X86::R14, X86::R14W, 
02494                                        X86::R14B, X86::R14W, 
02495                                        X86::R14D, X86::R14W, 
02496                                        X86::NoRegister, X86::NoRegister, 
02497                                        X86::NoRegister, X86::NoRegister, 
02498                                        X86::NoRegister, X86::NoRegister, 
02499                                        X86::NoRegister, X86::NoRegister, 
02500                                        X86::NoRegister, X86::NoRegister, 
02501                                        X86::NoRegister, X86::NoRegister, 
02502                                        X86::NoRegister, X86::NoRegister, 
02503                                        X86::NoRegister, X86::NoRegister, 
02504                                        X86::NoRegister, X86::NoRegister, 
02505                                        X86::NoRegister, X86::NoRegister, 
02506                                        X86::ESI, X86::RSI, 
02507                                        X86::NoRegister, X86::NoRegister, 
02508                                        X86::NoRegister, X86::NoRegister, 
02509                                        X86::NoRegister, X86::NoRegister, 
02510                                        X86::NoRegister, X86::NoRegister, 
02511                                        X86::NoRegister, X86::NoRegister, 
02512                                        X86::RIP, X86::IP, 
02513                                        X86::NoRegister, X86::NoRegister, 
02514                                        X86::NoRegister, X86::NoRegister, 
02515                                        X86::EAX, X86::AL, 
02516                                        X86::YMM4, X86::XMM4, 
02517                                        X86::NoRegister, X86::NoRegister, 
02518                                        X86::NoRegister, X86::NoRegister, 
02519                                        X86::NoRegister, X86::NoRegister, 
02520                                        X86::NoRegister, X86::NoRegister, 
02521                                        X86::NoRegister, X86::NoRegister, 
02522                                        X86::NoRegister, X86::NoRegister, 
02523                                        X86::RBP, X86::EBP, 
02524                                        X86::NoRegister, X86::NoRegister, 
02525                                        X86::NoRegister, X86::NoRegister, 
02526                                        X86::AH, X86::AX, 
02527                                        X86::AL, X86::AX, 
02528                                        X86::NoRegister, X86::NoRegister, 
02529                                        X86::NoRegister, X86::NoRegister, 
02530                                        X86::NoRegister, X86::NoRegister, 
02531                                        X86::NoRegister, X86::NoRegister, 
02532                                        X86::NoRegister, X86::NoRegister, 
02533                                        X86::NoRegister, X86::NoRegister, 
02534                                        X86::NoRegister, X86::NoRegister, 
02535                                        X86::R15B, X86::R15, 
02536                                        X86::R15D, X86::R15, 
02537                                        X86::R15W, X86::R15, 
02538                                        X86::NoRegister, X86::NoRegister, 
02539                                        X86::NoRegister, X86::NoRegister, 
02540                                        X86::NoRegister, X86::NoRegister, 
02541                                        X86::NoRegister, X86::NoRegister, 
02542                                        X86::NoRegister, X86::NoRegister, 
02543                                        X86::NoRegister, X86::NoRegister, 
02544                                        X86::ESP, X86::RSP, 
02545                                        X86::NoRegister, X86::NoRegister, 
02546                                        X86::NoRegister, X86::NoRegister, 
02547                                        X86::RAX, X86::AH, 
02548                                        X86::NoRegister, X86::NoRegister, 
02549                                        X86::NoRegister, X86::NoRegister, 
02550                                        X86::NoRegister, X86::NoRegister, 
02551                                        X86::NoRegister, X86::NoRegister, 
02552                                        X86::EAX, X86::AX, 
02553                                        X86::NoRegister, X86::NoRegister, 
02554                                        X86::YMM5, X86::XMM5, 
02555                                        X86::NoRegister, X86::NoRegister, 
02556                                        X86::NoRegister, X86::NoRegister, 
02557                                        X86::NoRegister, X86::NoRegister, 
02558                                        X86::NoRegister, X86::NoRegister, 
02559                                        X86::NoRegister, X86::NoRegister, 
02560                                        X86::NoRegister, X86::NoRegister, 
02561                                        X86::RBX, X86::EBX, 
02562                                        X86::NoRegister, X86::NoRegister, 
02563                                        X86::NoRegister, X86::NoRegister, 
02564                                        X86::NoRegister, X86::NoRegister, 
02565                                        X86::NoRegister, X86::NoRegister, 
02566                                        X86::NoRegister, X86::NoRegister, 
02567                                        X86::NoRegister, X86::NoRegister, 
02568                                        X86::NoRegister, X86::NoRegister, 
02569                                        X86::NoRegister, X86::NoRegister, 
02570                                        X86::BX, X86::BH, 
02571                                        X86::R15, X86::R15B, 
02572                                        X86::NoRegister, X86::NoRegister, 
02573                                        X86::R15D, X86::R15B, 
02574                                        X86::R15W, X86::R15B, 
02575                                        X86::NoRegister, X86::NoRegister, 
02576                                        X86::SI, X86::RSI, 
02577                                        X86::SIL, X86::RSI, 
02578                                        X86::NoRegister, X86::NoRegister, 
02579                                        X86::NoRegister, X86::NoRegister, 
02580                                        X86::ESI, X86::SI, 
02581                                        X86::NoRegister, X86::NoRegister, 
02582                                        X86::NoRegister, X86::NoRegister, 
02583                                        X86::NoRegister, X86::NoRegister, 
02584                                        X86::RAX, X86::AL, 
02585                                        X86::NoRegister, X86::NoRegister, 
02586                                        X86::NoRegister, X86::NoRegister, 
02587                                        X86::NoRegister, X86::NoRegister, 
02588                                        X86::NoRegister, X86::NoRegister, 
02589                                        X86::NoRegister, X86::NoRegister, 
02590                                        X86::NoRegister, X86::NoRegister, 
02591                                        X86::EBX, X86::BH, 
02592                                        X86::YMM6, X86::XMM6, 
02593                                        X86::NoRegister, X86::NoRegister, 
02594                                        X86::NoRegister, X86::NoRegister, 
02595                                        X86::NoRegister, X86::NoRegister, 
02596                                        X86::NoRegister, X86::NoRegister, 
02597                                        X86::NoRegister, X86::NoRegister, 
02598                                        X86::NoRegister, X86::NoRegister, 
02599                                        X86::NoRegister, X86::NoRegister, 
02600                                        X86::NoRegister, X86::NoRegister, 
02601                                        X86::NoRegister, X86::NoRegister, 
02602                                        X86::NoRegister, X86::NoRegister, 
02603                                        X86::NoRegister, X86::NoRegister, 
02604                                        X86::NoRegister, X86::NoRegister, 
02605                                        X86::NoRegister, X86::NoRegister, 
02606                                        X86::NoRegister, X86::NoRegister, 
02607                                        X86::BX, X86::BL, 
02608                                        X86::R15, X86::R15D, 
02609                                        X86::R15B, X86::R15D, 
02610                                        X86::NoRegister, X86::NoRegister, 
02611                                        X86::R15W, X86::R15D, 
02612                                        X86::NoRegister, X86::NoRegister, 
02613                                        X86::NoRegister, X86::NoRegister, 
02614                                        X86::NoRegister, X86::NoRegister, 
02615                                        X86::SP, X86::RSP, 
02616                                        X86::SPL, X86::RSP, 
02617                                        X86::ESI, X86::SIL, 
02618                                        X86::NoRegister, X86::NoRegister, 
02619                                        X86::NoRegister, X86::NoRegister, 
02620                                        X86::NoRegister, X86::NoRegister, 
02621                                        X86::RAX, X86::AX, 
02622                                        X86::NoRegister, X86::NoRegister, 
02623                                        X86::NoRegister, X86::NoRegister, 
02624                                        X86::NoRegister, X86::NoRegister, 
02625                                        X86::NoRegister, X86::NoRegister, 
02626                                        X86::NoRegister, X86::NoRegister, 
02627                                        X86::NoRegister, X86::NoRegister, 
02628                                        X86::EBX, X86::BL, 
02629                                        X86::NoRegister, X86::NoRegister, 
02630                                        X86::YMM7, X86::XMM7, 
02631                                        X86::NoRegister, X86::NoRegister, 
02632                                        X86::NoRegister, X86::NoRegister, 
02633                                        X86::NoRegister, X86::NoRegister, 
02634                                        X86::NoRegister, X86::NoRegister, 
02635                                        X86::NoRegister, X86::NoRegister, 
02636                                        X86::NoRegister, X86::NoRegister, 
02637                                        X86::NoRegister, X86::NoRegister, 
02638                                        X86::NoRegister, X86::NoRegister, 
02639                                        X86::NoRegister, X86::NoRegister, 
02640                                        X86::NoRegister, X86::NoRegister, 
02641                                        X86::NoRegister, X86::NoRegister, 
02642                                        X86::NoRegister, X86::NoRegister, 
02643                                        X86::BPL, X86::BP, 
02644                                        X86::NoRegister, X86::NoRegister, 
02645                                        X86::R15, X86::R15W, 
02646                                        X86::R15B, X86::R15W, 
02647                                        X86::R15D, X86::R15W, 
02648                                        X86::RSI, X86::SI, 
02649                                        X86::NoRegister, X86::NoRegister, 
02650                                        X86::NoRegister, X86::NoRegister, 
02651                                        X86::SIL, X86::SI, 
02652                                        X86::NoRegister, X86::NoRegister, 
02653                                        X86::NoRegister, X86::NoRegister, 
02654                                        X86::NoRegister, X86::NoRegister, 
02655                                        X86::ESP, X86::SP, 
02656                                        X86::NoRegister, X86::NoRegister, 
02657                                        X86::NoRegister, X86::NoRegister, 
02658                                        X86::NoRegister, X86::NoRegister, 
02659                                        X86::NoRegister, X86::NoRegister, 
02660                                        X86::RBX, X86::BH, 
02661                                        X86::NoRegister, X86::NoRegister, 
02662                                        X86::NoRegister, X86::NoRegister, 
02663                                        X86::NoRegister, X86::NoRegister, 
02664                                        X86::EBP, X86::BP, 
02665                                        X86::NoRegister, X86::NoRegister, 
02666                                        X86::NoRegister, X86::NoRegister, 
02667                                        X86::NoRegister, X86::NoRegister, 
02668                                        X86::YMM8, X86::XMM8, 
02669                                        X86::NoRegister, X86::NoRegister, 
02670                                        X86::NoRegister, X86::NoRegister, 
02671                                        X86::NoRegister, X86::NoRegister, 
02672                                        X86::NoRegister, X86::NoRegister, 
02673                                        X86::NoRegister, X86::NoRegister, 
02674                                        X86::NoRegister, X86::NoRegister, 
02675                                        X86::NoRegister, X86::NoRegister, 
02676                                        X86::NoRegister, X86::NoRegister, 
02677                                        X86::NoRegister, X86::NoRegister, 
02678                                        X86::NoRegister, X86::NoRegister, 
02679                                        X86::BP, X86::BPL, 
02680                                        X86::NoRegister, X86::NoRegister, 
02681                                        X86::NoRegister, X86::NoRegister, 
02682                                        X86::NoRegister, X86::NoRegister, 
02683                                        X86::NoRegister, X86::NoRegister, 
02684                                        X86::NoRegister, X86::NoRegister, 
02685                                        X86::RSI, X86::SIL, 
02686                                        X86::NoRegister, X86::NoRegister, 
02687                                        X86::R8B, X86::R8, 
02688                                        X86::R8D, X86::R8, 
02689                                        X86::R8W, X86::R8, 
02690                                        X86::NoRegister, X86::NoRegister, 
02691                                        X86::NoRegister, X86::NoRegister, 
02692                                        X86::ESP, X86::SPL, 
02693                                        X86::SI, X86::SIL, 
02694                                        X86::NoRegister, X86::NoRegister, 
02695                                        X86::NoRegister, X86::NoRegister, 
02696                                        X86::NoRegister, X86::NoRegister, 
02697                                        X86::RBX, X86::BL, 
02698                                        X86::NoRegister, X86::NoRegister, 
02699                                        X86::NoRegister, X86::NoRegister, 
02700                                        X86::NoRegister, X86::NoRegister, 
02701                                        X86::EBP, X86::BPL, 
02702                                        X86::NoRegister, X86::NoRegister, 
02703                                        X86::NoRegister, X86::NoRegister, 
02704                                        X86::NoRegister, X86::NoRegister, 
02705                                        X86::NoRegister, X86::NoRegister, 
02706                                        X86::YMM9, X86::XMM9, 
02707                                        X86::NoRegister, X86::NoRegister, 
02708                                        X86::NoRegister, X86::NoRegister, 
02709                                        X86::NoRegister, X86::NoRegister, 
02710                                        X86::NoRegister, X86::NoRegister, 
02711                                        X86::NoRegister, X86::NoRegister, 
02712                                        X86::XMM0, X86::YMM0, 
02713                                        X86::NoRegister, X86::NoRegister, 
02714                                        X86::BH, X86::BX, 
02715                                        X86::BL, X86::BX, 
02716                                        X86::NoRegister, X86::NoRegister, 
02717                                        X86::NoRegister, X86::NoRegister, 
02718                                        X86::NoRegister, X86::NoRegister, 
02719                                        X86::NoRegister, X86::NoRegister, 
02720                                        X86::NoRegister, X86::NoRegister, 
02721                                        X86::NoRegister, X86::NoRegister, 
02722                                        X86::NoRegister, X86::NoRegister, 
02723                                        X86::R8, X86::R8B, 
02724                                        X86::NoRegister, X86::NoRegister, 
02725                                        X86::R8D, X86::R8B, 
02726                                        X86::R8W, X86::R8B, 
02727                                        X86::SPL, X86::SP, 
02728                                        X86::NoRegister, X86::NoRegister, 
02729                                        X86::RSP, X86::SP, 
02730                                        X86::NoRegister, X86::NoRegister, 
02731                                        X86::NoRegister, X86::NoRegister, 
02732                                        X86::NoRegister, X86::NoRegister, 
02733                                        X86::RBP, X86::BP, 
02734                                        X86::NoRegister, X86::NoRegister, 
02735                                        X86::NoRegister, X86::NoRegister, 
02736                                        X86::NoRegister, X86::NoRegister, 
02737                                        X86::NoRegister, X86::NoRegister, 
02738                                        X86::NoRegister, X86::NoRegister, 
02739                                        X86::EBX, X86::BX, 
02740                                        X86::NoRegister, X86::NoRegister, 
02741                                        X86::NoRegister, X86::NoRegister, 
02742                                        X86::NoRegister, X86::NoRegister, 
02743                                        X86::NoRegister, X86::NoRegister, 
02744                                        X86::NoRegister, X86::NoRegister, 
02745                                        X86::NoRegister, X86::NoRegister, 
02746                                        X86::NoRegister, X86::NoRegister, 
02747                                        X86::NoRegister, X86::NoRegister, 
02748                                        X86::NoRegister, X86::NoRegister, 
02749                                        X86::NoRegister, X86::NoRegister, 
02750                                        X86::XMM1, X86::YMM1, 
02751                                        X86::NoRegister, X86::NoRegister, 
02752                                        X86::NoRegister, X86::NoRegister, 
02753                                        X86::NoRegister, X86::NoRegister, 
02754                                        X86::NoRegister, X86::NoRegister, 
02755                                        X86::NoRegister, X86::NoRegister, 
02756                                        X86::NoRegister, X86::NoRegister, 
02757                                        X86::NoRegister, X86::NoRegister, 
02758                                        X86::NoRegister, X86::NoRegister, 
02759                                        X86::CX, X86::CH, 
02760                                        X86::R8, X86::R8D, 
02761                                        X86::R8B, X86::R8D, 
02762                                        X86::RSP, X86::SPL, 
02763                                        X86::R8W, X86::R8D, 
02764                                        X86::NoRegister, X86::NoRegister, 
02765                                        X86::SP, X86::SPL, 
02766                                        X86::NoRegister, X86::NoRegister, 
02767                                        X86::NoRegister, X86::NoRegister, 
02768                                        X86::NoRegister, X86::NoRegister, 
02769                                        X86::NoRegister, X86::NoRegister, 
02770                                        X86::RBP, X86::BPL, 
02771                                        X86::NoRegister, X86::NoRegister, 
02772                                        X86::NoRegister, X86::NoRegister, 
02773                                        X86::NoRegister, X86::NoRegister, 
02774                                        X86::NoRegister, X86::NoRegister, 
02775                                        X86::NoRegister, X86::NoRegister, 
02776                                        X86::NoRegister, X86::NoRegister, 
02777                                        X86::NoRegister, X86::NoRegister, 
02778                                        X86::NoRegister, X86::NoRegister, 
02779                                        X86::NoRegister, X86::NoRegister, 
02780                                        X86::NoRegister, X86::NoRegister, 
02781                                        X86::NoRegister, X86::NoRegister, 
02782                                        X86::NoRegister, X86::NoRegister, 
02783                                        X86::NoRegister, X86::NoRegister, 
02784                                        X86::NoRegister, X86::NoRegister, 
02785                                        X86::ECX, X86::CH, 
02786                                        X86::NoRegister, X86::NoRegister, 
02787                                        X86::NoRegister, X86::NoRegister, 
02788                                        X86::XMM10, X86::YMM10, 
02789                                        X86::NoRegister, X86::NoRegister, 
02790                                        X86::NoRegister, X86::NoRegister, 
02791                                        X86::NoRegister, X86::NoRegister, 
02792                                        X86::NoRegister, X86::NoRegister, 
02793                                        X86::NoRegister, X86::NoRegister, 
02794                                        X86::NoRegister, X86::NoRegister, 
02795                                        X86::NoRegister, X86::NoRegister, 
02796                                        X86::CX, X86::CL, 
02797                                        X86::R8, X86::R8W, 
02798                                        X86::R8B, X86::R8W, 
02799                                        X86::R10B, X86::R10, 
02800                                        X86::R10D, X86::R10, 
02801                                        X86::R10W, X86::R10, 
02802                                        X86::NoRegister, X86::NoRegister, 
02803                                        X86::NoRegister, X86::NoRegister, 
02804                                        X86::NoRegister, X86::NoRegister, 
02805                                        X86::CH, X86::ECX, 
02806                                        X86::CL, X86::ECX, 
02807                                        X86::NoRegister, X86::NoRegister, 
02808                                        X86::CX, X86::ECX, 
02809                                        X86::NoRegister, X86::NoRegister, 
02810                                        X86::RBX, X86::BX, 
02811                                        X86::R8D, X86::R8W, 
02812                                        X86::NoRegister, X86::NoRegister, 
02813                                        X86::NoRegister, X86::NoRegister, 
02814                                        X86::NoRegister, X86::NoRegister, 
02815                                        X86::NoRegister, X86::NoRegister, 
02816                                        X86::NoRegister, X86::NoRegister, 
02817                                        X86::NoRegister, X86::NoRegister, 
02818                                        X86::NoRegister, X86::NoRegister, 
02819                                        X86::NoRegister, X86::NoRegister, 
02820                                        X86::NoRegister, X86::NoRegister, 
02821                                        X86::NoRegister, X86::NoRegister, 
02822                                        X86::ECX, X86::CL, 
02823                                        X86::NoRegister, X86::NoRegister, 
02824                                        X86::NoRegister, X86::NoRegister, 
02825                                        X86::NoRegister, X86::NoRegister, 
02826                                        X86::XMM11, X86::YMM11, 
02827                                        X86::NoRegister, X86::NoRegister, 
02828                                        X86::NoRegister, X86::NoRegister, 
02829                                        X86::NoRegister, X86::NoRegister, 
02830                                        X86::NoRegister, X86::NoRegister, 
02831                                        X86::NoRegister, X86::NoRegister, 
02832                                        X86::NoRegister, X86::NoRegister, 
02833                                        X86::NoRegister, X86::NoRegister, 
02834                                        X86::NoRegister, X86::NoRegister, 
02835                                        X86::R10, X86::R10B, 
02836                                        X86::NoRegister, X86::NoRegister, 
02837                                        X86::R10D, X86::R10B, 
02838                                        X86::R10W, X86::R10B, 
02839                                        X86::R9B, X86::R9, 
02840                                        X86::R9D, X86::R9, 
02841                                        X86::R9W, X86::R9, 
02842                                        X86::NoRegister, X86::NoRegister, 
02843                                        X86::NoRegister, X86::NoRegister, 
02844                                        X86::NoRegister, X86::NoRegister, 
02845                                        X86::NoRegister, X86::NoRegister, 
02846                                        X86::NoRegister, X86::NoRegister, 
02847                                        X86::DI, X86::EDI, 
02848                                        X86::DIL, X86::EDI, 
02849                                        X86::NoRegister, X86::NoRegister, 
02850                                        X86::NoRegister, X86::NoRegister, 
02851                                        X86::NoRegister, X86::NoRegister, 
02852                                        X86::NoRegister, X86::NoRegister, 
02853                                        X86::NoRegister, X86::NoRegister, 
02854                                        X86::NoRegister, X86::NoRegister, 
02855                                        X86::RCX, X86::CH, 
02856                                        X86::NoRegister, X86::NoRegister, 
02857                                        X86::NoRegister, X86::NoRegister, 
02858                                        X86::NoRegister, X86::NoRegister, 
02859                                        X86::NoRegister, X86::NoRegister, 
02860                                        X86::NoRegister, X86::NoRegister, 
02861                                        X86::NoRegister, X86::NoRegister, 
02862                                        X86::NoRegister, X86::NoRegister, 
02863                                        X86::NoRegister, X86::NoRegister, 
02864                                        X86::XMM12, X86::YMM12, 
02865                                        X86::NoRegister, X86::NoRegister, 
02866                                        X86::NoRegister, X86::NoRegister, 
02867                                        X86::CH, X86::CX, 
02868                                        X86::CL, X86::CX, 
02869                                        X86::NoRegister, X86::NoRegister, 
02870                                        X86::NoRegister, X86::NoRegister, 
02871                                        X86::NoRegister, X86::NoRegister, 
02872                                        X86::R10, X86::R10D, 
02873                                        X86::R10B, X86::R10D, 
02874                                        X86::NoRegister, X86::NoRegister, 
02875                                        X86::R10W, X86::R10D, 
02876                                        X86::NoRegister, X86::NoRegister, 
02877                                        X86::R9, X86::R9B, 
02878                                        X86::R9W, X86::R9B, 
02879                                        X86::R9D, X86::R9B, 
02880                                        X86::NoRegister, X86::NoRegister, 
02881                                        X86::NoRegister, X86::NoRegister, 
02882                                        X86::NoRegister, X86::NoRegister, 
02883                                        X86::DH, X86::EDX, 
02884                                        X86::NoRegister, X86::NoRegister, 
02885                                        X86::NoRegister, X86::NoRegister, 
02886                                        X86::DL, X86::EDX, 
02887                                        X86::NoRegister, X86::NoRegister, 
02888                                        X86::NoRegister, X86::NoRegister, 
02889                                        X86::NoRegister, X86::NoRegister, 
02890                                        X86::NoRegister, X86::NoRegister, 
02891                                        X86::NoRegister, X86::NoRegister, 
02892                                        X86::RCX, X86::CL, 
02893                                        X86::NoRegister, X86::NoRegister, 
02894                                        X86::NoRegister, X86::NoRegister, 
02895                                        X86::AH, X86::RAX, 
02896                                        X86::AL, X86::RAX, 
02897                                        X86::AX, X86::RAX, 
02898                                        X86::DX, X86::EDX, 
02899                                        X86::NoRegister, X86::NoRegister, 
02900                                        X86::NoRegister, X86::NoRegister, 
02901                                        X86::NoRegister, X86::NoRegister, 
02902                                        X86::ECX, X86::CX, 
02903                                        X86::NoRegister, X86::NoRegister, 
02904                                        X86::RCX, X86::ECX, 
02905                                        X86::NoRegister, X86::NoRegister, 
02906                                        X86::NoRegister, X86::NoRegister, 
02907                                        X86::NoRegister, X86::NoRegister, 
02908                                        X86::XMM13, X86::YMM13, 
02909                                        X86::R10, X86::R10W, 
02910                                        X86::R10B, X86::R10W, 
02911                                        X86::R10D, X86::R10W, 
02912                                        X86::R9, X86::R9D, 
02913                                        X86::R9B, X86::R9D, 
02914                                        X86::NoRegister, X86::NoRegister, 
02915                                        X86::R9W, X86::R9D, 
02916                                        X86::NoRegister, X86::NoRegister, 
02917                                        X86::NoRegister, X86::NoRegister, 
02918                                        X86::NoRegister, X86::NoRegister, 
02919                                        X86::NoRegister, X86::NoRegister, 
02920                                        X86::NoRegister, X86::NoRegister, 
02921                                        X86::DX, X86::DH, 
02922                                        X86::NoRegister, X86::NoRegister, 
02923                                        X86::EAX, X86::RAX, 
02924                                        X86::NoRegister, X86::NoRegister, 
02925                                        X86::NoRegister, X86::NoRegister, 
02926                                        X86::NoRegister, X86::NoRegister, 
02927                                        X86::NoRegister, X86::NoRegister, 
02928                                        X86::NoRegister, X86::NoRegister, 
02929                                        X86::NoRegister, X86::NoRegister, 
02930                                        X86::NoRegister, X86::NoRegister, 
02931                                        X86::NoRegister, X86::NoRegister, 
02932                                        X86::NoRegister, X86::NoRegister, 
02933                                        X86::NoRegister, X86::NoRegister, 
02934                                        X86::NoRegister, X86::NoRegister, 
02935                                        X86::EDX, X86::DH, 
02936                                        X86::NoRegister, X86::NoRegister, 
02937                                        X86::BP, X86::RBP, 
02938                                        X86::BPL, X86::RBP, 
02939                                        X86::NoRegister, X86::NoRegister, 
02940                                        X86::XMM14, X86::YMM14, 
02941                                        X86::NoRegister, X86::NoRegister, 
02942                                        X86::RDI, X86::EDI, 
02943                                        X86::NoRegister, X86::NoRegister, 
02944                                        X86::NoRegister, X86::NoRegister, 
02945                                        X86::NoRegister, X86::NoRegister, 
02946                                        X86::NoRegister, X86::NoRegister, 
02947                                        X86::DIL, X86::DI, 
02948                                        X86::NoRegister, X86::NoRegister, 
02949                                        X86::R9, X86::R9W, 
02950                                        X86::R9B, X86::R9W, 
02951                                        X86::R11B, X86::R11, 
02952                                        X86::R11D, X86::R11, 
02953                                        X86::R11W, X86::R11, 
02954                                        X86::NoRegister, X86::NoRegister, 
02955                                        X86::NoRegister, X86::NoRegister, 
02956                                        X86::NoRegister, X86::NoRegister, 
02957                                        X86::R9D, X86::R9W, 
02958                                        X86::NoRegister, X86::NoRegister, 
02959                                        X86::EBP, X86::RBP, 
02960                                        X86::NoRegister, X86::NoRegister, 
02961                                        X86::NoRegister, X86::NoRegister, 
02962                                        X86::NoRegister, X86::NoRegister, 
02963                                        X86::NoRegister, X86::NoRegister, 
02964                                        X86::NoRegister, X86::NoRegister, 
02965                                        X86::NoRegister, X86::NoRegister, 
02966                                        X86::RCX, X86::CX, 
02967                                        X86::NoRegister, X86::NoRegister, 
02968                                        X86::NoRegister, X86::NoRegister, 
02969                                        X86::NoRegister, X86::NoRegister, 
02970                                        X86::NoRegister, X86::NoRegister, 
02971                                        X86::EDI, X86::DI, 
02972                                        X86::BH, X86::RBX, 
02973                                        X86::BL, X86::RBX, 
02974                                        X86::NoRegister, X86::NoRegister, 
02975                                        X86::NoRegister, X86::NoRegister, 
02976                                        X86::BX, X86::RBX, 
02977                                        X86::NoRegister, X86::NoRegister, 
02978                                        X86::XMM15, X86::YMM15, 
02979                                        X86::NoRegister, X86::NoRegister, 
02980                                        X86::RDX, X86::EDX, 
02981                                        X86::NoRegister, X86::NoRegister, 
02982                                        X86::NoRegister, X86::NoRegister, 
02983                                        X86::DI, X86::DIL, 
02984                                        X86::NoRegister, X86::NoRegister, 
02985                                        X86::NoRegister, X86::NoRegister, 
02986                                        X86::NoRegister, X86::NoRegister, 
02987                                        X86::R11, X86::R11B, 
02988                                        X86::NoRegister, X86::NoRegister, 
02989                                        X86::R11D, X86::R11B, 
02990                                        X86::R11W, X86::R11B, 
02991                                        X86::NoRegister, X86::NoRegister, 
02992                                        X86::NoRegister, X86::NoRegister, 
02993                                        X86::NoRegister, X86::NoRegister, 
02994                                        X86::NoRegister, X86::NoRegister, 
02995                                        X86::NoRegister, X86::NoRegister, 
02996                                        X86::NoRegister, X86::NoRegister, 
02997                                        X86::EBX, X86::RBX, 
02998                                        X86::NoRegister, X86::NoRegister, 
02999                                        X86::IP, X86::EIP, 
03000                                        X86::NoRegister, X86::NoRegister, 
03001                                        X86::NoRegister, X86::NoRegister, 
03002                                        X86::NoRegister, X86::NoRegister, 
03003                                        X86::NoRegister, X86::NoRegister, 
03004                                        X86::NoRegister, X86::NoRegister, 
03005                                        X86::RDX, X86::DH, 
03006                                        X86::NoRegister, X86::NoRegister, 
03007                                        X86::NoRegister, X86::NoRegister, 
03008                                        X86::EDI, X86::DIL, 
03009                                        X86::NoRegister, X86::NoRegister, 
03010                                        X86::NoRegister, X86::NoRegister, 
03011                                        X86::NoRegister, X86::NoRegister, 
03012                                        X86::NoRegister, X86::NoRegister, 
03013                                        X86::NoRegister, X86::NoRegister, 
03014                                        X86::NoRegister, X86::NoRegister, 
03015                                        X86::NoRegister, X86::NoRegister, 
03016                                        X86::XMM2, X86::YMM2, 
03017                                        X86::NoRegister, X86::NoRegister, 
03018                                        X86::NoRegister, X86::NoRegister, 
03019                                        X86::NoRegister, X86::NoRegister, 
03020                                        X86::NoRegister, X86::NoRegister, 
03021                                        X86::NoRegister, X86::NoRegister, 
03022                                        X86::NoRegister, X86::NoRegister, 
03023                                        X86::NoRegister, X86::NoRegister, 
03024                                        X86::R11, X86::R11D, 
03025                                        X86::R11B, X86::R11D, 
03026                                        X86::NoRegister, X86::NoRegister, 
03027                                        X86::R11W, X86::R11D, 
03028                                        X86::NoRegister, X86::NoRegister, 
03029                                        X86::NoRegister, X86::NoRegister, 
03030                                        X86::NoRegister, X86::NoRegister, 
03031                                        X86::NoRegister, X86::NoRegister, 
03032                                        X86::DX, X86::DL, 
03033                                        X86::NoRegister, X86::NoRegister, 
03034                                        X86::NoRegister, X86::NoRegister, 
03035                                        X86::NoRegister, X86::NoRegister, 
03036                                        X86::NoRegister, X86::NoRegister, 
03037                                        X86::NoRegister, X86::NoRegister, 
03038                                        X86::NoRegister, X86::NoRegister, 
03039                                        X86::NoRegister, X86::NoRegister, 
03040                                        X86::NoRegister, X86::NoRegister, 
03041                                        X86::RDI, X86::DI, 
03042                                        X86::NoRegister, X86::NoRegister, 
03043                                        X86::NoRegister, X86::NoRegister, 
03044                                        X86::NoRegister, X86::NoRegister, 
03045                                        X86::NoRegister, X86::NoRegister, 
03046                                        X86::EDX, X86::DL, 
03047                                        X86::NoRegister, X86::NoRegister, 
03048                                        X86::NoRegister, X86::NoRegister, 
03049                                        X86::NoRegister, X86::NoRegister, 
03050                                        X86::NoRegister, X86::NoRegister, 
03051                                        X86::NoRegister, X86::NoRegister, 
03052                                        X86::NoRegister, X86::NoRegister, 
03053                                        X86::NoRegister, X86::NoRegister, 
03054                                        X86::XMM3, X86::YMM3, 
03055                                        X86::RIP, X86::EIP, 
03056                                        X86::NoRegister, X86::NoRegister, 
03057                                        X86::NoRegister, X86::NoRegister, 
03058                                        X86::NoRegister, X86::NoRegister, 
03059                                        X86::NoRegister, X86::NoRegister, 
03060                                        X86::NoRegister, X86::NoRegister, 
03061                                        X86::R11, X86::R11W, 
03062                                        X86::R11B, X86::R11W, 
03063                                        X86::R11D, X86::R11W, 
03064                                        X86::NoRegister, X86::NoRegister, 
03065                                        X86::NoRegister, X86::NoRegister, 
03066                                        X86::NoRegister, X86::NoRegister, 
03067                                        X86::NoRegister, X86::NoRegister, 
03068                                        X86::NoRegister, X86::NoRegister, 
03069                                        X86::NoRegister, X86::NoRegister, 
03070                                        X86::NoRegister, X86::NoRegister, 
03071                                        X86::NoRegister, X86::NoRegister, 
03072                                        X86::NoRegister, X86::NoRegister, 
03073                                        X86::NoRegister, X86::NoRegister, 
03074                                        X86::NoRegister, X86::NoRegister, 
03075                                        X86::NoRegister, X86::NoRegister, 
03076                                        X86::NoRegister, X86::NoRegister, 
03077                                        X86::NoRegister, X86::NoRegister, 
03078                                        X86::RDI, X86::DIL, 
03079                                        X86::NoRegister, X86::NoRegister, 
03080                                        X86::NoRegister, X86::NoRegister, 
03081                                        X86::NoRegister, X86::NoRegister, 
03082                                        X86::NoRegister, X86::NoRegister, 
03083                                        X86::NoRegister, X86::NoRegister, 
03084                                        X86::NoRegister, X86::NoRegister, 
03085                                        X86::NoRegister, X86::NoRegister, 
03086                                        X86::NoRegister, X86::NoRegister, 
03087                                        X86::NoRegister, X86::NoRegister, 
03088                                        X86::NoRegister, X86::NoRegister, 
03089                                        X86::NoRegister, X86::NoRegister, 
03090                                        X86::NoRegister, X86::NoRegister, 
03091                                        X86::NoRegister, X86::NoRegister, 
03092                                        X86::XMM4, X86::YMM4, 
03093                                        X86::NoRegister, X86::NoRegister, 
03094                                        X86::NoRegister, X86::NoRegister, 
03095                                        X86::NoRegister, X86::NoRegister, 
03096                                        X86::NoRegister, X86::NoRegister, 
03097                                        X86::NoRegister, X86::NoRegister, 
03098                                        X86::NoRegister, X86::NoRegister, 
03099                                        X86::NoRegister, X86::NoRegister, 
03100                                        X86::NoRegister, X86::NoRegister, 
03101                                        X86::NoRegister, X86::NoRegister, 
03102                                        X86::NoRegister, X86::NoRegister, 
03103                                        X86::R12B, X86::R12, 
03104                                        X86::R12D, X86::R12, 
03105                                        X86::R12W, X86::R12, 
03106                                        X86::NoRegister, X86::NoRegister, 
03107                                        X86::NoRegister, X86::NoRegister, 
03108                                        X86::NoRegister, X86::NoRegister, 
03109                                        X86::NoRegister, X86::NoRegister, 
03110                                        X86::NoRegister, X86::NoRegister, 
03111                                        X86::NoRegister, X86::NoRegister, 
03112                                        X86::NoRegister, X86::NoRegister, 
03113                                        X86::NoRegister, X86::NoRegister, 
03114                                        X86::NoRegister, X86::NoRegister, 
03115                                        X86::NoRegister, X86::NoRegister, 
03116                                        X86::RDX, X86::DL, 
03117                                        X86::NoRegister, X86::NoRegister, 
03118                                        X86::NoRegister, X86::NoRegister, 
03119                                        X86::NoRegister, X86::NoRegister, 
03120                                        X86::NoRegister, X86::NoRegister, 
03121                                        X86::NoRegister, X86::NoRegister, 
03122                                        X86::NoRegister, X86::NoRegister, 
03123                                        X86::NoRegister, X86::NoRegister, 
03124                                        X86::NoRegister, X86::NoRegister, 
03125                                        X86::NoRegister, X86::NoRegister, 
03126                                        X86::NoRegister, X86::NoRegister, 
03127                                        X86::NoRegister, X86::NoRegister, 
03128                                        X86::NoRegister, X86::NoRegister, 
03129                                        X86::NoRegister, X86::NoRegister, 
03130                                        X86::RSI, X86::ESI, 
03131                                        X86::NoRegister, X86::NoRegister, 
03132                                        X86::SI, X86::ESI, 
03133                                        X86::SIL, X86::ESI, 
03134                                        X86::NoRegister, X86::NoRegister, 
03135                                        X86::NoRegister, X86::NoRegister, 
03136                                        X86::XMM5, X86::YMM5, 
03137                                        X86::NoRegister, X86::NoRegister, 
03138                                        X86::NoRegister, X86::NoRegister, 
03139                                        X86::R12, X86::R12B, 
03140                                        X86::NoRegister, X86::NoRegister, 
03141                                        X86::R12D, X86::R12B, 
03142                                        X86::R12W, X86::R12B, 
03143                                        X86::NoRegister, X86::NoRegister, 
03144                                        X86::NoRegister, X86::NoRegister, 
03145                                        X86::NoRegister, X86::NoRegister, 
03146                                        X86::NoRegister, X86::NoRegister, 
03147                                        X86::NoRegister, X86::NoRegister, 
03148                                        X86::NoRegister, X86::NoRegister, 
03149                                        X86::NoRegister, X86::NoRegister, 
03150                                        X86::NoRegister, X86::NoRegister, 
03151                                        X86::NoRegister, X86::NoRegister, 
03152                                        X86::NoRegister, X86::NoRegister, 
03153                                        X86::NoRegister, X86::NoRegister, 
03154                                        X86::NoRegister, X86::NoRegister, 
03155                                        X86::NoRegister, X86::NoRegister, 
03156                                        X86::NoRegister, X86::NoRegister, 
03157                                        X86::NoRegister, X86::NoRegister, 
03158                                        X86::NoRegister, X86::NoRegister, 
03159                                        X86::NoRegister, X86::NoRegister, 
03160                                        X86::YMM0, X86::XMM0, 
03161                                        X86::NoRegister, X86::NoRegister, 
03162                                        X86::NoRegister, X86::NoRegister, 
03163                                        X86::NoRegister, X86::NoRegister, 
03164                                        X86::NoRegister, X86::NoRegister, 
03165                                        X86::NoRegister, X86::NoRegister, 
03166                                        X86::NoRegister, X86::NoRegister, 
03167                                        X86::NoRegister, X86::NoRegister, 
03168                                        X86::RSP, X86::ESP, 
03169                                        X86::NoRegister, X86::NoRegister, 
03170                                        X86::XMM6, X86::YMM6, 
03171                                        X86::SP, X86::ESP, 
03172                                        X86::SPL, X86::ESP, 
03173                                        X86::NoRegister, X86::NoRegister, 
03174                                        X86::NoRegister, X86::NoRegister, 
03175                                        X86::NoRegister, X86::NoRegister, 
03176                                        X86::R12, X86::R12D, 
03177                                        X86::R12B, X86::R12D, 
03178                                        X86::NoRegister, X86::NoRegister, 
03179                                        X86::R12W, X86::R12D, 
03180                                        X86::NoRegister, X86::NoRegister, 
03181                                        X86::NoRegister, X86::NoRegister, 
03182                                        X86::NoRegister, X86::NoRegister, 
03183                                        X86::NoRegister, X86::NoRegister, 
03184                                        X86::NoRegister, X86::NoRegister, 
03185                                        X86::NoRegister, X86::NoRegister, 
03186                                        X86::NoRegister, X86::NoRegister, 
03187                                        X86::NoRegister, X86::NoRegister, 
03188                                        X86::NoRegister, X86::NoRegister, 
03189                                        X86::NoRegister, X86::NoRegister, 
03190                                        X86::NoRegister, X86::NoRegister, 
03191                                        X86::NoRegister, X86::NoRegister, 
03192                                        X86::NoRegister, X86::NoRegister, 
03193                                        X86::NoRegister, X86::NoRegister, 
03194                                        X86::NoRegister, X86::NoRegister, 
03195                                        X86::NoRegister, X86::NoRegister, 
03196                                        X86::NoRegister, X86::NoRegister, 
03197                                        X86::NoRegister, X86::NoRegister, 
03198                                        X86::YMM1, X86::XMM1, 
03199                                        X86::NoRegister, X86::NoRegister, 
03200                                        X86::NoRegister, X86::NoRegister, 
03201                                        X86::NoRegister, X86::NoRegister, 
03202                                        X86::NoRegister, X86::NoRegister, 
03203                                        X86::NoRegister, X86::NoRegister, 
03204                                        X86::NoRegister, X86::NoRegister, 
03205                                        X86::NoRegister, X86::NoRegister, 
03206                                        X86::XMM7, X86::YMM7, 
03207                                        X86::NoRegister, X86::NoRegister, 
03208                                        X86::NoRegister, X86::NoRegister, 
03209                                        X86::NoRegister, X86::NoRegister, 
03210                                        X86::NoRegister, X86::NoRegister, 
03211                                        X86::NoRegister, X86::NoRegister, 
03212                                        X86::NoRegister, X86::NoRegister, 
03213                                        X86::R12, X86::R12W, 
03214                                        X86::R12B, X86::R12W, 
03215                                        X86::R12D, X86::R12W, 
03216                                        X86::NoRegister, X86::NoRegister, 
03217                                        X86::NoRegister, X86::NoRegister, 
03218                                        X86::NoRegister, X86::NoRegister, 
03219                                        X86::NoRegister, X86::NoRegister, 
03220                                        X86::NoRegister, X86::NoRegister, 
03221                                        X86::NoRegister, X86::NoRegister, 
03222                                        X86::NoRegister, X86::NoRegister, 
03223                                        X86::NoRegister, X86::NoRegister, 
03224                                        X86::NoRegister, X86::NoRegister, 
03225                                        X86::NoRegister, X86::NoRegister, 
03226                                        X86::NoRegister, X86::NoRegister, 
03227                                        X86::NoRegister, X86::NoRegister, 
03228                                        X86::NoRegister, X86::NoRegister, 
03229                                        X86::NoRegister, X86::NoRegister, 
03230                                        X86::NoRegister, X86::NoRegister, 
03231                                        X86::NoRegister, X86::NoRegister, 
03232                                        X86::NoRegister, X86::NoRegister, 
03233                                        X86::NoRegister, X86::NoRegister, 
03234                                        X86::NoRegister, X86::NoRegister, 
03235                                        X86::NoRegister, X86::NoRegister, 
03236                                        X86::YMM10, X86::XMM10, 
03237                                        X86::NoRegister, X86::NoRegister, 
03238                                        X86::NoRegister, X86::NoRegister, 
03239                                        X86::NoRegister, X86::NoRegister, 
03240                                        X86::NoRegister, X86::NoRegister, 
03241                                        X86::NoRegister, X86::NoRegister, 
03242                                        X86::NoRegister, X86::NoRegister, 
03243                                        X86::NoRegister, X86::NoRegister, 
03244                                        X86::XMM8, X86::YMM8, 
03245                                        X86::NoRegister, X86::NoRegister, 
03246                                        X86::NoRegister, X86::NoRegister, 
03247                                        X86::NoRegister, X86::NoRegister, 
03248                                        X86::NoRegister, X86::NoRegister, 
03249                                        X86::NoRegister, X86::NoRegister, 
03250                                        X86::NoRegister, X86::NoRegister, 
03251                                        X86::NoRegister, X86::NoRegister, 
03252                                        X86::NoRegister, X86::NoRegister, 
03253                                        X86::NoRegister, X86::NoRegister, 
03254                                        X86::NoRegister, X86::NoRegister, 
03255                                        X86::R13B, X86::R13, 
03256                                        X86::R13D, X86::R13, 
03257                                        X86::R13W, X86::R13, 
03258                                        X86::NoRegister, X86::NoRegister, 
03259                                        X86::NoRegister, X86::NoRegister, 
03260                                        X86::NoRegister, X86::NoRegister, 
03261                                        X86::NoRegister, X86::NoRegister, 
03262                                        X86::NoRegister, X86::NoRegister, 
03263                                        X86::NoRegister, X86::NoRegister, 
03264                                        X86::NoRegister, X86::NoRegister, 
03265                                        X86::NoRegister, X86::NoRegister, 
03266                                        X86::NoRegister, X86::NoRegister, 
03267                                        X86::NoRegister, X86::NoRegister, 
03268                                        X86::NoRegister, X86::NoRegister, 
03269                                        X86::NoRegister, X86::NoRegister, 
03270                                        X86::NoRegister, X86::NoRegister, 
03271                                        X86::NoRegister, X86::NoRegister, 
03272                                        X86::NoRegister, X86::NoRegister, 
03273                                        X86::NoRegister, X86::NoRegister, 
03274                                        X86::YMM11, X86::XMM11, 
03275                                        X86::NoRegister, X86::NoRegister, 
03276                                        X86::NoRegister, X86::NoRegister, 
03277                                        X86::NoRegister, X86::NoRegister, 
03278                                        X86::NoRegister, X86::NoRegister, 
03279                                        X86::NoRegister, X86::NoRegister, 
03280                                        X86::NoRegister, X86::NoRegister, 
03281                                        X86::NoRegister, X86::NoRegister, 
03282                                        X86::XMM9, X86::YMM9, 
03283                                        X86::NoRegister, X86::NoRegister, 
03284                                        X86::NoRegister, X86::NoRegister, 
03285                                        X86::NoRegister, X86::NoRegister, 
03286                                        X86::NoRegister, X86::NoRegister, 
03287                                        X86::NoRegister, X86::NoRegister, 
03288                                        X86::NoRegister, X86::NoRegister, 
03289                                        X86::NoRegister, X86::NoRegister, 
03290                                        X86::NoRegister, X86::NoRegister, 
03291                                        X86::R13, X86::R13B, 
03292                                        X86::NoRegister, X86::NoRegister, 
03293                                        X86::R13D, X86::R13B, 
03294                                        X86::R13W, X86::R13B, 
03295                                        X86::NoRegister, X86::NoRegister, 
03296                                        X86::NoRegister, X86::NoRegister, 
03297                                        X86::NoRegister, X86::NoRegister, 
03298                                        X86::NoRegister, X86::NoRegister, 
03299                                        X86::NoRegister, X86::NoRegister, 
03300                                        X86::NoRegister, X86::NoRegister, 
03301                                        X86::NoRegister, X86::NoRegister, 
03302                                        X86::NoRegister, X86::NoRegister, 
03303                                        X86::NoRegister, X86::NoRegister, 
03304                                        X86::NoRegister, X86::NoRegister, 
03305                                        X86::NoRegister, X86::NoRegister, 
03306                                        X86::NoRegister, X86::NoRegister, 
03307                                        X86::NoRegister, X86::NoRegister, 
03308                                        X86::NoRegister, X86::NoRegister, 
03309                                        X86::NoRegister, X86::NoRegister, 
03310                                        X86::NoRegister, X86::NoRegister, 
03311                                        X86::NoRegister, X86::NoRegister, 
03312                                        X86::YMM12, X86::XMM12, 
03313                                        X86::NoRegister, X86::NoRegister, 
03314                                        X86::NoRegister, X86::NoRegister, 
03315                                        X86::NoRegister, X86::NoRegister, 
03316                                        X86::NoRegister, X86::NoRegister, 
03317                                        X86::NoRegister, X86::NoRegister, 
03318                                        X86::NoRegister, X86::NoRegister, 
03319                                        X86::NoRegister, X86::NoRegister, 
03320                                        X86::NoRegister, X86::NoRegister, 
03321                                        X86::NoRegister, X86::NoRegister, 
03322                                        X86::NoRegister, X86::NoRegister, 
03323                                        X86::NoRegister, X86::NoRegister, 
03324                                        X86::NoRegister, X86::NoRegister, 
03325                                        X86::NoRegister, X86::NoRegister, 
03326                                        X86::NoRegister, X86::NoRegister, 
03327                                        X86::NoRegister, X86::NoRegister, 
03328                                        X86::R13, X86::R13D, 
03329                                        X86::R13B, X86::R13D, 
03330                                        X86::NoRegister, X86::NoRegister, 
03331                                        X86::R13W, X86::R13D, 
03332                                        X86::NoRegister, X86::NoRegister, 
03333                                        X86::NoRegister, X86::NoRegister, 
03334                                        X86::NoRegister, X86::NoRegister, 
03335                                        X86::NoRegister, X86::NoRegister, 
03336                                        X86::NoRegister, X86::NoRegister, 
03337                                        X86::NoRegister, X86::NoRegister, 
03338                                        X86::NoRegister, X86::NoRegister, 
03339                                        X86::NoRegister, X86::NoRegister, 
03340                                        X86::NoRegister, X86::NoRegister, 
03341                                        X86::NoRegister, X86::NoRegister, 
03342                                        X86::NoRegister, X86::NoRegister, 
03343                                        X86::NoRegister, X86::NoRegister, 
03344                                        X86::NoRegister, X86::NoRegister, 
03345                                        X86::NoRegister, X86::NoRegister, 
03346                                        X86::NoRegister, X86::NoRegister, 
03347                                        X86::CH, X86::RCX, 
03348                                        X86::CL, X86::RCX, 
03349                                        X86::NoRegister, X86::NoRegister, 
03350                                        X86::CX, X86::RCX, 
03351                                        X86::NoRegister, X86::NoRegister, 
03352                                        X86::YMM13, X86::XMM13, 
03353                                        X86::NoRegister, X86::NoRegister, 
03354                                        X86::NoRegister, X86::NoRegister, 
03355                                        X86::NoRegister, X86::NoRegister, 
03356                                        X86::NoRegister, X86::NoRegister, 
03357                                        X86::NoRegister, X86::NoRegister, 
03358                                        X86::NoRegister, X86::NoRegister, 
03359                                        X86::NoRegister, X86::NoRegister, 
03360                                        X86::NoRegister, X86::NoRegister, 
03361                                        X86::NoRegister, X86::NoRegister, 
03362                                        X86::NoRegister, X86::NoRegister, 
03363                                        X86::NoRegister, X86::NoRegister, 
03364                                        X86::NoRegister, X86::NoRegister, 
03365                                        X86::R13, X86::R13W, 
03366                                        X86::R13B, X86::R13W, 
03367                                        X86::R13D, X86::R13W, 
03368                                        X86::NoRegister, X86::NoRegister, 
03369                                        X86::NoRegister, X86::NoRegister, 
03370                                        X86::NoRegister, X86::NoRegister, 
03371                                        X86::NoRegister, X86::NoRegister, 
03372                                        X86::NoRegister, X86::NoRegister, 
03373                                        X86::NoRegister, X86::NoRegister, 
03374                                        X86::NoRegister, X86::NoRegister, 
03375                                        X86::NoRegister, X86::NoRegister, 
03376                                        X86::ECX, X86::RCX, 
03377                                        X86::NoRegister, X86::NoRegister, 
03378                                        X86::NoRegister, X86::NoRegister, 
03379                                        X86::NoRegister, X86::NoRegister, 
03380                                        X86::NoRegister, X86::NoRegister, 
03381                                        X86::NoRegister, X86::NoRegister, 
03382                                        X86::NoRegister, X86::NoRegister, 
03383                                        X86::NoRegister, X86::NoRegister, 
03384                                        X86::NoRegister, X86::NoRegister, 
03385                                        X86::NoRegister, X86::NoRegister, 
03386                                        X86::NoRegister, X86::NoRegister, 
03387                                        X86::NoRegister, X86::NoRegister, 
03388                                        X86::YMM14, X86::XMM14, 
03389                                        X86::DH, X86::DX, 
03390                                        X86::DIL, X86::RDI, 
03391                                        X86::DI, X86::RDI, 
03392                                        X86::DL, X86::DX, 
03393                                        X86::NoRegister, X86::NoRegister, 
03394                                        X86::NoRegister, X86::NoRegister, 
03395                                        X86::NoRegister, X86::NoRegister, 
03396                                        X86::NoRegister, X86::NoRegister, 
03397                                        X86::NoRegister, X86::NoRegister, 
03398                                        X86::NoRegister, X86::NoRegister, 
03399                                        X86::NoRegister, X86::NoRegister, 
03400                                        X86::NoRegister, X86::NoRegister, 
03401                                        X86::NoRegister, X86::NoRegister, 
03402                                        X86::NoRegister, X86::NoRegister, 
03403                                        X86::NoRegister, X86::NoRegister, 
03404                                        X86::NoRegister, X86::NoRegister, 
03405                                        X86::NoRegister, X86::NoRegister, 
03406                                        X86::NoRegister, X86::NoRegister, 
03407                                        X86::R14B, X86::R14, 
03408                                        X86::R14D, X86::R14, 
03409                                        X86::R14W, X86::R14, 
03410                                        X86::NoRegister, X86::NoRegister, 
03411                                        X86::NoRegister, X86::NoRegister, 
03412                                        X86::NoRegister, X86::NoRegister, 
03413                                        X86::NoRegister, X86::NoRegister, 
03414                                        X86::AH, X86::EAX, 
03415                                        X86::AL, X86::EAX, 
03416                                        X86::AX, X86::EAX, 
03417                                        X86::NoRegister, X86::NoRegister, 
03418                                        X86::EDX, X86::DX, 
03419                                        X86::NoRegister, X86::NoRegister, 
03420                                        X86::EDI, X86::RDI, 
03421                                        X86::NoRegister, X86::NoRegister, 
03422                                        X86::NoRegister, X86::NoRegister, 
03423                                        X86::NoRegister, X86::NoRegister, 
03424                                        X86::NoRegister, X86::NoRegister, 
03425                                        X86::DH, X86::RDX, 
03426                                        X86::YMM15, X86::XMM15, 
03427                                        X86::NoRegister, X86::NoRegister, 
03428                                        X86::DL, X86::RDX, 
03429                                        X86::NoRegister, X86::NoRegister, 
03430                                        X86::NoRegister, X86::NoRegister, 
03431                                        X86::NoRegister, X86::NoRegister, 
03432                                        X86::NoRegister, X86::NoRegister, 
03433                                        X86::NoRegister, X86::NoRegister, 
03434                                        X86::NoRegister, X86::NoRegister, 
03435                                        X86::NoRegister, X86::NoRegister, 
03436                                        X86::NoRegister, X86::NoRegister, 
03437 X86::NoRegister, X86::NoRegister };
03438   const unsigned AliasesHashTableSize = 1024;
03439 
03440 
03441   // Register Alias Sets...
03442   const unsigned Empty_AliasSet[] = { 0 };
03443   const unsigned AH_AliasSet[] = { X86::AX, X86::EAX, X86::RAX, 0 };
03444   const unsigned AL_AliasSet[] = { X86::AX, X86::EAX, X86::RAX, 0 };
03445   const unsigned AX_AliasSet[] = { X86::AL, X86::AH, X86::EAX, X86::RAX, 0 };
03446   const unsigned BH_AliasSet[] = { X86::BX, X86::EBX, X86::RBX, 0 };
03447   const unsigned BL_AliasSet[] = { X86::BX, X86::EBX, X86::RBX, 0 };
03448   const unsigned BP_AliasSet[] = { X86::BPL, X86::EBP, X86::RBP, 0 };
03449   const unsigned BPL_AliasSet[] = { X86::BP, X86::EBP, X86::RBP, 0 };
03450   const unsigned BX_AliasSet[] = { X86::BL, X86::BH, X86::EBX, X86::RBX, 0 };
03451   const unsigned CH_AliasSet[] = { X86::CX, X86::ECX, X86::RCX, 0 };
03452   const unsigned CL_AliasSet[] = { X86::CX, X86::ECX, X86::RCX, 0 };
03453   const unsigned CS_AliasSet[] = { 0 };
03454   const unsigned CX_AliasSet[] = { X86::CL, X86::CH, X86::ECX, X86::RCX, 0 };
03455   const unsigned DH_AliasSet[] = { X86::DX, X86::EDX, X86::RDX, 0 };
03456   const unsigned DI_AliasSet[] = { X86::DIL, X86::EDI, X86::RDI, 0 };
03457   const unsigned DIL_AliasSet[] = { X86::DI, X86::EDI, X86::RDI, 0 };
03458   const unsigned DL_AliasSet[] = { X86::DX, X86::EDX, X86::RDX, 0 };
03459   const unsigned DR0_AliasSet[] = { 0 };
03460   const unsigned DR1_AliasSet[] = { 0 };
03461   const unsigned DR2_AliasSet[] = { 0 };
03462   const unsigned DR3_AliasSet[] = { 0 };
03463   const unsigned DR4_AliasSet[] = { 0 };
03464   const unsigned DR5_AliasSet[] = { 0 };
03465   const unsigned DR6_AliasSet[] = { 0 };
03466   const unsigned DR7_AliasSet[] = { 0 };
03467   const unsigned DS_AliasSet[] = { 0 };
03468   const unsigned DX_AliasSet[] = { X86::DL, X86::DH, X86::EDX, X86::RDX, 0 };
03469   const unsigned EAX_AliasSet[] = { X86::AL, X86::AH, X86::AX, X86::RAX, 0 };
03470   const unsigned EBP_AliasSet[] = { X86::BPL, X86::BP, X86::RBP, 0 };
03471   const unsigned EBX_AliasSet[] = { X86::BL, X86::BH, X86::BX, X86::RBX, 0 };
03472   const unsigned ECR0_AliasSet[] = { 0 };
03473   const unsigned ECR1_AliasSet[] = { 0 };
03474   const unsigned ECR2_AliasSet[] = { 0 };
03475   const unsigned ECR3_AliasSet[] = { 0 };
03476   const unsigned ECR4_AliasSet[] = { 0 };
03477   const unsigned ECR5_AliasSet[] = { 0 };
03478   const unsigned ECR6_AliasSet[] = { 0 };
03479   const unsigned ECR7_AliasSet[] = { 0 };
03480   const unsigned ECX_AliasSet[] = { X86::CL, X86::CH, X86::CX, X86::RCX, 0 };
03481   const unsigned EDI_AliasSet[] = { X86::DIL, X86::DI, X86::RDI, 0 };
03482   const unsigned EDX_AliasSet[] = { X86::DL, X86::DH, X86::DX, X86::RDX, 0 };
03483   const unsigned EFLAGS_AliasSet[] = { 0 };
03484   const unsigned EIP_AliasSet[] = { X86::IP, X86::RIP, 0 };
03485   const unsigned ES_AliasSet[] = { 0 };
03486   const unsigned ESI_AliasSet[] = { X86::SIL, X86::SI, X86::RSI, 0 };
03487   const unsigned ESP_AliasSet[] = { X86::SPL, X86::SP, X86::RSP, 0 };
03488   const unsigned FP0_AliasSet[] = { 0 };
03489   const unsigned FP1_AliasSet[] = { 0 };
03490   const unsigned FP2_AliasSet[] = { 0 };
03491   const unsigned FP3_AliasSet[] = { 0 };
03492   const unsigned FP4_AliasSet[] = { 0 };
03493   const unsigned FP5_AliasSet[] = { 0 };
03494   const unsigned FP6_AliasSet[] = { 0 };
03495   const unsigned FS_AliasSet[] = { 0 };
03496   const unsigned GS_AliasSet[] = { 0 };
03497   const unsigned IP_AliasSet[] = { X86::EIP, X86::RIP, 0 };
03498   const unsigned MM0_AliasSet[] = { 0 };
03499   const unsigned MM1_AliasSet[] = { 0 };
03500   const unsigned MM2_AliasSet[] = { 0 };
03501   const unsigned MM3_AliasSet[] = { 0 };
03502   const unsigned MM4_AliasSet[] = { 0 };
03503   const unsigned MM5_AliasSet[] = { 0 };
03504   const unsigned MM6_AliasSet[] = { 0 };
03505   const unsigned MM7_AliasSet[] = { 0 };
03506   const unsigned R10_AliasSet[] = { X86::R10B, X86::R10W, X86::R10D, 0 };
03507   const unsigned R10B_AliasSet[] = { X86::R10W, X86::R10D, X86::R10, 0 };
03508   const unsigned R10D_AliasSet[] = { X86::R10B, X86::R10W, X86::R10, 0 };
03509   const unsigned R10W_AliasSet[] = { X86::R10B, X86::R10D, X86::R10, 0 };
03510   const unsigned R11_AliasSet[] = { X86::R11D, X86::R11B, X86::R11W, 0 };
03511   const unsigned R11B_AliasSet[] = { X86::R11D, X86::R11W, X86::R11, 0 };
03512   const unsigned R11D_AliasSet[] = { X86::R11B, X86::R11W, X86::R11, 0 };
03513   const unsigned R11W_AliasSet[] = { X86::R11D, X86::R11B, X86::R11, 0 };
03514   const unsigned R12_AliasSet[] = { X86::R12B, X86::R12W, X86::R12D, 0 };
03515   const unsigned R12B_AliasSet[] = { X86::R12W, X86::R12D, X86::R12, 0 };
03516   const unsigned R12D_AliasSet[] = { X86::R12B, X86::R12W, X86::R12, 0 };
03517   const unsigned R12W_AliasSet[] = { X86::R12B, X86::R12D, X86::R12, 0 };
03518   const unsigned R13_AliasSet[] = { X86::R13B, X86::R13W, X86::R13D, 0 };
03519   const unsigned R13B_AliasSet[] = { X86::R13W, X86::R13D, X86::R13, 0 };
03520   const unsigned R13D_AliasSet[] = { X86::R13B, X86::R13W, X86::R13, 0 };
03521   const unsigned R13W_AliasSet[] = { X86::R13B, X86::R13D, X86::R13, 0 };
03522   const unsigned R14_AliasSet[] = { X86::R14B, X86::R14W, X86::R14D, 0 };
03523   const unsigned R14B_AliasSet[] = { X86::R14W, X86::R14D, X86::R14, 0 };
03524   const unsigned R14D_AliasSet[] = { X86::R14B, X86::R14W, X86::R14, 0 };
03525   const unsigned R14W_AliasSet[] = { X86::R14B, X86::R14D, X86::R14, 0 };
03526   const unsigned R15_AliasSet[] = { X86::R15B, X86::R15W, X86::R15D, 0 };
03527   const unsigned R15B_AliasSet[] = { X86::R15W, X86::R15D, X86::R15, 0 };
03528   const unsigned R15D_AliasSet[] = { X86::R15B, X86::R15W, X86::R15, 0 };
03529   const unsigned R15W_AliasSet[] = { X86::R15B, X86::R15D, X86::R15, 0 };
03530   const unsigned R8_AliasSet[] = { X86::R8B, X86::R8W, X86::R8D, 0 };
03531   const unsigned R8B_AliasSet[] = { X86::R8W, X86::R8D, X86::R8, 0 };
03532   const unsigned R8D_AliasSet[] = { X86::R8B, X86::R8W, X86::R8, 0 };
03533   const unsigned R8W_AliasSet[] = { X86::R8B, X86::R8D, X86::R8, 0 };
03534   const unsigned R9_AliasSet[] = { X86::R9B, X86::R9W, X86::R9D, 0 };
03535   const unsigned R9B_AliasSet[] = { X86::R9W, X86::R9D, X86::R9, 0 };
03536   const unsigned R9D_AliasSet[] = { X86::R9B, X86::R9W, X86::R9, 0 };
03537   const unsigned R9W_AliasSet[] = { X86::R9B, X86::R9D, X86::R9, 0 };
03538   const unsigned RAX_AliasSet[] = { X86::AL, X86::AH, X86::AX, X86::EAX, 0 };
03539   const unsigned RBP_AliasSet[] = { X86::BPL, X86::BP, X86::EBP, 0 };
03540   const unsigned RBX_AliasSet[] = { X86::BL, X86::BH, X86::BX, X86::EBX, 0 };
03541   const unsigned RCR0_AliasSet[] = { 0 };
03542   const unsigned RCR1_AliasSet[] = { 0 };
03543   const unsigned RCR2_AliasSet[] = { 0 };
03544   const unsigned RCR3_AliasSet[] = { 0 };
03545   const unsigned RCR4_AliasSet[] = { 0 };
03546   const unsigned RCR5_AliasSet[] = { 0 };
03547   const unsigned RCR6_AliasSet[] = { 0 };
03548   const unsigned RCR7_AliasSet[] = { 0 };
03549   const unsigned RCR8_AliasSet[] = { 0 };
03550   const unsigned RCX_AliasSet[] = { X86::CL, X86::CH, X86::CX, X86::ECX, 0 };
03551   const unsigned RDI_AliasSet[] = { X86::DIL, X86::DI, X86::EDI, 0 };
03552   const unsigned RDX_AliasSet[] = { X86::DL, X86::DH, X86::DX, X86::EDX, 0 };
03553   const unsigned RIP_AliasSet[] = { X86::IP, X86::EIP, 0 };
03554   const unsigned RSI_AliasSet[] = { X86::SIL, X86::SI, X86::ESI, 0 };
03555   const unsigned RSP_AliasSet[] = { X86::SPL, X86::SP, X86::ESP, 0 };
03556   const unsigned SI_AliasSet[] = { X86::SIL, X86::ESI, X86::RSI, 0 };
03557   const unsigned SIL_AliasSet[] = { X86::SI, X86::ESI, X86::RSI, 0 };
03558   const unsigned SP_AliasSet[] = { X86::SPL, X86::ESP, X86::RSP, 0 };
03559   const unsigned SPL_AliasSet[] = { X86::SP, X86::ESP, X86::RSP, 0 };
03560   const unsigned SS_AliasSet[] = { 0 };
03561   const unsigned ST0_AliasSet[] = { 0 };
03562   const unsigned ST1_AliasSet[] = { 0 };
03563   const unsigned ST2_AliasSet[] = { 0 };
03564   const unsigned ST3_AliasSet[] = { 0 };
03565   const unsigned ST4_AliasSet[] = { 0 };
03566   const unsigned ST5_AliasSet[] = { 0 };
03567   const unsigned ST6_AliasSet[] = { 0 };
03568   const unsigned ST7_AliasSet[] = { 0 };
03569   const unsigned XMM0_AliasSet[] = { X86::YMM0, 0 };
03570   const unsigned XMM1_AliasSet[] = { X86::YMM1, 0 };
03571   const unsigned XMM10_AliasSet[] = { X86::YMM10, 0 };
03572   const unsigned XMM11_AliasSet[] = { X86::YMM11, 0 };
03573   const unsigned XMM12_AliasSet[] = { X86::YMM12, 0 };
03574   const unsigned XMM13_AliasSet[] = { X86::YMM13, 0 };
03575   const unsigned XMM14_AliasSet[] = { X86::YMM14, 0 };
03576   const unsigned XMM15_AliasSet[] = { X86::YMM15, 0 };
03577   const unsigned XMM2_AliasSet[] = { X86::YMM2, 0 };
03578   const unsigned XMM3_AliasSet[] = { X86::YMM3, 0 };
03579   const unsigned XMM4_AliasSet[] = { X86::YMM4, 0 };
03580   const unsigned XMM5_AliasSet[] = { X86::YMM5, 0 };
03581   const unsigned XMM6_AliasSet[] = { X86::YMM6, 0 };
03582   const unsigned XMM7_AliasSet[] = { X86::YMM7, 0 };
03583   const unsigned XMM8_AliasSet[] = { X86::YMM8, 0 };
03584   const unsigned XMM9_AliasSet[] = { X86::YMM9, 0 };
03585   const unsigned YMM0_AliasSet[] = { X86::XMM0, 0 };
03586   const unsigned YMM1_AliasSet[] = { X86::XMM1, 0 };
03587   const unsigned YMM10_AliasSet[] = { X86::XMM10, 0 };
03588   const unsigned YMM11_AliasSet[] = { X86::XMM11, 0 };
03589   const unsigned YMM12_AliasSet[] = { X86::XMM12, 0 };
03590   const unsigned YMM13_AliasSet[] = { X86::XMM13, 0 };
03591   const unsigned YMM14_AliasSet[] = { X86::XMM14, 0 };
03592   const unsigned YMM15_AliasSet[] = { X86::XMM15, 0 };
03593   const unsigned YMM2_AliasSet[] = { X86::XMM2, 0 };
03594   const unsigned YMM3_AliasSet[] = { X86::XMM3, 0 };
03595   const unsigned YMM4_AliasSet[] = { X86::XMM4, 0 };
03596   const unsigned YMM5_AliasSet[] = { X86::XMM5, 0 };
03597   const unsigned YMM6_AliasSet[] = { X86::XMM6, 0 };
03598   const unsigned YMM7_AliasSet[] = { X86::XMM7, 0 };
03599   const unsigned YMM8_AliasSet[] = { X86::XMM8, 0 };
03600   const unsigned YMM9_AliasSet[] = { X86::XMM9, 0 };
03601 
03602 
03603   // Register Sub-registers Sets...
03604   const unsigned Empty_SubRegsSet[] = { 0 };
03605   const unsigned AH_SubRegsSet[] = { 0 };
03606   const unsigned AL_SubRegsSet[] = { 0 };
03607   const unsigned AX_SubRegsSet[] = { X86::AL, X86::AH, 0 };
03608   const unsigned BH_SubRegsSet[] = { 0 };
03609   const unsigned BL_SubRegsSet[] = { 0 };
03610   const unsigned BP_SubRegsSet[] = { X86::BPL, 0 };
03611   const unsigned BPL_SubRegsSet[] = { 0 };
03612   const unsigned BX_SubRegsSet[] = { X86::BL, X86::BH, 0 };
03613   const unsigned CH_SubRegsSet[] = { 0 };
03614   const unsigned CL_SubRegsSet[] = { 0 };
03615   const unsigned CS_SubRegsSet[] = { 0 };
03616   const unsigned CX_SubRegsSet[] = { X86::CL, X86::CH, 0 };
03617   const unsigned DH_SubRegsSet[] = { 0 };
03618   const unsigned DI_SubRegsSet[] = { X86::DIL, 0 };
03619   const unsigned DIL_SubRegsSet[] = { 0 };
03620   const unsigned DL_SubRegsSet[] = { 0 };
03621   const unsigned DR0_SubRegsSet[] = { 0 };
03622   const unsigned DR1_SubRegsSet[] = { 0 };
03623   const unsigned DR2_SubRegsSet[] = { 0 };
03624   const unsigned DR3_SubRegsSet[] = { 0 };
03625   const unsigned DR4_SubRegsSet[] = { 0 };
03626   const unsigned DR5_SubRegsSet[] = { 0 };
03627   const unsigned DR6_SubRegsSet[] = { 0 };
03628   const unsigned DR7_SubRegsSet[] = { 0 };
03629   const unsigned DS_SubRegsSet[] = { 0 };
03630   const unsigned DX_SubRegsSet[] = { X86::DL, X86::DH, 0 };
03631   const unsigned EAX_SubRegsSet[] = { X86::AX, X86::AL, X86::AH, 0 };
03632   const unsigned EBP_SubRegsSet[] = { X86::BP, X86::BPL, 0 };
03633   const unsigned EBX_SubRegsSet[] = { X86::BX, X86::BL, X86::BH, 0 };
03634   const unsigned ECR0_SubRegsSet[] = { 0 };
03635   const unsigned ECR1_SubRegsSet[] = { 0 };
03636   const unsigned ECR2_SubRegsSet[] = { 0 };
03637   const unsigned ECR3_SubRegsSet[] = { 0 };
03638   const unsigned ECR4_SubRegsSet[] = { 0 };
03639   const unsigned ECR5_SubRegsSet[] = { 0 };
03640   const unsigned ECR6_SubRegsSet[] = { 0 };
03641   const unsigned ECR7_SubRegsSet[] = { 0 };
03642   const unsigned ECX_SubRegsSet[] = { X86::CX, X86::CL, X86::CH, 0 };
03643   const unsigned EDI_SubRegsSet[] = { X86::DI, X86::DIL, 0 };
03644   const unsigned EDX_SubRegsSet[] = { X86::DX, X86::DL, X86::DH, 0 };
03645   const unsigned EFLAGS_SubRegsSet[] = { 0 };
03646   const unsigned EIP_SubRegsSet[] = { X86::IP, 0 };
03647   const unsigned ES_SubRegsSet[] = { 0 };
03648   const unsigned ESI_SubRegsSet[] = { X86::SI, X86::SIL, 0 };
03649   const unsigned ESP_SubRegsSet[] = { X86::SP, X86::SPL, 0 };
03650   const unsigned FP0_SubRegsSet[] = { 0 };
03651   const unsigned FP1_SubRegsSet[] = { 0 };
03652   const unsigned FP2_SubRegsSet[] = { 0 };
03653   const unsigned FP3_SubRegsSet[] = { 0 };
03654   const unsigned FP4_SubRegsSet[] = { 0 };
03655   const unsigned FP5_SubRegsSet[] = { 0 };
03656   const unsigned FP6_SubRegsSet[] = { 0 };
03657   const unsigned FS_SubRegsSet[] = { 0 };
03658   const unsigned GS_SubRegsSet[] = { 0 };
03659   const unsigned IP_SubRegsSet[] = { 0 };
03660   const unsigned MM0_SubRegsSet[] = { 0 };
03661   const unsigned MM1_SubRegsSet[] = { 0 };
03662   const unsigned MM2_SubRegsSet[] = { 0 };
03663   const unsigned MM3_SubRegsSet[] = { 0 };
03664   const unsigned MM4_SubRegsSet[] = { 0 };
03665   const unsigned MM5_SubRegsSet[] = { 0 };
03666   const unsigned MM6_SubRegsSet[] = { 0 };
03667   const unsigned MM7_SubRegsSet[] = { 0 };
03668   const unsigned R10_SubRegsSet[] = { X86::R10D, X86::R10W, X86::R10B, 0 };
03669   const unsigned R10B_SubRegsSet[] = { 0 };
03670   const unsigned R10D_SubRegsSet[] = { X86::R10W, X86::R10B, 0 };
03671   const unsigned R10W_SubRegsSet[] = { X86::R10B, 0 };
03672   const unsigned R11_SubRegsSet[] = { X86::R11D, X86::R11W, X86::R11B, 0 };
03673   const unsigned R11B_SubRegsSet[] = { 0 };
03674   const unsigned R11D_SubRegsSet[] = { X86::R11W, X86::R11B, 0 };
03675   const unsigned R11W_SubRegsSet[] = { X86::R11B, 0 };
03676   const unsigned R12_SubRegsSet[] = { X86::R12D, X86::R12W, X86::R12B, 0 };
03677   const unsigned R12B_SubRegsSet[] = { 0 };
03678   const unsigned R12D_SubRegsSet[] = { X86::R12W, X86::R12B, 0 };
03679   const unsigned R12W_SubRegsSet[] = { X86::R12B, 0 };
03680   const unsigned R13_SubRegsSet[] = { X86::R13D, X86::R13W, X86::R13B, 0 };
03681   const unsigned R13B_SubRegsSet[] = { 0 };
03682   const unsigned R13D_SubRegsSet[] = { X86::R13W, X86::R13B, 0 };
03683   const unsigned R13W_SubRegsSet[] = { X86::R13B, 0 };
03684   const unsigned R14_SubRegsSet[] = { X86::R14D, X86::R14W, X86::R14B, 0 };
03685   const unsigned R14B_SubRegsSet[] = { 0 };
03686   const unsigned R14D_SubRegsSet[] = { X86::R14W, X86::R14B, 0 };
03687   const unsigned R14W_SubRegsSet[] = { X86::R14B, 0 };
03688   const unsigned R15_SubRegsSet[] = { X86::R15D, X86::R15W, X86::R15B, 0 };
03689   const unsigned R15B_SubRegsSet[] = { 0 };
03690   const unsigned R15D_SubRegsSet[] = { X86::R15W, X86::R15B, 0 };
03691   const unsigned R15W_SubRegsSet[] = { X86::R15B, 0 };
03692   const unsigned R8_SubRegsSet[] = { X86::R8D, X86::R8W, X86::R8B, 0 };
03693   const unsigned R8B_SubRegsSet[] = { 0 };
03694   const unsigned R8D_SubRegsSet[] = { X86::R8W, X86::R8B, 0 };
03695   const unsigned R8W_SubRegsSet[] = { X86::R8B, 0 };
03696   const unsigned R9_SubRegsSet[] = { X86::R9D, X86::R9W, X86::R9B, 0 };
03697   const unsigned R9B_SubRegsSet[] = { 0 };
03698   const unsigned R9D_SubRegsSet[] = { X86::R9W, X86::R9B, 0 };
03699   const unsigned R9W_SubRegsSet[] = { X86::R9B, 0 };
03700   const unsigned RAX_SubRegsSet[] = { X86::EAX, X86::AX, X86::AL, X86::AH, 0 };
03701   const unsigned RBP_SubRegsSet[] = { X86::EBP, X86::BP, X86::BPL, 0 };
03702   const unsigned RBX_SubRegsSet[] = { X86::EBX, X86::BX, X86::BL, X86::BH, 0 };
03703   const unsigned RCR0_SubRegsSet[] = { 0 };
03704   const unsigned RCR1_SubRegsSet[] = { 0 };
03705   const unsigned RCR2_SubRegsSet[] = { 0 };
03706   const unsigned RCR3_SubRegsSet[] = { 0 };
03707   const unsigned RCR4_SubRegsSet[] = { 0 };
03708   const unsigned RCR5_SubRegsSet[] = { 0 };
03709   const unsigned RCR6_SubRegsSet[] = { 0 };
03710   const unsigned RCR7_SubRegsSet[] = { 0 };
03711   const unsigned RCR8_SubRegsSet[] = { 0 };
03712   const unsigned RCX_SubRegsSet[] = { X86::ECX, X86::CX, X86::CL, X86::CH, 0 };
03713   const unsigned RDI_SubRegsSet[] = { X86::EDI, X86::DI, X86::DIL, 0 };
03714   const unsigned RDX_SubRegsSet[] = { X86::EDX, X86::DX, X86::DL, X86::DH, 0 };
03715   const unsigned RIP_SubRegsSet[] = { X86::EIP, X86::IP, 0 };
03716   const unsigned RSI_SubRegsSet[] = { X86::ESI, X86::SI, X86::SIL, 0 };
03717   const unsigned RSP_SubRegsSet[] = { X86::ESP, X86::SP, X86::SPL, 0 };
03718   const unsigned SI_SubRegsSet[] = { X86::SIL, 0 };
03719   const unsigned SIL_SubRegsSet[] = { 0 };
03720   const unsigned SP_SubRegsSet[] = { X86::SPL, 0 };
03721   const unsigned SPL_SubRegsSet[] = { 0 };
03722   const unsigned SS_SubRegsSet[] = { 0 };
03723   const unsigned ST0_SubRegsSet[] = { 0 };
03724   const unsigned ST1_SubRegsSet[] = { 0 };
03725   const unsigned ST2_SubRegsSet[] = { 0 };
03726   const unsigned ST3_SubRegsSet[] = { 0 };
03727   const unsigned ST4_SubRegsSet[] = { 0 };
03728   const unsigned ST5_SubRegsSet[] = { 0 };
03729   const unsigned ST6_SubRegsSet[] = { 0 };
03730   const unsigned ST7_SubRegsSet[] = { 0 };
03731   const unsigned XMM0_SubRegsSet[] = { 0 };
03732   const unsigned XMM1_SubRegsSet[] = { 0 };
03733   const unsigned XMM10_SubRegsSet[] = { 0 };
03734   const unsigned XMM11_SubRegsSet[] = { 0 };
03735   const unsigned XMM12_SubRegsSet[] = { 0 };
03736   const unsigned XMM13_SubRegsSet[] = { 0 };
03737   const unsigned XMM14_SubRegsSet[] = { 0 };
03738   const unsigned XMM15_SubRegsSet[] = { 0 };
03739   const unsigned XMM2_SubRegsSet[] = { 0 };
03740   const unsigned XMM3_SubRegsSet[] = { 0 };
03741   const unsigned XMM4_SubRegsSet[] = { 0 };
03742   const unsigned XMM5_SubRegsSet[] = { 0 };
03743   const unsigned XMM6_SubRegsSet[] = { 0 };
03744   const unsigned XMM7_SubRegsSet[] = { 0 };
03745   const unsigned XMM8_SubRegsSet[] = { 0 };
03746   const unsigned XMM9_SubRegsSet[] = { 0 };
03747   const unsigned YMM0_SubRegsSet[] = { X86::XMM0, 0 };
03748   const unsigned YMM1_SubRegsSet[] = { X86::XMM1, 0 };
03749   const unsigned YMM10_SubRegsSet[] = { X86::XMM10, 0 };
03750   const unsigned YMM11_SubRegsSet[] = { X86::XMM11, 0 };
03751   const unsigned YMM12_SubRegsSet[] = { X86::XMM12, 0 };
03752   const unsigned YMM13_SubRegsSet[] = { X86::XMM13, 0 };
03753   const unsigned YMM14_SubRegsSet[] = { X86::XMM14, 0 };
03754   const unsigned YMM15_SubRegsSet[] = { X86::XMM15, 0 };
03755   const unsigned YMM2_SubRegsSet[] = { X86::XMM2, 0 };
03756   const unsigned YMM3_SubRegsSet[] = { X86::XMM3, 0 };
03757   const unsigned YMM4_SubRegsSet[] = { X86::XMM4, 0 };
03758   const unsigned YMM5_SubRegsSet[] = { X86::XMM5, 0 };
03759   const unsigned YMM6_SubRegsSet[] = { X86::XMM6, 0 };
03760   const unsigned YMM7_SubRegsSet[] = { X86::XMM7, 0 };
03761   const unsigned YMM8_SubRegsSet[] = { X86::XMM8, 0 };
03762   const unsigned YMM9_SubRegsSet[] = { X86::XMM9, 0 };
03763 
03764 
03765   // Register Super-registers Sets...
03766   const unsigned Empty_SuperRegsSet[] = { 0 };
03767   const unsigned AH_SuperRegsSet[] = { X86::RAX, X86::EAX, X86::AX, 0 };
03768   const unsigned AL_SuperRegsSet[] = { X86::RAX, X86::EAX, X86::AX, 0 };
03769   const unsigned AX_SuperRegsSet[] = { X86::RAX, X86::EAX, 0 };
03770   const unsigned BH_SuperRegsSet[] = { X86::RBX, X86::EBX, X86::BX, 0 };
03771   const unsigned BL_SuperRegsSet[] = { X86::RBX, X86::EBX, X86::BX, 0 };
03772   const unsigned BP_SuperRegsSet[] = { X86::RBP, X86::EBP, 0 };
03773   const unsigned BPL_SuperRegsSet[] = { X86::RBP, X86::EBP, X86::BP, 0 };
03774   const unsigned BX_SuperRegsSet[] = { X86::RBX, X86::EBX, 0 };
03775   const unsigned CH_SuperRegsSet[] = { X86::RCX, X86::ECX, X86::CX, 0 };
03776   const unsigned CL_SuperRegsSet[] = { X86::RCX, X86::ECX, X86::CX, 0 };
03777   const unsigned CS_SuperRegsSet[] = { 0 };
03778   const unsigned CX_SuperRegsSet[] = { X86::RCX, X86::ECX, 0 };
03779   const unsigned DH_SuperRegsSet[] = { X86::RDX, X86::EDX, X86::DX, 0 };
03780   const unsigned DI_SuperRegsSet[] = { X86::RDI, X86::EDI, 0 };
03781   const unsigned DIL_SuperRegsSet[] = { X86::RDI, X86::EDI, X86::DI, 0 };
03782   const unsigned DL_SuperRegsSet[] = { X86::RDX, X86::EDX, X86::DX, 0 };
03783   const unsigned DR0_SuperRegsSet[] = { 0 };
03784   const unsigned DR1_SuperRegsSet[] = { 0 };
03785   const unsigned DR2_SuperRegsSet[] = { 0 };
03786   const unsigned DR3_SuperRegsSet[] = { 0 };
03787   const unsigned DR4_SuperRegsSet[] = { 0 };
03788   const unsigned DR5_SuperRegsSet[] = { 0 };
03789   const unsigned DR6_SuperRegsSet[] = { 0 };
03790   const unsigned DR7_SuperRegsSet[] = { 0 };
03791   const unsigned DS_SuperRegsSet[] = { 0 };
03792   const unsigned DX_SuperRegsSet[] = { X86::RDX, X86::EDX, 0 };
03793   const unsigned EAX_SuperRegsSet[] = { X86::RAX, 0 };
03794   const unsigned EBP_SuperRegsSet[] = { X86::RBP, 0 };
03795   const unsigned EBX_SuperRegsSet[] = { X86::RBX, 0 };
03796   const unsigned ECR0_SuperRegsSet[] = { 0 };
03797   const unsigned ECR1_SuperRegsSet[] = { 0 };
03798   const unsigned ECR2_SuperRegsSet[] = { 0 };
03799   const unsigned ECR3_SuperRegsSet[] = { 0 };
03800   const unsigned ECR4_SuperRegsSet[] = { 0 };
03801   const unsigned ECR5_SuperRegsSet[] = { 0 };
03802   const unsigned ECR6_SuperRegsSet[] = { 0 };
03803   const unsigned ECR7_SuperRegsSet[] = { 0 };
03804   const unsigned ECX_SuperRegsSet[] = { X86::RCX, 0 };
03805   const unsigned EDI_SuperRegsSet[] = { X86::RDI, 0 };
03806   const unsigned EDX_SuperRegsSet[] = { X86::RDX, 0 };
03807   const unsigned EFLAGS_SuperRegsSet[] = { 0 };
03808   const unsigned EIP_SuperRegsSet[] = { X86::RIP, 0 };
03809   const unsigned ES_SuperRegsSet[] = { 0 };
03810   const unsigned ESI_SuperRegsSet[] = { X86::RSI, 0 };
03811   const unsigned ESP_SuperRegsSet[] = { X86::RSP, 0 };
03812   const unsigned FP0_SuperRegsSet[] = { 0 };
03813   const unsigned FP1_SuperRegsSet[] = { 0 };
03814   const unsigned FP2_SuperRegsSet[] = { 0 };
03815   const unsigned FP3_SuperRegsSet[] = { 0 };
03816   const unsigned FP4_SuperRegsSet[] = { 0 };
03817   const unsigned FP5_SuperRegsSet[] = { 0 };
03818   const unsigned FP6_SuperRegsSet[] = { 0 };
03819   const unsigned FS_SuperRegsSet[] = { 0 };
03820   const unsigned GS_SuperRegsSet[] = { 0 };
03821   const unsigned IP_SuperRegsSet[] = { X86::RIP, X86::EIP, 0 };
03822   const unsigned MM0_SuperRegsSet[] = { 0 };
03823   const unsigned MM1_SuperRegsSet[] = { 0 };
03824   const unsigned MM2_SuperRegsSet[] = { 0 };
03825   const unsigned MM3_SuperRegsSet[] = { 0 };
03826   const unsigned MM4_SuperRegsSet[] = { 0 };
03827   const unsigned MM5_SuperRegsSet[] = { 0 };
03828   const unsigned MM6_SuperRegsSet[] = { 0 };
03829   const unsigned MM7_SuperRegsSet[] = { 0 };
03830   const unsigned R10_SuperRegsSet[] = { 0 };
03831   const unsigned R10B_SuperRegsSet[] = { X86::R10, X86::R10D, X86::R10W, 0 };
03832   const unsigned R10D_SuperRegsSet[] = { X86::R10, 0 };
03833   const unsigned R10W_SuperRegsSet[] = { X86::R10, X86::R10D, 0 };
03834   const unsigned R11_SuperRegsSet[] = { 0 };
03835   const unsigned R11B_SuperRegsSet[] = { X86::R11, X86::R11D, X86::R11W, 0 };
03836   const unsigned R11D_SuperRegsSet[] = { X86::R11, 0 };
03837   const unsigned R11W_SuperRegsSet[] = { X86::R11, X86::R11D, 0 };
03838   const unsigned R12_SuperRegsSet[] = { 0 };
03839   const unsigned R12B_SuperRegsSet[] = { X86::R12, X86::R12D, X86::R12W, 0 };
03840   const unsigned R12D_SuperRegsSet[] = { X86::R12, 0 };
03841   const unsigned R12W_SuperRegsSet[] = { X86::R12, X86::R12D, 0 };
03842   const unsigned R13_SuperRegsSet[] = { 0 };
03843   const unsigned R13B_SuperRegsSet[] = { X86::R13, X86::R13D, X86::R13W, 0 };
03844   const unsigned R13D_SuperRegsSet[] = { X86::R13, 0 };
03845   const unsigned R13W_SuperRegsSet[] = { X86::R13, X86::R13D, 0 };
03846   const unsigned R14_SuperRegsSet[] = { 0 };
03847   const unsigned R14B_SuperRegsSet[] = { X86::R14, X86::R14D, X86::R14W, 0 };
03848   const unsigned R14D_SuperRegsSet[] = { X86::R14, 0 };
03849   const unsigned R14W_SuperRegsSet[] = { X86::R14, X86::R14D, 0 };
03850   const unsigned R15_SuperRegsSet[] = { 0 };
03851   const unsigned R15B_SuperRegsSet[] = { X86::R15, X86::R15D, X86::R15W, 0 };
03852   const unsigned R15D_SuperRegsSet[] = { X86::R15, 0 };
03853   const unsigned R15W_SuperRegsSet[] = { X86::R15, X86::R15D, 0 };
03854   const unsigned R8_SuperRegsSet[] = { 0 };
03855   const unsigned R8B_SuperRegsSet[] = { X86::R8, X86::R8D, X86::R8W, 0 };
03856   const unsigned R8D_SuperRegsSet[] = { X86::R8, 0 };
03857   const unsigned R8W_SuperRegsSet[] = { X86::R8, X86::R8D, 0 };
03858   const unsigned R9_SuperRegsSet[] = { 0 };
03859   const unsigned R9B_SuperRegsSet[] = { X86::R9, X86::R9D, X86::R9W, 0 };
03860   const unsigned R9D_SuperRegsSet[] = { X86::R9, 0 };
03861   const unsigned R9W_SuperRegsSet[] = { X86::R9, X86::R9D, 0 };
03862   const unsigned RAX_SuperRegsSet[] = { 0 };
03863   const unsigned RBP_SuperRegsSet[] = { 0 };
03864   const unsigned RBX_SuperRegsSet[] = { 0 };
03865   const unsigned RCR0_SuperRegsSet[] = { 0 };
03866   const unsigned RCR1_SuperRegsSet[] = { 0 };
03867   const unsigned RCR2_SuperRegsSet[] = { 0 };
03868   const unsigned RCR3_SuperRegsSet[] = { 0 };
03869   const unsigned RCR4_SuperRegsSet[] = { 0 };
03870   const unsigned RCR5_SuperRegsSet[] = { 0 };
03871   const unsigned RCR6_SuperRegsSet[] = { 0 };
03872   const unsigned RCR7_SuperRegsSet[] = { 0 };
03873   const unsigned RCR8_SuperRegsSet[] = { 0 };
03874   const unsigned RCX_SuperRegsSet[] = { 0 };
03875   const unsigned RDI_SuperRegsSet[] = { 0 };
03876   const unsigned RDX_SuperRegsSet[] = { 0 };
03877   const unsigned RIP_SuperRegsSet[] = { 0 };
03878   const unsigned RSI_SuperRegsSet[] = { 0 };
03879   const unsigned RSP_SuperRegsSet[] = { 0 };
03880   const unsigned SI_SuperRegsSet[] = { X86::RSI, X86::ESI, 0 };
03881   const unsigned SIL_SuperRegsSet[] = { X86::RSI, X86::ESI, X86::SI, 0 };
03882   const unsigned SP_SuperRegsSet[] = { X86::RSP, X86::ESP, 0 };
03883   const unsigned SPL_SuperRegsSet[] = { X86::RSP, X86::ESP, X86::SP, 0 };
03884   const unsigned SS_SuperRegsSet[] = { 0 };
03885   const unsigned ST0_SuperRegsSet[] = { 0 };
03886   const unsigned ST1_SuperRegsSet[] = { 0 };
03887   const unsigned ST2_SuperRegsSet[] = { 0 };
03888   const unsigned ST3_SuperRegsSet[] = { 0 };
03889   const unsigned ST4_SuperRegsSet[] = { 0 };
03890   const unsigned ST5_SuperRegsSet[] = { 0 };
03891   const unsigned ST6_SuperRegsSet[] = { 0 };
03892   const unsigned ST7_SuperRegsSet[] = { 0 };
03893   const unsigned XMM0_SuperRegsSet[] = { X86::YMM0, 0 };
03894   const unsigned XMM1_SuperRegsSet[] = { X86::YMM1, 0 };
03895   const unsigned XMM10_SuperRegsSet[] = { X86::YMM10, 0 };
03896   const unsigned XMM11_SuperRegsSet[] = { X86::YMM11, 0 };
03897   const unsigned XMM12_SuperRegsSet[] = { X86::YMM12, 0 };
03898   const unsigned XMM13_SuperRegsSet[] = { X86::YMM13, 0 };
03899   const unsigned XMM14_SuperRegsSet[] = { X86::YMM14, 0 };
03900   const unsigned XMM15_SuperRegsSet[] = { X86::YMM15, 0 };
03901   const unsigned XMM2_SuperRegsSet[] = { X86::YMM2, 0 };
03902   const unsigned XMM3_SuperRegsSet[] = { X86::YMM3, 0 };
03903   const unsigned XMM4_SuperRegsSet[] = { X86::YMM4, 0 };
03904   const unsigned XMM5_SuperRegsSet[] = { X86::YMM5, 0 };
03905   const unsigned XMM6_SuperRegsSet[] = { X86::YMM6, 0 };
03906   const unsigned XMM7_SuperRegsSet[] = { X86::YMM7, 0 };
03907   const unsigned XMM8_SuperRegsSet[] = { X86::YMM8, 0 };
03908   const unsigned XMM9_SuperRegsSet[] = { X86::YMM9, 0 };
03909   const unsigned YMM0_SuperRegsSet[] = { 0 };
03910   const unsigned YMM1_SuperRegsSet[] = { 0 };
03911   const unsigned YMM10_SuperRegsSet[] = { 0 };
03912   const unsigned YMM11_SuperRegsSet[] = { 0 };
03913   const unsigned YMM12_SuperRegsSet[] = { 0 };
03914   const unsigned YMM13_SuperRegsSet[] = { 0 };
03915   const unsigned YMM14_SuperRegsSet[] = { 0 };
03916   const unsigned YMM15_SuperRegsSet[] = { 0 };
03917   const unsigned YMM2_SuperRegsSet[] = { 0 };
03918   const unsigned YMM3_SuperRegsSet[] = { 0 };
03919   const unsigned YMM4_SuperRegsSet[] = { 0 };
03920   const unsigned YMM5_SuperRegsSet[] = { 0 };
03921   const unsigned YMM6_SuperRegsSet[] = { 0 };
03922   const unsigned YMM7_SuperRegsSet[] = { 0 };
03923   const unsigned YMM8_SuperRegsSet[] = { 0 };
03924   const unsigned YMM9_SuperRegsSet[] = { 0 };
03925 
03926   const TargetRegisterDesc RegisterDescriptors[] = { // Descriptors
03927     { "NOREG",  0,  0,  0 },
03928     { "AH", AH_AliasSet,  AH_SubRegsSet,  AH_SuperRegsSet },
03929     { "AL", AL_AliasSet,  AL_SubRegsSet,  AL_SuperRegsSet },
03930     { "AX", AX_AliasSet,  AX_SubRegsSet,  AX_SuperRegsSet },
03931     { "BH", BH_AliasSet,  BH_SubRegsSet,  BH_SuperRegsSet },
03932     { "BL", BL_AliasSet,  BL_SubRegsSet,  BL_SuperRegsSet },
03933     { "BP", BP_AliasSet,  BP_SubRegsSet,  BP_SuperRegsSet },
03934     { "BPL",  BPL_AliasSet, BPL_SubRegsSet, BPL_SuperRegsSet },
03935     { "BX", BX_AliasSet,  BX_SubRegsSet,  BX_SuperRegsSet },
03936     { "CH", CH_AliasSet,  CH_SubRegsSet,  CH_SuperRegsSet },
03937     { "CL", CL_AliasSet,  CL_SubRegsSet,  CL_SuperRegsSet },
03938     { "CS", CS_AliasSet,  CS_SubRegsSet,  CS_SuperRegsSet },
03939     { "CX", CX_AliasSet,  CX_SubRegsSet,  CX_SuperRegsSet },
03940     { "DH", DH_AliasSet,  DH_SubRegsSet,  DH_SuperRegsSet },
03941     { "DI", DI_AliasSet,  DI_SubRegsSet,  DI_SuperRegsSet },
03942     { "DIL",  DIL_AliasSet, DIL_SubRegsSet, DIL_SuperRegsSet },
03943     { "DL", DL_AliasSet,  DL_SubRegsSet,  DL_SuperRegsSet },
03944     { "DR0",  DR0_AliasSet, DR0_SubRegsSet, DR0_SuperRegsSet },
03945     { "DR1",  DR1_AliasSet, DR1_SubRegsSet, DR1_SuperRegsSet },
03946     { "DR2",  DR2_AliasSet, DR2_SubRegsSet, DR2_SuperRegsSet },
03947     { "DR3",  DR3_AliasSet, DR3_SubRegsSet, DR3_SuperRegsSet },
03948     { "DR4",  DR4_AliasSet, DR4_SubRegsSet, DR4_SuperRegsSet },
03949     { "DR5",  DR5_AliasSet, DR5_SubRegsSet, DR5_SuperRegsSet },
03950     { "DR6",  DR6_AliasSet, DR6_SubRegsSet, DR6_SuperRegsSet },
03951     { "DR7",  DR7_AliasSet, DR7_SubRegsSet, DR7_SuperRegsSet },
03952     { "DS", DS_AliasSet,  DS_SubRegsSet,  DS_SuperRegsSet },
03953     { "DX", DX_AliasSet,  DX_SubRegsSet,  DX_SuperRegsSet },
03954     { "EAX",  EAX_AliasSet, EAX_SubRegsSet, EAX_SuperRegsSet },
03955     { "EBP",  EBP_AliasSet, EBP_SubRegsSet, EBP_SuperRegsSet },
03956     { "EBX",  EBX_AliasSet, EBX_SubRegsSet, EBX_SuperRegsSet },
03957     { "ECR0", ECR0_AliasSet,  ECR0_SubRegsSet,  ECR0_SuperRegsSet },
03958     { "ECR1", ECR1_AliasSet,  ECR1_SubRegsSet,  ECR1_SuperRegsSet },
03959     { "ECR2", ECR2_AliasSet,  ECR2_SubRegsSet,  ECR2_SuperRegsSet },
03960     { "ECR3", ECR3_AliasSet,  ECR3_SubRegsSet,  ECR3_SuperRegsSet },
03961     { "ECR4", ECR4_AliasSet,  ECR4_SubRegsSet,  ECR4_SuperRegsSet },
03962     { "ECR5", ECR5_AliasSet,  ECR5_SubRegsSet,  ECR5_SuperRegsSet },
03963     { "ECR6", ECR6_AliasSet,  ECR6_SubRegsSet,  ECR6_SuperRegsSet },
03964     { "ECR7", ECR7_AliasSet,  ECR7_SubRegsSet,  ECR7_SuperRegsSet },
03965     { "ECX",  ECX_AliasSet, ECX_SubRegsSet, ECX_SuperRegsSet },
03966     { "EDI",  EDI_AliasSet, EDI_SubRegsSet, EDI_SuperRegsSet },
03967     { "EDX",  EDX_AliasSet, EDX_SubRegsSet, EDX_SuperRegsSet },
03968     { "EFLAGS", EFLAGS_AliasSet,  EFLAGS_SubRegsSet,  EFLAGS_SuperRegsSet },
03969     { "EIP",  EIP_AliasSet, EIP_SubRegsSet, EIP_SuperRegsSet },
03970     { "ES", ES_AliasSet,  ES_SubRegsSet,  ES_SuperRegsSet },
03971     { "ESI",  ESI_AliasSet, ESI_SubRegsSet, ESI_SuperRegsSet },
03972     { "ESP",  ESP_AliasSet, ESP_SubRegsSet, ESP_SuperRegsSet },
03973     { "FP0",  FP0_AliasSet, FP0_SubRegsSet, FP0_SuperRegsSet },
03974     { "FP1",  FP1_AliasSet, FP1_SubRegsSet, FP1_SuperRegsSet },
03975     { "FP2",  FP2_AliasSet, FP2_SubRegsSet, FP2_SuperRegsSet },
03976     { "FP3",  FP3_AliasSet, FP3_SubRegsSet, FP3_SuperRegsSet },
03977     { "FP4",  FP4_AliasSet, FP4_SubRegsSet, FP4_SuperRegsSet },
03978     { "FP5",  FP5_AliasSet, FP5_SubRegsSet, FP5_SuperRegsSet },
03979     { "FP6",  FP6_AliasSet, FP6_SubRegsSet, FP6_SuperRegsSet },
03980     { "FS", FS_AliasSet,  FS_SubRegsSet,  FS_SuperRegsSet },
03981     { "GS", GS_AliasSet,  GS_SubRegsSet,  GS_SuperRegsSet },
03982     { "IP", IP_AliasSet,  IP_SubRegsSet,  IP_SuperRegsSet },
03983     { "MM0",  MM0_AliasSet, MM0_SubRegsSet, MM0_SuperRegsSet },
03984     { "MM1",  MM1_AliasSet, MM1_SubRegsSet, MM1_SuperRegsSet },
03985     { "MM2",  MM2_AliasSet, MM2_SubRegsSet, MM2_SuperRegsSet },
03986     { "MM3",  MM3_AliasSet, MM3_SubRegsSet, MM3_SuperRegsSet },
03987     { "MM4",  MM4_AliasSet, MM4_SubRegsSet, MM4_SuperRegsSet },
03988     { "MM5",  MM5_AliasSet, MM5_SubRegsSet, MM5_SuperRegsSet },
03989     { "MM6",  MM6_AliasSet, MM6_SubRegsSet, MM6_SuperRegsSet },
03990     { "MM7",  MM7_AliasSet, MM7_SubRegsSet, MM7_SuperRegsSet },
03991     { "R10",  R10_AliasSet, R10_SubRegsSet, R10_SuperRegsSet },
03992     { "R10B", R10B_AliasSet,  R10B_SubRegsSet,  R10B_SuperRegsSet },
03993     { "R10D", R10D_AliasSet,  R10D_SubRegsSet,  R10D_SuperRegsSet },
03994     { "R10W", R10W_AliasSet,  R10W_SubRegsSet,  R10W_SuperRegsSet },
03995     { "R11",  R11_AliasSet, R11_SubRegsSet, R11_SuperRegsSet },
03996     { "R11B", R11B_AliasSet,  R11B_SubRegsSet,  R11B_SuperRegsSet },
03997     { "R11D", R11D_AliasSet,  R11D_SubRegsSet,  R11D_SuperRegsSet },
03998     { "R11W", R11W_AliasSet,  R11W_SubRegsSet,  R11W_SuperRegsSet },
03999     { "R12",  R12_AliasSet, R12_SubRegsSet, R12_SuperRegsSet },
04000     { "R12B", R12B_AliasSet,  R12B_SubRegsSet,  R12B_SuperRegsSet },
04001     { "R12D", R12D_AliasSet,  R12D_SubRegsSet,  R12D_SuperRegsSet },
04002     { "R12W", R12W_AliasSet,  R12W_SubRegsSet,  R12W_SuperRegsSet },
04003     { "R13",  R13_AliasSet, R13_SubRegsSet, R13_SuperRegsSet },
04004     { "R13B", R13B_AliasSet,  R13B_SubRegsSet,  R13B_SuperRegsSet },
04005     { "R13D", R13D_AliasSet,  R13D_SubRegsSet,  R13D_SuperRegsSet },
04006     { "R13W", R13W_AliasSet,  R13W_SubRegsSet,  R13W_SuperRegsSet },
04007     { "R14",  R14_AliasSet, R14_SubRegsSet, R14_SuperRegsSet },
04008     { "R14B", R14B_AliasSet,  R14B_SubRegsSet,  R14B_SuperRegsSet },
04009     { "R14D", R14D_AliasSet,  R14D_SubRegsSet,  R14D_SuperRegsSet },
04010     { "R14W", R14W_AliasSet,  R14W_SubRegsSet,  R14W_SuperRegsSet },
04011     { "R15",  R15_AliasSet, R15_SubRegsSet, R15_SuperRegsSet },
04012     { "R15B", R15B_AliasSet,  R15B_SubRegsSet,  R15B_SuperRegsSet },
04013     { "R15D", R15D_AliasSet,  R15D_SubRegsSet,  R15D_SuperRegsSet },
04014     { "R15W", R15W_AliasSet,  R15W_SubRegsSet,  R15W_SuperRegsSet },
04015     { "R8", R8_AliasSet,  R8_SubRegsSet,  R8_SuperRegsSet },
04016     { "R8B",  R8B_AliasSet, R8B_SubRegsSet, R8B_SuperRegsSet },
04017     { "R8D",  R8D_AliasSet, R8D_SubRegsSet, R8D_SuperRegsSet },
04018     { "R8W",  R8W_AliasSet, R8W_SubRegsSet, R8W_SuperRegsSet },
04019     { "R9", R9_AliasSet,  R9_SubRegsSet,  R9_SuperRegsSet },
04020     { "R9B",  R9B_AliasSet, R9B_SubRegsSet, R9B_SuperRegsSet },
04021     { "R9D",  R9D_AliasSet, R9D_SubRegsSet, R9D_SuperRegsSet },
04022     { "R9W",  R9W_AliasSet, R9W_SubRegsSet, R9W_SuperRegsSet },
04023     { "RAX",  RAX_AliasSet, RAX_SubRegsSet, RAX_SuperRegsSet },
04024     { "RBP",  RBP_AliasSet, RBP_SubRegsSet, RBP_SuperRegsSet },
04025     { "RBX",  RBX_AliasSet, RBX_SubRegsSet, RBX_SuperRegsSet },
04026     { "RCR0", RCR0_AliasSet,  RCR0_SubRegsSet,  RCR0_SuperRegsSet },
04027     { "RCR1", RCR1_AliasSet,  RCR1_SubRegsSet,  RCR1_SuperRegsSet },
04028     { "RCR2", RCR2_AliasSet,  RCR2_SubRegsSet,  RCR2_SuperRegsSet },
04029     { "RCR3", RCR3_AliasSet,  RCR3_SubRegsSet,  RCR3_SuperRegsSet },
04030     { "RCR4", RCR4_AliasSet,  RCR4_SubRegsSet,  RCR4_SuperRegsSet },
04031     { "RCR5", RCR5_AliasSet,  RCR5_SubRegsSet,  RCR5_SuperRegsSet },
04032     { "RCR6", RCR6_AliasSet,  RCR6_SubRegsSet,  RCR6_SuperRegsSet },
04033     { "RCR7", RCR7_AliasSet,  RCR7_SubRegsSet,  RCR7_SuperRegsSet },
04034     { "RCR8", RCR8_AliasSet,  RCR8_SubRegsSet,  RCR8_SuperRegsSet },
04035     { "RCX",  RCX_AliasSet, RCX_SubRegsSet, RCX_SuperRegsSet },
04036     { "RDI",  RDI_AliasSet, RDI_SubRegsSet, RDI_SuperRegsSet },
04037     { "RDX",  RDX_AliasSet, RDX_SubRegsSet, RDX_SuperRegsSet },
04038     { "RIP",  RIP_AliasSet, RIP_SubRegsSet, RIP_SuperRegsSet },
04039     { "RSI",  RSI_AliasSet, RSI_SubRegsSet, RSI_SuperRegsSet },
04040     { "RSP",  RSP_AliasSet, RSP_SubRegsSet, RSP_SuperRegsSet },
04041     { "SI", SI_AliasSet,  SI_SubRegsSet,  SI_SuperRegsSet },
04042     { "SIL",  SIL_AliasSet, SIL_SubRegsSet, SIL_SuperRegsSet },
04043     { "SP", SP_AliasSet,  SP_SubRegsSet,  SP_SuperRegsSet },
04044     { "SPL",  SPL_AliasSet, SPL_SubRegsSet, SPL_SuperRegsSet },
04045     { "SS", SS_AliasSet,  SS_SubRegsSet,  SS_SuperRegsSet },
04046     { "ST0",  ST0_AliasSet, ST0_SubRegsSet, ST0_SuperRegsSet },
04047     { "ST1",  ST1_AliasSet, ST1_SubRegsSet, ST1_SuperRegsSet },
04048     { "ST2",  ST2_AliasSet, ST2_SubRegsSet, ST2_SuperRegsSet },
04049     { "ST3",  ST3_AliasSet, ST3_SubRegsSet, ST3_SuperRegsSet },
04050     { "ST4",  ST4_AliasSet, ST4_SubRegsSet, ST4_SuperRegsSet },
04051     { "ST5",  ST5_AliasSet, ST5_SubRegsSet, ST5_SuperRegsSet },
04052     { "ST6",  ST6_AliasSet, ST6_SubRegsSet, ST6_SuperRegsSet },
04053     { "ST7",  ST7_AliasSet, ST7_SubRegsSet, ST7_SuperRegsSet },
04054     { "XMM0", XMM0_AliasSet,  XMM0_SubRegsSet,  XMM0_SuperRegsSet },
04055     { "XMM1", XMM1_AliasSet,  XMM1_SubRegsSet,  XMM1_SuperRegsSet },
04056     { "XMM10",  XMM10_AliasSet, XMM10_SubRegsSet, XMM10_SuperRegsSet },
04057     { "XMM11",  XMM11_AliasSet, XMM11_SubRegsSet, XMM11_SuperRegsSet },
04058     { "XMM12",  XMM12_AliasSet, XMM12_SubRegsSet, XMM12_SuperRegsSet },
04059     { "XMM13",  XMM13_AliasSet, XMM13_SubRegsSet, XMM13_SuperRegsSet },
04060     { "XMM14",  XMM14_AliasSet, XMM14_SubRegsSet, XMM14_SuperRegsSet },
04061     { "XMM15",  XMM15_AliasSet, XMM15_SubRegsSet, XMM15_SuperRegsSet },
04062     { "XMM2", XMM2_AliasSet,  XMM2_SubRegsSet,  XMM2_SuperRegsSet },
04063     { "XMM3", XMM3_AliasSet,  XMM3_SubRegsSet,  XMM3_SuperRegsSet },
04064     { "XMM4", XMM4_AliasSet,  XMM4_SubRegsSet,  XMM4_SuperRegsSet },
04065     { "XMM5", XMM5_AliasSet,  XMM5_SubRegsSet,  XMM5_SuperRegsSet },
04066     { "XMM6", XMM6_AliasSet,  XMM6_SubRegsSet,  XMM6_SuperRegsSet },
04067     { "XMM7", XMM7_AliasSet,  XMM7_SubRegsSet,  XMM7_SuperRegsSet },
04068     { "XMM8", XMM8_AliasSet,  XMM8_SubRegsSet,  XMM8_SuperRegsSet },
04069     { "XMM9", XMM9_AliasSet,  XMM9_SubRegsSet,  XMM9_SuperRegsSet },
04070     { "YMM0", YMM0_AliasSet,  YMM0_SubRegsSet,  YMM0_SuperRegsSet },
04071     { "YMM1", YMM1_AliasSet,  YMM1_SubRegsSet,  YMM1_SuperRegsSet },
04072     { "YMM10",  YMM10_AliasSet, YMM10_SubRegsSet, YMM10_SuperRegsSet },
04073     { "YMM11",  YMM11_AliasSet, YMM11_SubRegsSet, YMM11_SuperRegsSet },
04074     { "YMM12",  YMM12_AliasSet, YMM12_SubRegsSet, YMM12_SuperRegsSet },
04075     { "YMM13",  YMM13_AliasSet, YMM13_SubRegsSet, YMM13_SuperRegsSet },
04076     { "YMM14",  YMM14_AliasSet, YMM14_SubRegsSet, YMM14_SuperRegsSet },
04077     { "YMM15",  YMM15_AliasSet, YMM15_SubRegsSet, YMM15_SuperRegsSet },
04078     { "YMM2", YMM2_AliasSet,  YMM2_SubRegsSet,  YMM2_SuperRegsSet },
04079     { "YMM3", YMM3_AliasSet,  YMM3_SubRegsSet,  YMM3_SuperRegsSet },
04080     { "YMM4", YMM4_AliasSet,  YMM4_SubRegsSet,  YMM4_SuperRegsSet },
04081     { "YMM5", YMM5_AliasSet,  YMM5_SubRegsSet,  YMM5_SuperRegsSet },
04082     { "YMM6", YMM6_AliasSet,  YMM6_SubRegsSet,  YMM6_SuperRegsSet },
04083     { "YMM7", YMM7_AliasSet,  YMM7_SubRegsSet,  YMM7_SuperRegsSet },
04084     { "YMM8", YMM8_AliasSet,  YMM8_SubRegsSet,  YMM8_SuperRegsSet },
04085     { "YMM9", YMM9_AliasSet,  YMM9_SubRegsSet,  YMM9_SuperRegsSet },
04086   };
04087 }
04088 
04089 unsigned X86GenRegisterInfo::getSubReg(unsigned RegNo, unsigned Index) const {
04090   switch (RegNo) {
04091   default:
04092     return 0;
04093   case X86::R11D:
04094     switch (Index) {
04095     default: return 0;
04096     case 1: return X86::R11B;
04097     case 3: return X86::R11W;
04098     };
04099     break;
04100   case X86::AX:
04101     switch (Index) {
04102     default: return 0;
04103     case 1: return X86::AL;
04104     case 2: return X86::AH;
04105     };
04106     break;
04107   case X86::DX:
04108     switch (Index) {
04109     default: return 0;
04110     case 1: return X86::DL;
04111     case 2: return X86::DH;
04112     };
04113     break;
04114   case X86::CX:
04115     switch (Index) {
04116     default: return 0;
04117     case 1: return X86::CL;
04118     case 2: return X86::CH;
04119     };
04120     break;
04121   case X86::BX:
04122     switch (Index) {
04123     default: return 0;
04124     case 1: return X86::BL;
04125     case 2: return X86::BH;
04126     };
04127     break;
04128   case X86::SI:
04129     switch (Index) {
04130     default: return 0;
04131     case 1: return X86::SIL;
04132     };
04133     break;
04134   case X86::DI:
04135     switch (Index) {
04136     default: return 0;
04137     case 1: return X86::DIL;
04138     };
04139     break;
04140   case X86::BP:
04141     switch (Index) {
04142     default: return 0;
04143     case 1: return X86::BPL;
04144     };
04145     break;
04146   case X86::SP:
04147     switch (Index) {
04148     default: return 0;
04149     case 1: return X86::SPL;
04150     };
04151     break;
04152   case X86::R8W:
04153     switch (Index) {
04154     default: return 0;
04155     case 1: return X86::R8B;
04156     };
04157     break;
04158   case X86::R9W:
04159     switch (Index) {
04160     default: return 0;
04161     case 1: return X86::R9B;
04162     };
04163     break;
04164   case X86::R10W:
04165     switch (Index) {
04166     default: return 0;
04167     case 1: return X86::R10B;
04168     };
04169     break;
04170   case X86::R11W:
04171     switch (Index) {
04172     default: return 0;
04173     case 1: return X86::R11B;
04174     };
04175     break;
04176   case X86::R12W:
04177     switch (Index) {
04178     default: return 0;
04179     case 1: return X86::R12B;
04180     };
04181     break;
04182   case X86::R13W:
04183     switch (Index) {
04184     default: return 0;
04185     case 1: return X86::R13B;
04186     };
04187     break;
04188   case X86::R14W:
04189     switch (Index) {
04190     default: return 0;
04191     case 1: return X86::R14B;
04192     };
04193     break;
04194   case X86::R15W:
04195     switch (Index) {
04196     default: return 0;
04197     case 1: return X86::R15B;
04198     };
04199     break;
04200   case X86::EAX:
04201     switch (Index) {
04202     default: return 0;
04203     case 1: return X86::AL;
04204     case 2: return X86::AH;
04205     case 3: return X86::AX;
04206     };
04207     break;
04208   case X86::EDX:
04209     switch (Index) {
04210     default: return 0;
04211     case 1: return X86::DL;
04212     case 2: return X86::DH;
04213     case 3: return X86::DX;
04214     };
04215     break;
04216   case X86::ECX:
04217     switch (Index) {
04218     default: return 0;
04219     case 1: return X86::CL;
04220     case 2: return X86::CH;
04221     case 3: return X86::CX;
04222     };
04223     break;
04224   case X86::EBX:
04225     switch (Index) {
04226     default: return 0;
04227     case 1: return X86::BL;
04228     case 2: return X86::BH;
04229     case 3: return X86::BX;
04230     };
04231     break;
04232   case X86::ESI:
04233     switch (Index) {
04234     default: return 0;
04235     case 1: return X86::SIL;
04236     case 3: return X86::SI;
04237     };
04238     break;
04239   case X86::EDI:
04240     switch (Index) {
04241     default: return 0;
04242     case 1: return X86::DIL;
04243     case 3: return X86::DI;
04244     };
04245     break;
04246   case X86::EBP:
04247     switch (Index) {
04248     default: return 0;
04249     case 1: return X86::BPL;
04250     case 3: return X86::BP;
04251     };
04252     break;
04253   case X86::ESP:
04254     switch (Index) {
04255     default: return 0;
04256     case 1: return X86::SPL;
04257     case 3: return X86::SP;
04258     };
04259     break;
04260   case X86::R8D:
04261     switch (Index) {
04262     default: return 0;
04263     case 1: return X86::R8B;
04264     case 3: return X86::R8W;
04265     };
04266     break;
04267   case X86::R9D:
04268     switch (Index) {
04269     default: return 0;
04270     case 1: return X86::R9B;
04271     case 3: return X86::R9W;
04272     };
04273     break;
04274   case X86::R10D:
04275     switch (Index) {
04276     default: return 0;
04277     case 1: return X86::R10B;
04278     case 3: return X86::R10W;
04279     };
04280     break;
04281   case X86::R12D:
04282     switch (Index) {
04283     default: return 0;
04284     case 1: return X86::R12B;
04285     case 3: return X86::R12W;
04286     };
04287     break;
04288   case X86::R13D:
04289     switch (Index) {
04290     default: return 0;
04291     case 1: return X86::R13B;
04292     case 3: return X86::R13W;
04293     };
04294     break;
04295   case X86::R14D:
04296     switch (Index) {
04297     default: return 0;
04298     case 1: return X86::R14B;
04299     case 3: return X86::R14W;
04300     };
04301     break;
04302   case X86::R15D:
04303     switch (Index) {
04304     default: return 0;
04305     case 1: return X86::R15B;
04306     case 3: return X86::R15W;
04307     };
04308     break;
04309   case X86::RAX:
04310     switch (Index) {
04311     default: return 0;
04312     case 1: return X86::AL;
04313     case 2: return X86::AH;
04314     case 3: return X86::AX;
04315     case 4: return X86::EAX;
04316     };
04317     break;
04318   case X86::RDX:
04319     switch (Index) {
04320     default: return 0;
04321     case 1: return X86::DL;
04322     case 2: return X86::DH;
04323     case 3: return X86::DX;
04324     case 4: return X86::EDX;
04325     };
04326     break;
04327   case X86::RCX:
04328     switch (Index) {
04329     default: return 0;
04330     case 1: return X86::CL;
04331     case 2: return X86::CH;
04332     case 3: return X86::CX;
04333     case 4: return X86::ECX;
04334     };
04335     break;
04336   case X86::RBX:
04337     switch (Index) {
04338     default: return 0;
04339     case 1: return X86::BL;
04340     case 2: return X86::BH;
04341     case 3: return X86::BX;
04342     case 4: return X86::EBX;
04343     };
04344     break;
04345   case X86::RSI:
04346     switch (Index) {
04347     default: return 0;
04348     case 1: return X86::SIL;
04349     case 3: return X86::SI;
04350     case 4: return X86::ESI;
04351     };
04352     break;
04353   case X86::RDI:
04354     switch (Index) {
04355     default: return 0;
04356     case 1: return X86::DIL;
04357     case 3: return X86::DI;
04358     case 4: return X86::EDI;
04359     };
04360     break;
04361   case X86::RBP:
04362     switch (Index) {
04363     default: return 0;
04364     case 1: return X86::BPL;
04365     case 3: return X86::BP;
04366     case 4: return X86::EBP;
04367     };
04368     break;
04369   case X86::RSP:
04370     switch (Index) {
04371     default: return 0;
04372     case 1: return X86::SPL;
04373     case 3: return X86::SP;
04374     case 4: return X86::ESP;
04375     };
04376     break;
04377   case X86::R8:
04378     switch (Index) {
04379     default: return 0;
04380     case 1: return X86::R8B;
04381     case 3: return X86::R8W;
04382     case 4: return X86::R8D;
04383     };
04384     break;
04385   case X86::R9:
04386     switch (Index) {
04387     default: return 0;
04388     case 1: return X86::R9B;
04389     case 3: return X86::R9W;
04390     case 4: return X86::R9D;
04391     };
04392     break;
04393   case X86::R10:
04394     switch (Index) {
04395     default: return 0;
04396     case 1: return X86::R10B;
04397     case 3: return X86::R10W;
04398     case 4: return X86::R10D;
04399     };
04400     break;
04401   case X86::R11:
04402     switch (Index) {
04403     default: return 0;
04404     case 1: return X86::R11B;
04405     case 3: return X86::R11W;
04406     case 4: return X86::R11D;
04407     };
04408     break;
04409   case X86::R12:
04410     switch (Index) {
04411     default: return 0;
04412     case 1: return X86::R12B;
04413     case 3: return X86::R12W;
04414     case 4: return X86::R12D;
04415     };
04416     break;
04417   case X86::R13:
04418     switch (Index) {
04419     default: return 0;
04420     case 1: return X86::R13B;
04421     case 3: return X86::R13W;
04422     case 4: return X86::R13D;
04423     };
04424     break;
04425   case X86::R14:
04426     switch (Index) {
04427     default: return 0;
04428     case 1: return X86::R14B;
04429     case 3: return X86::R14W;
04430     case 4: return X86::R14D;
04431     };
04432     break;
04433   case X86::R15:
04434     switch (Index) {
04435     default: return 0;
04436     case 1: return X86::R15B;
04437     case 3: return X86::R15W;
04438     case 4: return X86::R15D;
04439     };
04440     break;
04441   case X86::XMM0:
04442     switch (Index) {
04443     default: return 0;
04444     case 1: return X86::XMM0;
04445     case 2: return X86::XMM0;
04446     };
04447     break;
04448   case X86::XMM1:
04449     switch (Index) {
04450     default: return 0;
04451     case 1: return X86::XMM1;
04452     case 2: return X86::XMM1;
04453     };
04454     break;
04455   case X86::XMM2:
04456     switch (Index) {
04457     default: return 0;
04458     case 1: return X86::XMM2;
04459     case 2: return X86::XMM2;
04460     };
04461     break;
04462   case X86::XMM3:
04463     switch (Index) {
04464     default: return 0;
04465     case 1: return X86::XMM3;
04466     case 2: return X86::XMM3;
04467     };
04468     break;
04469   case X86::XMM4:
04470     switch (Index) {
04471     default: return 0;
04472     case 1: return X86::XMM4;
04473     case 2: return X86::XMM4;
04474     };
04475     break;
04476   case X86::XMM5:
04477     switch (Index) {
04478     default: return 0;
04479     case 1: return X86::XMM5;
04480     case 2: return X86::XMM5;
04481     };
04482     break;
04483   case X86::XMM6:
04484     switch (Index) {
04485     default: return 0;
04486     case 1: return X86::XMM6;
04487     case 2: return X86::XMM6;
04488     };
04489     break;
04490   case X86::XMM7:
04491     switch (Index) {
04492     default: return 0;
04493     case 1: return X86::XMM7;
04494     case 2: return X86::XMM7;
04495     };
04496     break;
04497   case X86::XMM8:
04498     switch (Index) {
04499     default: return 0;
04500     case 1: return X86::XMM8;
04501     case 2: return X86::XMM8;
04502     };
04503     break;
04504   case X86::XMM9:
04505     switch (Index) {
04506     default: return 0;
04507     case 1: return X86::XMM9;
04508     case 2: return X86::XMM9;
04509     };
04510     break;
04511   case X86::XMM10:
04512     switch (Index) {
04513     default: return 0;
04514     case 1: return X86::XMM10;
04515     case 2: return X86::XMM10;
04516     };
04517     break;
04518   case X86::XMM11:
04519     switch (Index) {
04520     default: return 0;
04521     case 1: return X86::XMM11;
04522     case 2: return X86::XMM11;
04523     };
04524     break;
04525   case X86::XMM12:
04526     switch (Index) {
04527     default: return 0;
04528     case 1: return X86::XMM12;
04529     case 2: return X86::XMM12;
04530     };
04531     break;
04532   case X86::XMM13:
04533     switch (Index) {
04534     default: return 0;
04535     case 1: return X86::XMM13;
04536     case 2: return X86::XMM13;
04537     };
04538     break;
04539   case X86::XMM14:
04540     switch (Index) {
04541     default: return 0;
04542     case 1: return X86::XMM14;
04543     case 2: return X86::XMM14;
04544     };
04545     break;
04546   case X86::XMM15:
04547     switch (Index) {
04548     default: return 0;
04549     case 1: return X86::XMM15;
04550     case 2: return X86::XMM15;
04551     };
04552     break;
04553   case X86::YMM0:
04554     switch (Index) {
04555     default: return 0;
04556     case 1: return X86::XMM0;
04557     case 2: return X86::XMM0;
04558     case 3: return X86::XMM0;
04559     };
04560     break;
04561   case X86::YMM1:
04562     switch (Index) {
04563     default: return 0;
04564     case 1: return X86::XMM1;
04565     case 2: return X86::XMM1;
04566     case 3: return X86::XMM1;
04567     };
04568     break;
04569   case X86::YMM2:
04570     switch (Index) {
04571     default: return 0;
04572     case 1: return X86::XMM2;
04573     case 2: return X86::XMM2;
04574     case 3: return X86::XMM2;
04575     };
04576     break;
04577   case X86::YMM3:
04578     switch (Index) {
04579     default: return 0;
04580     case 1: return X86::XMM3;
04581     case 2: return X86::XMM3;
04582     case 3: return X86::XMM3;
04583     };
04584     break;
04585   case X86::YMM4:
04586     switch (Index) {
04587     default: return 0;
04588     case 1: return X86::XMM4;
04589     case 2: return X86::XMM4;
04590     case 3: return X86::XMM4;
04591     };
04592     break;
04593   case X86::YMM5:
04594     switch (Index) {
04595     default: return 0;
04596     case 1: return X86::XMM5;
04597     case 2: return X86::XMM5;
04598     case 3: return X86::XMM5;
04599     };
04600     break;
04601   case X86::YMM6:
04602     switch (Index) {
04603     default: return 0;
04604     case 1: return X86::XMM6;
04605     case 2: return X86::XMM6;
04606     case 3: return X86::XMM6;
04607     };
04608     break;
04609   case X86::YMM7:
04610     switch (Index) {
04611     default: return 0;
04612     case 1: return X86::XMM7;
04613     case 2: return X86::XMM7;
04614     case 3: return X86::XMM7;
04615     };
04616     break;
04617   case X86::YMM8:
04618     switch (Index) {
04619     default: return 0;
04620     case 1: return X86::XMM8;
04621     case 2: return X86::XMM8;
04622     case 3: return X86::XMM8;
04623     };
04624     break;
04625   case X86::YMM9:
04626     switch (Index) {
04627     default: return 0;
04628     case 1: return X86::XMM9;
04629     case 2: return X86::XMM9;
04630     case 3: return X86::XMM9;
04631     };
04632     break;
04633   case X86::YMM10:
04634     switch (Index) {
04635     default: return 0;
04636     case 1: return X86::XMM10;
04637     case 2: return X86::XMM10;
04638     case 3: return X86::XMM10;
04639     };
04640     break;
04641   case X86::YMM11:
04642     switch (Index) {
04643     default: return 0;
04644     case 1: return X86::XMM11;
04645     case 2: return X86::XMM11;
04646     case 3: return X86::XMM11;
04647     };
04648     break;
04649   case X86::YMM12:
04650     switch (Index) {
04651     default: return 0;
04652     case 1: return X86::XMM12;
04653     case 2: return X86::XMM12;
04654     case 3: return X86::XMM12;
04655     };
04656     break;
04657   case X86::YMM13:
04658     switch (Index) {
04659     default: return 0;
04660     case 1: return X86::XMM13;
04661     case 2: return X86::XMM13;
04662     case 3: return X86::XMM13;
04663     };
04664     break;
04665   case X86::YMM14:
04666     switch (Index) {
04667     default: return 0;
04668     case 1: return X86::XMM14;
04669     case 2: return X86::XMM14;
04670     case 3: return X86::XMM14;
04671     };
04672     break;
04673   case X86::YMM15:
04674     switch (Index) {
04675     default: return 0;
04676     case 1: return X86::XMM15;
04677     case 2: return X86::XMM15;
04678     case 3: return X86::XMM15;
04679     };
04680     break;
04681   };
04682   return 0;
04683 }
04684 
04685 unsigned X86GenRegisterInfo::getSubRegIndex(unsigned RegNo, unsigned SubRegNo) const {
04686   switch (RegNo) {
04687   default:
04688     return 0;
04689   case X86::R11D:
04690     if (SubRegNo == X86::R11B)  return 1;
04691     if (SubRegNo == X86::R11W)  return 3;
04692     return 0;
04693   case X86::AX:
04694     if (SubRegNo == X86::AL)  return 1;
04695     if (SubRegNo == X86::AH)  return 2;
04696     return 0;
04697   case X86::DX:
04698     if (SubRegNo == X86::DL)  return 1;
04699     if (SubRegNo == X86::DH)  return 2;
04700     return 0;
04701   case X86::CX:
04702     if (SubRegNo == X86::CL)  return 1;
04703     if (SubRegNo == X86::CH)  return 2;
04704     return 0;
04705   case X86::BX:
04706     if (SubRegNo == X86::BL)  return 1;
04707     if (SubRegNo == X86::BH)  return 2;
04708     return 0;
04709   case X86::SI:
04710     if (SubRegNo == X86::SIL)  return 1;
04711     return 0;
04712   case X86::DI:
04713     if (SubRegNo == X86::DIL)  return 1;
04714     return 0;
04715   case X86::BP:
04716     if (SubRegNo == X86::BPL)  return 1;
04717     return 0;
04718   case X86::SP:
04719     if (SubRegNo == X86::SPL)  return 1;
04720     return 0;
04721   case X86::R8W:
04722     if (SubRegNo == X86::R8B)  return 1;
04723     return 0;
04724   case X86::R9W:
04725     if (SubRegNo == X86::R9B)  return 1;
04726     return 0;
04727   case X86::R10W:
04728     if (SubRegNo == X86::R10B)  return 1;
04729     return 0;
04730   case X86::R11W:
04731     if (SubRegNo == X86::R11B)  return 1;
04732     return 0;
04733   case X86::R12W:
04734     if (SubRegNo == X86::R12B)  return 1;
04735     return 0;
04736   case X86::R13W:
04737     if (SubRegNo == X86::R13B)  return 1;
04738     return 0;
04739   case X86::R14W:
04740     if (SubRegNo == X86::R14B)  return 1;
04741     return 0;
04742   case X86::R15W:
04743     if (SubRegNo == X86::R15B)  return 1;
04744     return 0;
04745   case X86::EAX:
04746     if (SubRegNo == X86::AL)  return 1;
04747     if (SubRegNo == X86::AH)  return 2;
04748     if (SubRegNo == X86::AX)  return 3;
04749     return 0;
04750   case X86::EDX:
04751     if (SubRegNo == X86::DL)  return 1;
04752     if (SubRegNo == X86::DH)  return 2;
04753     if (SubRegNo == X86::DX)  return 3;
04754     return 0;
04755   case X86::ECX:
04756     if (SubRegNo == X86::CL)  return 1;
04757     if (SubRegNo == X86::CH)  return 2;
04758     if (SubRegNo == X86::CX)  return 3;
04759     return 0;
04760   case X86::EBX:
04761     if (SubRegNo == X86::BL)  return 1;
04762     if (SubRegNo == X86::BH)  return 2;
04763     if (SubRegNo == X86::BX)  return 3;
04764     return 0;
04765   case X86::ESI:
04766     if (SubRegNo == X86::SIL)  return 1;
04767     if (SubRegNo == X86::SI)  return 3;
04768     return 0;
04769   case X86::EDI:
04770     if (SubRegNo == X86::DIL)  return 1;
04771     if (SubRegNo == X86::DI)  return 3;
04772     return 0;
04773   case X86::EBP:
04774     if (SubRegNo == X86::BPL)  return 1;
04775     if (SubRegNo == X86::BP)  return 3;
04776     return 0;
04777   case X86::ESP:
04778     if (SubRegNo == X86::SPL)  return 1;
04779     if (SubRegNo == X86::SP)  return 3;
04780     return 0;
04781   case X86::R8D:
04782     if (SubRegNo == X86::R8B)  return 1;
04783     if (SubRegNo == X86::R8W)  return 3;
04784     return 0;
04785   case X86::R9D:
04786     if (SubRegNo == X86::R9B)  return 1;
04787     if (SubRegNo == X86::R9W)  return 3;
04788     return 0;
04789   case X86::R10D:
04790     if (SubRegNo == X86::R10B)  return 1;
04791     if (SubRegNo == X86::R10W)  return 3;
04792     return 0;
04793   case X86::R12D:
04794     if (SubRegNo == X86::R12B)  return 1;
04795     if (SubRegNo == X86::R12W)  return 3;
04796     return 0;
04797   case X86::R13D:
04798     if (SubRegNo == X86::R13B)  return 1;
04799     if (SubRegNo == X86::R13W)  return 3;
04800     return 0;
04801   case X86::R14D:
04802     if (SubRegNo == X86::R14B)  return 1;
04803     if (SubRegNo == X86::R14W)  return 3;
04804     return 0;
04805   case X86::R15D:
04806     if (SubRegNo == X86::R15B)  return 1;
04807     if (SubRegNo == X86::R15W)  return 3;
04808     return 0;
04809   case X86::RAX:
04810     if (SubRegNo == X86::AL)  return 1;
04811     if (SubRegNo == X86::AH)  return 2;
04812     if (SubRegNo == X86::AX)  return 3;
04813     if (SubRegNo == X86::EAX)  return 4;
04814     return 0;
04815   case X86::RDX:
04816     if (SubRegNo == X86::DL)  return 1;
04817     if (SubRegNo == X86::DH)  return 2;
04818     if (SubRegNo == X86::DX)  return 3;
04819     if (SubRegNo == X86::EDX)  return 4;
04820     return 0;
04821   case X86::RCX:
04822     if (SubRegNo == X86::CL)  return 1;
04823     if (SubRegNo == X86::CH)  return 2;
04824     if (SubRegNo == X86::CX)  return 3;
04825     if (SubRegNo == X86::ECX)  return 4;
04826     return 0;
04827   case X86::RBX:
04828     if (SubRegNo == X86::BL)  return 1;
04829     if (SubRegNo == X86::BH)  return 2;
04830     if (SubRegNo == X86::BX)  return 3;
04831     if (SubRegNo == X86::EBX)  return 4;
04832     return 0;
04833   case X86::RSI:
04834     if (SubRegNo == X86::SIL)  return 1;
04835     if (SubRegNo == X86::SI)  return 3;
04836     if (SubRegNo == X86::ESI)  return 4;
04837     return 0;
04838   case X86::RDI:
04839     if (SubRegNo == X86::DIL)  return 1;
04840     if (SubRegNo == X86::DI)  return 3;
04841     if (SubRegNo == X86::EDI)  return 4;
04842     return 0;
04843   case X86::RBP:
04844     if (SubRegNo == X86::BPL)  return 1;
04845     if (SubRegNo == X86::BP)  return 3;
04846     if (SubRegNo == X86::EBP)  return 4;
04847     return 0;
04848   case X86::RSP:
04849     if (SubRegNo == X86::SPL)  return 1;
04850     if (SubRegNo == X86::SP)  return 3;
04851     if (SubRegNo == X86::ESP)  return 4;
04852     return 0;
04853   case X86::R8:
04854     if (SubRegNo == X86::R8B)  return 1;
04855     if (SubRegNo == X86::R8W)  return 3;
04856     if (SubRegNo == X86::R8D)  return 4;
04857     return 0;
04858   case X86::R9:
04859     if (SubRegNo == X86::R9B)  return 1;
04860     if (SubRegNo == X86::R9W)  return 3;
04861     if (SubRegNo == X86::R9D)  return 4;
04862     return 0;
04863   case X86::R10:
04864     if (SubRegNo == X86::R10B)  return 1;
04865     if (SubRegNo == X86::R10W)  return 3;
04866     if (SubRegNo == X86::R10D)  return 4;
04867     return 0;
04868   case X86::R11:
04869     if (SubRegNo == X86::R11B)  return 1;
04870     if (SubRegNo == X86::R11W)  return 3;
04871     if (SubRegNo == X86::R11D)  return 4;
04872     return 0;
04873   case X86::R12:
04874     if (SubRegNo == X86::R12B)  return 1;
04875     if (SubRegNo == X86::R12W)  return 3;
04876     if (SubRegNo == X86::R12D)  return 4;
04877     return 0;
04878   case X86::R13:
04879     if (SubRegNo == X86::R13B)  return 1;
04880     if (SubRegNo == X86::R13W)  return 3;
04881     if (SubRegNo == X86::R13D)  return 4;
04882     return 0;
04883   case X86::R14:
04884     if (SubRegNo == X86::R14B)  return 1;
04885     if (SubRegNo == X86::R14W)  return 3;
04886     if (SubRegNo == X86::R14D)  return 4;
04887     return 0;
04888   case X86::R15:
04889     if (SubRegNo == X86::R15B)  return 1;
04890     if (SubRegNo == X86::R15W)  return 3;
04891     if (SubRegNo == X86::R15D)  return 4;
04892     return 0;
04893   case X86::XMM0:
04894     if (SubRegNo == X86::XMM0)  return 1;
04895     if (SubRegNo == X86::XMM0)  return 2;
04896     return 0;
04897   case X86::XMM1:
04898     if (SubRegNo == X86::XMM1)  return 1;
04899     if (SubRegNo == X86::XMM1)  return 2;
04900     return 0;
04901   case X86::XMM2:
04902     if (SubRegNo == X86::XMM2)  return 1;
04903     if (SubRegNo == X86::XMM2)  return 2;
04904     return 0;
04905   case X86::XMM3:
04906     if (SubRegNo == X86::XMM3)  return 1;
04907     if (SubRegNo == X86::XMM3)  return 2;
04908     return 0;
04909   case X86::XMM4:
04910     if (SubRegNo == X86::XMM4)  return 1;
04911     if (SubRegNo == X86::XMM4)  return 2;
04912     return 0;
04913   case X86::XMM5:
04914     if (SubRegNo == X86::XMM5)  return 1;
04915     if (SubRegNo == X86::XMM5)  return 2;
04916     return 0;
04917   case X86::XMM6:
04918     if (SubRegNo == X86::XMM6)  return 1;
04919     if (SubRegNo == X86::XMM6)  return 2;
04920     return 0;
04921   case X86::XMM7:
04922     if (SubRegNo == X86::XMM7)  return 1;
04923     if (SubRegNo == X86::XMM7)  return 2;
04924     return 0;
04925   case X86::XMM8:
04926     if (SubRegNo == X86::XMM8)  return 1;
04927     if (SubRegNo == X86::XMM8)  return 2;
04928     return 0;
04929   case X86::XMM9:
04930     if (SubRegNo == X86::XMM9)  return 1;
04931     if (SubRegNo == X86::XMM9)  return 2;
04932     return 0;
04933   case X86::XMM10:
04934     if (SubRegNo == X86::XMM10)  return 1;
04935     if (SubRegNo == X86::XMM10)  return 2;
04936     return 0;
04937   case X86::XMM11:
04938     if (SubRegNo == X86::XMM11)  return 1;
04939     if (SubRegNo == X86::XMM11)  return 2;
04940     return 0;
04941   case X86::XMM12:
04942     if (SubRegNo == X86::XMM12)  return 1;
04943     if (SubRegNo == X86::XMM12)  return 2;
04944     return 0;
04945   case X86::XMM13:
04946     if (SubRegNo == X86::XMM13)  return 1;
04947     if (SubRegNo == X86::XMM13)  return 2;
04948     return 0;
04949   case X86::XMM14:
04950     if (SubRegNo == X86::XMM14)  return 1;
04951     if (SubRegNo == X86::XMM14)  return 2;
04952     return 0;
04953   case X86::XMM15:
04954     if (SubRegNo == X86::XMM15)  return 1;
04955     if (SubRegNo == X86::XMM15)  return 2;
04956     return 0;
04957   case X86::YMM0:
04958     if (SubRegNo == X86::XMM0)  return 1;
04959     if (SubRegNo == X86::XMM0)  return 2;
04960     if (SubRegNo == X86::XMM0)  return 3;
04961     return 0;
04962   case X86::YMM1:
04963     if (SubRegNo == X86::XMM1)  return 1;
04964     if (SubRegNo == X86::XMM1)  return 2;
04965     if (SubRegNo == X86::XMM1)  return 3;
04966     return 0;
04967   case X86::YMM2:
04968     if (SubRegNo == X86::XMM2)  return 1;
04969     if (SubRegNo == X86::XMM2)  return 2;
04970     if (SubRegNo == X86::XMM2)  return 3;
04971     return 0;
04972   case X86::YMM3:
04973     if (SubRegNo == X86::XMM3)  return 1;
04974     if (SubRegNo == X86::XMM3)  return 2;
04975     if (SubRegNo == X86::XMM3)  return 3;
04976     return 0;
04977   case X86::YMM4:
04978     if (SubRegNo == X86::XMM4)  return 1;
04979     if (SubRegNo == X86::XMM4)  return 2;
04980     if (SubRegNo == X86::XMM4)  return 3;
04981     return 0;
04982   case X86::YMM5:
04983     if (SubRegNo == X86::XMM5)  return 1;
04984     if (SubRegNo == X86::XMM5)  return 2;
04985     if (SubRegNo == X86::XMM5)  return 3;
04986     return 0;
04987   case X86::YMM6:
04988     if (SubRegNo == X86::XMM6)  return 1;
04989     if (SubRegNo == X86::XMM6)  return 2;
04990     if (SubRegNo == X86::XMM6)  return 3;
04991     return 0;
04992   case X86::YMM7:
04993     if (SubRegNo == X86::XMM7)  return 1;
04994     if (SubRegNo == X86::XMM7)  return 2;
04995     if (SubRegNo == X86::XMM7)  return 3;
04996     return 0;
04997   case X86::YMM8:
04998     if (SubRegNo == X86::XMM8)  return 1;
04999     if (SubRegNo == X86::XMM8)  return 2;
05000     if (SubRegNo == X86::XMM8)  return 3;
05001     return 0;
05002   case X86::YMM9:
05003     if (SubRegNo == X86::XMM9)  return 1;
05004     if (SubRegNo == X86::XMM9)  return 2;
05005     if (SubRegNo == X86::XMM9)  return 3;
05006     return 0;
05007   case X86::YMM10:
05008     if (SubRegNo == X86::XMM10)  return 1;
05009     if (SubRegNo == X86::XMM10)  return 2;
05010     if (SubRegNo == X86::XMM10)  return 3;
05011     return 0;
05012   case X86::YMM11:
05013     if (SubRegNo == X86::XMM11)  return 1;
05014     if (SubRegNo == X86::XMM11)  return 2;
05015     if (SubRegNo == X86::XMM11)  return 3;
05016     return 0;
05017   case X86::YMM12:
05018     if (SubRegNo == X86::XMM12)  return 1;
05019     if (SubRegNo == X86::XMM12)  return 2;
05020     if (SubRegNo == X86::XMM12)  return 3;
05021     return 0;
05022   case X86::YMM13:
05023     if (SubRegNo == X86::XMM13)  return 1;
05024     if (SubRegNo == X86::XMM13)  return 2;
05025     if (SubRegNo == X86::XMM13)  return 3;
05026     return 0;
05027   case X86::YMM14:
05028     if (SubRegNo == X86::XMM14)  return 1;
05029     if (SubRegNo == X86::XMM14)  return 2;
05030     if (SubRegNo == X86::XMM14)  return 3;
05031     return 0;
05032   case X86::YMM15:
05033     if (SubRegNo == X86::XMM15)  return 1;
05034     if (SubRegNo == X86::XMM15)  return 2;
05035     if (SubRegNo == X86::XMM15)  return 3;
05036     return 0;
05037   };
05038   return 0;
05039 }
05040 
05041 X86GenRegisterInfo::X86GenRegisterInfo(int CallFrameSetupOpcode, int CallFrameDestroyOpcode)
05042   : TargetRegisterInfo(RegisterDescriptors, 159, RegisterClasses, RegisterClasses+31,
05043                   CallFrameSetupOpcode, CallFrameDestroyOpcode,
05044                  SubregHashTable, SubregHashTableSize,
05045                  SuperregHashTable, SuperregHashTableSize,
05046                  AliasesHashTable, AliasesHashTableSize) {
05047 }
05048 
05049 int X86GenRegisterInfo::getDwarfRegNumFull(unsigned RegNum, unsigned Flavour) const {
05050   switch (Flavour) {
05051   default:
05052     assert(0 && "Unknown DWARF flavour");
05053     return -1;
05054   case 0:
05055     switch (RegNum) {
05056     default:
05057       assert(0 && "Invalid RegNum");
05058       return -1;
05059     case X86::AH:
05060       return 0;
05061     case X86::AL:
05062       return 0;
05063     case X86::AX:
05064       return 0;
05065     case X86::BH:
05066       return 3;
05067     case X86::BL:
05068       return 3;
05069     case X86::BP:
05070       return 6;
05071     case X86::BPL:
05072       return 6;
05073     case X86::BX:
05074       return 3;
05075     case X86::CH:
05076       return 2;
05077     case X86::CL:
05078       return 2;
05079     case X86::CS:
05080       return -1;
05081     case X86::CX:
05082       return 2;
05083     case X86::DH:
05084       return 1;
05085     case X86::DI:
05086       return 5;
05087     case X86::DIL:
05088       return 5;
05089     case X86::DL:
05090       return 1;
05091     case X86::DR0:
05092       return -1;
05093     case X86::DR1:
05094       return -1;
05095     case X86::DR2:
05096       return -1;
05097     case X86::DR3:
05098       return -1;
05099     case X86::DR4:
05100       return -1;
05101     case X86::DR5:
05102       return -1;
05103     case X86::DR6:
05104       return -1;
05105     case X86::DR7:
05106       return -1;
05107     case X86::DS:
05108       return -1;
05109     case X86::DX:
05110       return 1;
05111     case X86::EAX:
05112       return 0;
05113     case X86::EBP:
05114       return 6;
05115     case X86::EBX:
05116       return 3;
05117     case X86::ECR0:
05118       return -1;
05119     case X86::ECR1:
05120       return -1;
05121     case X86::ECR2:
05122       return -1;
05123     case X86::ECR3:
05124       return -1;
05125     case X86::ECR4:
05126       return -1;
05127     case X86::ECR5:
05128       return -1;
05129     case X86::ECR6:
05130       return -1;
05131     case X86::ECR7:
05132       return -1;
05133     case X86::ECX:
05134       return 2;
05135     case X86::EDI:
05136       return 5;
05137     case X86::EDX:
05138       return 1;
05139     case X86::EFLAGS:
05140       return -1;
05141     case X86::EIP:
05142       return 16;
05143     case X86::ES:
05144       return -1;
05145     case X86::ESI:
05146       return 4;
05147     case X86::ESP:
05148       return 7;
05149     case X86::FP0:
05150       return -1;
05151     case X86::FP1:
05152       return -1;
05153     case X86::FP2:
05154       return -1;
05155     case X86::FP3:
05156       return -1;
05157     case X86::FP4:
05158       return -1;
05159     case X86::FP5:
05160       return -1;
05161     case X86::FP6:
05162       return -1;
05163     case X86::FS:
05164       return -1;
05165     case X86::GS:
05166       return -1;
05167     case X86::IP:
05168       return 16;
05169     case X86::MM0:
05170       return 41;
05171     case X86::MM1:
05172       return 42;
05173     case X86::MM2:
05174       return 43;
05175     case X86::MM3:
05176       return 44;
05177     case X86::MM4:
05178       return 45;
05179     case X86::MM5:
05180       return 46;
05181     case X86::MM6:
05182       return 47;
05183     case X86::MM7:
05184       return 48;
05185     case X86::R10:
05186       return 10;
05187     case X86::R10B:
05188       return 10;
05189     case X86::R10D:
05190       return 10;
05191     case X86::R10W:
05192       return 10;
05193     case X86::R11:
05194       return 11;
05195     case X86::R11B:
05196       return 11;
05197     case X86::R11D:
05198       return 11;
05199     case X86::R11W:
05200       return 11;
05201     case X86::R12:
05202       return 12;
05203     case X86::R12B:
05204       return 12;
05205     case X86::R12D:
05206       return 12;
05207     case X86::R12W:
05208       return 12;
05209     case X86::R13:
05210       return 13;
05211     case X86::R13B:
05212       return 13;
05213     case X86::R13D:
05214       return 13;
05215     case X86::R13W:
05216       return 13;
05217     case X86::R14:
05218       return 14;
05219     case X86::R14B:
05220       return 14;
05221     case X86::R14D:
05222       return 14;
05223     case X86::R14W:
05224       return 14;
05225     case X86::R15:
05226       return 15;
05227     case X86::R15B:
05228       return 15;
05229     case X86::R15D:
05230       return 15;
05231     case X86::R15W:
05232       return 15;
05233     case X86::R8:
05234       return 8;
05235     case X86::R8B:
05236       return 8;
05237     case X86::R8D:
05238       return 8;
05239     case X86::R8W:
05240       return 8;
05241     case X86::R9:
05242       return 9;
05243     case X86::R9B:
05244       return 9;
05245     case X86::R9D:
05246       return 9;
05247     case X86::R9W:
05248       return 9;
05249     case X86::RAX:
05250       return 0;
05251     case X86::RBP:
05252       return 6;
05253     case X86::RBX:
05254       return 3;
05255     case X86::RCR0:
05256       return -1;
05257     case X86::RCR1:
05258       return -1;
05259     case X86::RCR2:
05260       return -1;
05261     case X86::RCR3:
05262       return -1;
05263     case X86::RCR4:
05264       return -1;
05265     case X86::RCR5:
05266       return -1;
05267     case X86::RCR6:
05268       return -1;
05269     case X86::RCR7:
05270       return -1;
05271     case X86::RCR8:
05272       return -1;
05273     case X86::RCX:
05274       return 2;
05275     case X86::RDI:
05276       return 5;
05277     case X86::RDX:
05278       return 1;
05279     case X86::RIP:
05280       return 16;
05281     case X86::RSI:
05282       return 4;
05283     case X86::RSP:
05284       return 7;
05285     case X86::SI:
05286       return 4;
05287     case X86::SIL:
05288       return 4;
05289     case X86::SP:
05290       return 7;
05291     case X86::SPL:
05292       return 7;
05293     case X86::SS:
05294       return -1;
05295     case X86::ST0:
05296       return 33;
05297     case X86::ST1:
05298       return 34;
05299     case X86::ST2:
05300       return 35;
05301     case X86::ST3:
05302       return 36;
05303     case X86::ST4:
05304       return 37;
05305     case X86::ST5:
05306       return 38;
05307     case X86::ST6:
05308       return 39;
05309     case X86::ST7:
05310       return 40;
05311     case X86::XMM0:
05312       return 17;
05313     case X86::XMM1:
05314       return 18;
05315     case X86::XMM10:
05316       return 27;
05317     case X86::XMM11:
05318       return 28;
05319     case X86::XMM12:
05320       return 29;
05321     case X86::XMM13:
05322       return 30;
05323     case X86::XMM14:
05324       return 31;
05325     case X86::XMM15:
05326       return 32;
05327     case X86::XMM2:
05328       return 19;
05329     case X86::XMM3:
05330       return 20;
05331     case X86::XMM4:
05332       return 21;
05333     case X86::XMM5:
05334       return 22;
05335     case X86::XMM6:
05336       return 23;
05337     case X86::XMM7:
05338       return 24;
05339     case X86::XMM8:
05340       return 25;
05341     case X86::XMM9:
05342       return 26;
05343     case X86::YMM0:
05344       return 17;
05345     case X86::YMM1:
05346       return 18;
05347     case X86::YMM10:
05348       return 27;
05349     case X86::YMM11:
05350       return 28;
05351     case X86::YMM12:
05352       return 29;
05353     case X86::YMM13:
05354       return 30;
05355     case X86::YMM14:
05356       return 31;
05357     case X86::YMM15:
05358       return 32;
05359     case X86::YMM2:
05360       return 19;
05361     case X86::YMM3:
05362       return 20;
05363     case X86::YMM4:
05364       return 21;
05365     case X86::YMM5:
05366       return 22;
05367     case X86::YMM6:
05368       return 23;
05369     case X86::YMM7:
05370       return 24;
05371     case X86::YMM8:
05372       return 25;
05373     case X86::YMM9:
05374       return 26;
05375     };
05376   case 1:
05377     switch (RegNum) {
05378     default:
05379       assert(0 && "Invalid RegNum");
05380       return -1;
05381     case X86::AH:
05382       return 0;
05383     case X86::AL:
05384       return 0;
05385     case X86::AX:
05386       return 0;
05387     case X86::BH:
05388       return 3;
05389     case X86::BL:
05390       return 3;
05391     case X86::BP:
05392       return 4;
05393     case X86::BPL:
05394       return 4;
05395     case X86::BX:
05396       return 3;
05397     case X86::CH:
05398       return 1;
05399     case X86::CL:
05400       return 1;
05401     case X86::CS:
05402       return -1;
05403     case X86::CX:
05404       return 1;
05405     case X86::DH:
05406       return 2;
05407     case X86::DI:
05408       return 7;
05409     case X86::DIL:
05410       return 7;
05411     case X86::DL:
05412       return 2;
05413     case X86::DR0:
05414       return -1;
05415     case X86::DR1:
05416       return -1;
05417     case X86::DR2:
05418       return -1;
05419     case X86::DR3:
05420       return -1;
05421     case X86::DR4:
05422       return -1;
05423     case X86::DR5:
05424       return -1;
05425     case X86::DR6:
05426       return -1;
05427     case X86::DR7:
05428       return -1;
05429     case X86::DS:
05430       return -1;
05431     case X86::DX:
05432       return 2;
05433     case X86::EAX:
05434       return 0;
05435     case X86::EBP:
05436       return 4;
05437     case X86::EBX:
05438       return 3;
05439     case X86::ECR0:
05440       return -1;
05441     case X86::ECR1:
05442       return -1;
05443     case X86::ECR2:
05444       return -1;
05445     case X86::ECR3:
05446       return -1;
05447     case X86::ECR4:
05448       return -1;
05449     case X86::ECR5:
05450       return -1;
05451     case X86::ECR6:
05452       return -1;
05453     case X86::ECR7:
05454       return -1;
05455     case X86::ECX:
05456       return 1;
05457     case X86::EDI:
05458       return 7;
05459     case X86::EDX:
05460       return 2;
05461     case X86::EFLAGS:
05462       return -1;
05463     case X86::EIP:
05464       return 8;
05465     case X86::ES:
05466       return -1;
05467     case X86::ESI:
05468       return 6;
05469     case X86::ESP:
05470       return 5;
05471     case X86::FP0:
05472       return -1;
05473     case X86::FP1:
05474       return -1;
05475     case X86::FP2:
05476       return -1;
05477     case X86::FP3:
05478       return -1;
05479     case X86::FP4:
05480       return -1;
05481     case X86::FP5:
05482       return -1;
05483     case X86::FP6:
05484       return -1;
05485     case X86::FS:
05486       return -1;
05487     case X86::GS:
05488       return -1;
05489     case X86::IP:
05490       return -1;
05491     case X86::MM0:
05492       return 29;
05493     case X86::MM1:
05494       return 30;
05495     case X86::MM2:
05496       return 31;
05497     case X86::MM3:
05498       return 32;
05499     case X86::MM4:
05500       return 33;
05501     case X86::MM5:
05502       return 34;
05503     case X86::MM6:
05504       return 35;
05505     case X86::MM7:
05506       return 36;
05507     case X86::R10:
05508       assert(0 && "Invalid register for this mode");
05509       return -1;
05510     case X86::R10B:
05511       assert(0 && "Invalid register for this mode");
05512       return -1;
05513     case X86::R10D:
05514       assert(0 && "Invalid register for this mode");
05515       return -1;
05516     case X86::R10W:
05517       assert(0 && "Invalid register for this mode");
05518       return -1;
05519     case X86::R11:
05520       assert(0 && "Invalid register for this mode");
05521       return -1;
05522     case X86::R11B:
05523       assert(0 && "Invalid register for this mode");
05524       return -1;
05525     case X86::R11D:
05526       assert(0 && "Invalid register for this mode");
05527       return -1;
05528     case X86::R11W:
05529       assert(0 && "Invalid register for this mode");
05530       return -1;
05531     case X86::R12:
05532       assert(0 && "Invalid register for this mode");
05533       return -1;
05534     case X86::R12B:
05535       assert(0 && "Invalid register for this mode");
05536       return -1;
05537     case X86::R12D:
05538       assert(0 && "Invalid register for this mode");
05539       return -1;
05540     case X86::R12W:
05541       assert(0 && "Invalid register for this mode");
05542       return -1;
05543     case X86::R13:
05544       assert(0 && "Invalid register for this mode");
05545       return -1;
05546     case X86::R13B:
05547       assert(0 && "Invalid register for this mode");
05548       return -1;
05549     case X86::R13D:
05550       assert(0 && "Invalid register for this mode");
05551       return -1;
05552     case X86::R13W:
05553       assert(0 && "Invalid register for this mode");
05554       return -1;
05555     case X86::R14:
05556       assert(0 && "Invalid register for this mode");
05557       return -1;
05558     case X86::R14B:
05559       assert(0 && "Invalid register for this mode");
05560       return -1;
05561     case X86::R14D:
05562       assert(0 && "Invalid register for this mode");
05563       return -1;
05564     case X86::R14W:
05565       assert(0 && "Invalid register for this mode");
05566       return -1;
05567     case X86::R15:
05568       assert(0 && "Invalid register for this mode");
05569       return -1;
05570     case X86::R15B:
05571       assert(0 && "Invalid register for this mode");
05572       return -1;
05573     case X86::R15D:
05574       assert(0 && "Invalid register for this mode");
05575       return -1;
05576     case X86::R15W:
05577       assert(0 && "Invalid register for this mode");
05578       return -1;
05579     case X86::R8:
05580       assert(0 && "Invalid register for this mode");
05581       return -1;
05582     case X86::R8B:
05583       assert(0 && "Invalid register for this mode");
05584       return -1;
05585     case X86::R8D:
05586       assert(0 && "Invalid register for this mode");
05587       return -1;
05588     case X86::R8W:
05589       assert(0 && "Invalid register for this mode");
05590       return -1;
05591     case X86::R9:
05592       assert(0 && "Invalid register for this mode");
05593       return -1;
05594     case X86::R9B:
05595       assert(0 && "Invalid register for this mode");
05596       return -1;
05597     case X86::R9D:
05598       assert(0 && "Invalid register for this mode");
05599       return -1;
05600     case X86::R9W:
05601       assert(0 && "Invalid register for this mode");
05602       return -1;
05603     case X86::RAX:
05604       assert(0 && "Invalid register for this mode");
05605       return -1;
05606     case X86::RBP:
05607       assert(0 && "Invalid register for this mode");
05608       return -1;
05609     case X86::RBX:
05610       assert(0 && "Invalid register for this mode");
05611       return -1;
05612     case X86::RCR0:
05613       return -1;
05614     case X86::RCR1:
05615       return -1;
05616     case X86::RCR2:
05617       return -1;
05618     case X86::RCR3:
05619       return -1;
05620     case X86::RCR4:
05621       return -1;
05622     case X86::RCR5:
05623       return -1;
05624     case X86::RCR6:
05625       return -1;
05626     case X86::RCR7:
05627       return -1;
05628     case X86::RCR8:
05629       return -1;
05630     case X86::RCX:
05631       assert(0 && "Invalid register for this mode");
05632       return -1;
05633     case X86::RDI:
05634       assert(0 && "Invalid register for this mode");
05635       return -1;
05636     case X86::RDX:
05637       assert(0 && "Invalid register for this mode");
05638       return -1;
05639     case X86::RIP:
05640       assert(0 && "Invalid register for this mode");
05641       return -1;
05642     case X86::RSI:
05643       assert(0 && "Invalid register for this mode");
05644       return -1;
05645     case X86::RSP:
05646       assert(0 && "Invalid register for this mode");
05647       return -1;
05648     case X86::SI:
05649       return 6;
05650     case X86::SIL:
05651       return 6;
05652     case X86::SP:
05653       return 5;
05654     case X86::SPL:
05655       return 5;
05656     case X86::SS:
05657       return -1;
05658     case X86::ST0:
05659       return 12;
05660     case X86::ST1:
05661       return 13;
05662     case X86::ST2:
05663       return 14;
05664     case X86::ST3:
05665       return 15;
05666     case X86::ST4:
05667       return 16;
05668     case X86::ST5:
05669       return 17;
05670     case X86::ST6:
05671       return 18;
05672     case X86::ST7:
05673       return 19;
05674     case X86::XMM0:
05675       return 21;
05676     case X86::XMM1:
05677       return 22;
05678     case X86::XMM10:
05679       assert(0 && "Invalid register for this mode");
05680       return -1;
05681     case X86::XMM11:
05682       assert(0 && "Invalid register for this mode");
05683       return -1;
05684     case X86::XMM12:
05685       assert(0 && "Invalid register for this mode");
05686       return -1;
05687     case X86::XMM13:
05688       assert(0 && "Invalid register for this mode");
05689       return -1;
05690     case X86::XMM14:
05691       assert(0 && "Invalid register for this mode");
05692       return -1;
05693     case X86::XMM15:
05694       assert(0 && "Invalid register for this mode");
05695       return -1;
05696     case X86::XMM2:
05697       return 23;
05698     case X86::XMM3:
05699       return 24;
05700     case X86::XMM4:
05701       return 25;
05702     case X86::XMM5:
05703       return 26;
05704     case X86::XMM6:
05705       return 27;
05706     case X86::XMM7:
05707       return 28;
05708     case X86::XMM8:
05709       assert(0 && "Invalid register for this mode");
05710       return -1;
05711     case X86::XMM9:
05712       assert(0 && "Invalid register for this mode");
05713       return -1;
05714     case X86::YMM0:
05715       return 21;
05716     case X86::YMM1:
05717       return 22;
05718     case X86::YMM10:
05719       assert(0 && "Invalid register for this mode");
05720       return -1;
05721     case X86::YMM11:
05722       assert(0 && "Invalid register for this mode");
05723       return -1;
05724     case X86::YMM12:
05725       assert(0 && "Invalid register for this mode");
05726       return -1;
05727     case X86::YMM13:
05728       assert(0 && "Invalid register for this mode");
05729       return -1;
05730     case X86::YMM14:
05731       assert(0 && "Invalid register for this mode");
05732       return -1;
05733     case X86::YMM15:
05734       assert(0 && "Invalid register for this mode");
05735       return -1;
05736     case X86::YMM2:
05737       return 23;
05738     case X86::YMM3:
05739       return 24;
05740     case X86::YMM4:
05741       return 25;
05742     case X86::YMM5:
05743       return 26;
05744     case X86::YMM6:
05745       return 27;
05746     case X86::YMM7:
05747       return 28;
05748     case X86::YMM8:
05749       assert(0 && "Invalid register for this mode");
05750       return -1;
05751     case X86::YMM9:
05752       assert(0 && "Invalid register for this mode");
05753       return -1;
05754     };
05755   case 2:
05756     switch (RegNum) {
05757     default:
05758       assert(0 && "Invalid RegNum");
05759       return -1;
05760     case X86::AH:
05761       return 0;
05762     case X86::AL:
05763       return 0;
05764     case X86::AX:
05765       return 0;
05766     case X86::BH:
05767       return 3;
05768     case X86::BL:
05769       return 3;
05770     case X86::BP:
05771       return 5;
05772     case X86::BPL:
05773       return 5;
05774     case X86::BX:
05775       return 3;
05776     case X86::CH:
05777       return 1;
05778     case X86::CL:
05779       return 1;
05780     case X86::CS:
05781       return -1;
05782     case X86::CX:
05783       return 1;
05784     case X86::DH:
05785       return 2;
05786     case X86::DI:
05787       return 7;
05788     case X86::DIL:
05789       return 7;
05790     case X86::DL:
05791       return 2;
05792     case X86::DR0:
05793       return -1;
05794     case X86::DR1:
05795       return -1;
05796     case X86::DR2:
05797       return -1;
05798     case X86::DR3:
05799       return -1;
05800     case X86::DR4:
05801       return -1;
05802     case X86::DR5:
05803       return -1;
05804     case X86::DR6:
05805       return -1;
05806     case X86::DR7:
05807       return -1;
05808     case X86::DS:
05809       return -1;
05810     case X86::DX:
05811       return 2;
05812     case X86::EAX:
05813       return 0;
05814     case X86::EBP:
05815       return 5;
05816     case X86::EBX:
05817       return 3;
05818     case X86::ECR0:
05819       return -1;
05820     case X86::ECR1:
05821       return -1;
05822     case X86::ECR2:
05823       return -1;
05824     case X86::ECR3:
05825       return -1;
05826     case X86::ECR4:
05827       return -1;
05828     case X86::ECR5:
05829       return -1;
05830     case X86::ECR6:
05831       return -1;
05832     case X86::ECR7:
05833       return -1;
05834     case X86::ECX:
05835       return 1;
05836     case X86::EDI:
05837       return 7;
05838     case X86::EDX:
05839       return 2;
05840     case X86::EFLAGS:
05841       return -1;
05842     case X86::EIP:
05843       return 8;
05844     case X86::ES:
05845       return -1;
05846     case X86::ESI:
05847       return 6;
05848     case X86::ESP:
05849       return 4;
05850     case X86::FP0:
05851       return -1;
05852     case X86::FP1:
05853       return -1;
05854     case X86::FP2:
05855       return -1;
05856     case X86::FP3:
05857       return -1;
05858     case X86::FP4:
05859       return -1;
05860     case X86::FP5:
05861       return -1;
05862     case X86::FP6:
05863       return -1;
05864     case X86::FS:
05865       return -1;
05866     case X86::GS:
05867       return -1;
05868     case X86::IP:
05869       return -1;
05870     case X86::MM0:
05871       return 29;
05872     case X86::MM1:
05873       return 30;
05874     case X86::MM2:
05875       return 31;
05876     case X86::MM3:
05877       return 32;
05878     case X86::MM4:
05879       return 33;
05880     case X86::MM5:
05881       return 34;
05882     case X86::MM6:
05883       return 35;
05884     case X86::MM7:
05885       return 36;
05886     case X86::R10:
05887       assert(0 && "Invalid register for this mode");
05888       return -1;
05889     case X86::R10B:
05890       assert(0 && "Invalid register for this mode");
05891       return -1;
05892     case X86::R10D:
05893       assert(0 && "Invalid register for this mode");
05894       return -1;
05895     case X86::R10W:
05896       assert(0 && "Invalid register for this mode");
05897       return -1;
05898     case X86::R11:
05899       assert(0 && "Invalid register for this mode");
05900       return -1;
05901     case X86::R11B:
05902       assert(0 && "Invalid register for this mode");
05903       return -1;
05904     case X86::R11D:
05905       assert(0 && "Invalid register for this mode");
05906       return -1;
05907     case X86::R11W:
05908       assert(0 && "Invalid register for this mode");
05909       return -1;
05910     case X86::R12:
05911       assert(0 && "Invalid register for this mode");
05912       return -1;
05913     case X86::R12B:
05914       assert(0 && "Invalid register for this mode");
05915       return -1;
05916     case X86::R12D:
05917       assert(0 && "Invalid register for this mode");
05918       return -1;
05919     case X86::R12W:
05920       assert(0 && "Invalid register for this mode");
05921       return -1;
05922     case X86::R13:
05923       assert(0 && "Invalid register for this mode");
05924       return -1;
05925     case X86::R13B:
05926       assert(0 && "Invalid register for this mode");
05927       return -1;
05928     case X86::R13D:
05929       assert(0 && "Invalid register for this mode");
05930       return -1;
05931     case X86::R13W:
05932       assert(0 && "Invalid register for this mode");
05933       return -1;
05934     case X86::R14:
05935       assert(0 && "Invalid register for this mode");
05936       return -1;
05937     case X86::R14B:
05938       assert(0 && "Invalid register for this mode");
05939       return -1;
05940     case X86::R14D:
05941       assert(0 && "Invalid register for this mode");
05942       return -1;
05943     case X86::R14W:
05944       assert(0 && "Invalid register for this mode");
05945       return -1;
05946     case X86::R15:
05947       assert(0 && "Invalid register for this mode");
05948       return -1;
05949     case X86::R15B:
05950       assert(0 && "Invalid register for this mode");
05951       return -1;
05952     case X86::R15D:
05953       assert(0 && "Invalid register for this mode");
05954       return -1;
05955     case X86::R15W:
05956       assert(0 && "Invalid register for this mode");
05957       return -1;
05958     case X86::R8:
05959       assert(0 && "Invalid register for this mode");
05960       return -1;
05961     case X86::R8B:
05962       assert(0 && "Invalid register for this mode");
05963       return -1;
05964     case X86::R8D:
05965       assert(0 && "Invalid register for this mode");
05966       return -1;
05967     case X86::R8W:
05968       assert(0 && "Invalid register for this mode");
05969       return -1;
05970     case X86::R9:
05971       assert(0 && "Invalid register for this mode");
05972       return -1;
05973     case X86::R9B:
05974       assert(0 && "Invalid register for this mode");
05975       return -1;
05976     case X86::R9D:
05977       assert(0 && "Invalid register for this mode");
05978       return -1;
05979     case X86::R9W:
05980       assert(0 && "Invalid register for this mode");
05981       return -1;
05982     case X86::RAX:
05983       assert(0 && "Invalid register for this mode");
05984       return -1;
05985     case X86::RBP:
05986       assert(0 && "Invalid register for this mode");
05987       return -1;
05988     case X86::RBX:
05989       assert(0 && "Invalid register for this mode");
05990       return -1;
05991     case X86::RCR0:
05992       return -1;
05993     case X86::RCR1:
05994       return -1;
05995     case X86::RCR2:
05996       return -1;
05997     case X86::RCR3:
05998       return -1;
05999     case X86::RCR4:
06000       return -1;
06001     case X86::RCR5:
06002       return -1;
06003     case X86::RCR6:
06004       return -1;
06005     case X86::RCR7:
06006       return -1;
06007     case X86::RCR8:
06008       return -1;
06009     case X86::RCX:
06010       assert(0 && "Invalid register for this mode");
06011       return -1;
06012     case X86::RDI:
06013       assert(0 && "Invalid register for this mode");
06014       return -1;
06015     case X86::RDX:
06016       assert(0 && "Invalid register for this mode");
06017       return -1;
06018     case X86::RIP:
06019       assert(0 && "Invalid register for this mode");
06020       return -1;
06021     case X86::RSI:
06022       assert(0 && "Invalid register for this mode");
06023       return -1;
06024     case X86::RSP:
06025       assert(0 && "Invalid register for this mode");
06026       return -1;
06027     case X86::SI:
06028       return 6;
06029     case X86::SIL:
06030       return 6;
06031     case X86::SP:
06032       return 4;
06033     case X86::SPL:
06034       return 4;
06035     case X86::SS:
06036       return -1;
06037     case X86::ST0:
06038       return 11;
06039     case X86::ST1:
06040       return 12;
06041     case X86::ST2:
06042       return 13;
06043     case X86::ST3:
06044       return 14;
06045     case X86::ST4:
06046       return 15;
06047     case X86::ST5:
06048       return 16;
06049     case X86::ST6:
06050       return 17;
06051     case X86::ST7:
06052       return 18;
06053     case X86::XMM0:
06054       return 21;
06055     case X86::XMM1:
06056       return 22;
06057     case X86::XMM10:
06058       assert(0 && "Invalid register for this mode");
06059       return -1;
06060     case X86::XMM11:
06061       assert(0 && "Invalid register for this mode");
06062       return -1;
06063     case X86::XMM12:
06064       assert(0 && "Invalid register for this mode");
06065       return -1;
06066     case X86::XMM13:
06067       assert(0 && "Invalid register for this mode");
06068       return -1;
06069     case X86::XMM14:
06070       assert(0 && "Invalid register for this mode");
06071       return -1;
06072     case X86::XMM15:
06073       assert(0 && "Invalid register for this mode");
06074       return -1;
06075     case X86::XMM2:
06076       return 23;
06077     case X86::XMM3:
06078       return 24;
06079     case X86::XMM4:
06080       return 25;
06081     case X86::XMM5:
06082       return 26;
06083     case X86::XMM6:
06084       return 27;
06085     case X86::XMM7:
06086       return 28;
06087     case X86::XMM8:
06088       assert(0 && "Invalid register for this mode");
06089       return -1;
06090     case X86::XMM9:
06091       assert(0 && "Invalid register for this mode");
06092       return -1;
06093     case X86::YMM0:
06094       return 21;
06095     case X86::YMM1:
06096       return 22;
06097     case X86::YMM10:
06098       assert(0 && "Invalid register for this mode");
06099       return -1;
06100     case X86::YMM11:
06101       assert(0 && "Invalid register for this mode");
06102       return -1;
06103     case X86::YMM12:
06104       assert(0 && "Invalid register for this mode");
06105       return -1;
06106     case X86::YMM13:
06107       assert(0 && "Invalid register for this mode");
06108       return -1;
06109     case X86::YMM14:
06110       assert(0 && "Invalid register for this mode");
06111       return -1;
06112     case X86::YMM15:
06113       assert(0 && "Invalid register for this mode");
06114       return -1;
06115     case X86::YMM2:
06116       return 23;
06117     case X86::YMM3:
06118       return 24;
06119     case X86::YMM4:
06120       return 25;
06121     case X86::YMM5:
06122       return 26;
06123     case X86::YMM6:
06124       return 27;
06125     case X86::YMM7:
06126       return 28;
06127     case X86::YMM8:
06128       assert(0 && "Invalid register for this mode");
06129       return -1;
06130     case X86::YMM9:
06131       assert(0 && "Invalid register for this mode");
06132       return -1;
06133     };
06134   };
06135 }
06136 
06137 } // End llvm namespace