Add Mode64Bit feature and sink it down to MC layer.
[oota-llvm.git] / lib / Target / X86 / MCTargetDesc / X86MCTargetDesc.h
1 //===-- X86MCTargetDesc.h - X86 Target Descriptions -------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file provides X86 specific target descriptions.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef X86MCTARGETDESC_H
15 #define X86MCTARGETDESC_H
16
17 #include <string>
18
19 namespace llvm {
20 class Target;
21 class StringRef;
22
23 extern Target TheX86_32Target, TheX86_64Target;
24
25 namespace X86_MC {
26   std::string ParseX86Triple(StringRef TT);
27
28   /// GetCpuIDAndInfo - Execute the specified cpuid and return the 4 values in
29   /// the specified arguments.  If we can't run cpuid on the host, return true.
30   bool GetCpuIDAndInfo(unsigned value, unsigned *rEAX,
31                        unsigned *rEBX, unsigned *rECX, unsigned *rEDX);
32
33   void DetectFamilyModel(unsigned EAX, unsigned &Family, unsigned &Model);
34 }
35 } // End llvm namespace
36
37 // Defines symbolic names for X86 registers.  This defines a mapping from
38 // register name to register number.
39 //
40 #define GET_REGINFO_ENUM
41 #include "X86GenRegisterInfo.inc"
42
43 // Defines symbolic names for the X86 instructions.
44 //
45 #define GET_INSTRINFO_ENUM
46 #include "X86GenInstrInfo.inc"
47
48 #endif