blob: 17c905227a7e3de0fba737e011828136be09d3fe [file] [log] [blame]
Evan Cheng3ddfbd32011-07-06 22:01:53 +00001//===-- X86MCTargetDesc.h - X86 Target Descriptions -------------*- C++ -*-===//
Evan Cheng24753312011-06-24 01:44:41 +00002//
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
Evan Cheng3ddfbd32011-07-06 22:01:53 +000014#ifndef X86MCTARGETDESC_H
15#define X86MCTARGETDESC_H
Evan Chengb2681be2011-06-24 23:59:54 +000016
Evan Cheng13bcc6c2011-07-07 21:06:52 +000017#include <string>
18
Evan Chenge862d592011-06-24 20:42:09 +000019namespace llvm {
20class Target;
Evan Cheng13bcc6c2011-07-07 21:06:52 +000021class StringRef;
Evan Chenge862d592011-06-24 20:42:09 +000022
23extern Target TheX86_32Target, TheX86_64Target;
Evan Cheng13bcc6c2011-07-07 21:06:52 +000024
25namespace 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}
Evan Chenge862d592011-06-24 20:42:09 +000035} // End llvm namespace
36
Evan Cheng24753312011-06-24 01:44:41 +000037// Defines symbolic names for X86 registers. This defines a mapping from
38// register name to register number.
39//
Evan Chengd9997ac2011-06-27 18:32:37 +000040#define GET_REGINFO_ENUM
41#include "X86GenRegisterInfo.inc"
Evan Chengb2681be2011-06-24 23:59:54 +000042
Evan Cheng1e210d02011-06-28 20:07:07 +000043// Defines symbolic names for the X86 instructions.
44//
45#define GET_INSTRINFO_ENUM
46#include "X86GenInstrInfo.inc"
47
Evan Chengb2681be2011-06-24 23:59:54 +000048#endif