[Sparc] Add initial implementation of MC Code emitter for sparc.
[oota-llvm.git] / lib / Target / Sparc / MCTargetDesc / SparcMCTargetDesc.h
1 //===-- SparcMCTargetDesc.h - Sparc 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 Sparc specific target descriptions.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef SPARCMCTARGETDESC_H
15 #define SPARCMCTARGETDESC_H
16
17 namespace llvm {
18 class MCAsmBackend;
19 class MCCodeEmitter;
20 class MCContext;
21 class MCInstrInfo;
22 class MCRegisterInfo;
23 class MCSubtargetInfo;
24 class Target;
25 class StringRef;
26
27 extern Target TheSparcTarget;
28 extern Target TheSparcV9Target;
29
30 MCCodeEmitter *createSparcMCCodeEmitter(const MCInstrInfo &MCII,
31                                         const MCRegisterInfo &MRI,
32                                         const MCSubtargetInfo &STI,
33                                         MCContext &Ctx);
34 MCAsmBackend *createSparcAsmBackend(const Target &T,
35                                     const MCRegisterInfo &MRI,
36                                     StringRef TT,
37                                     StringRef CPU);
38
39 } // End llvm namespace
40
41 // Defines symbolic names for Sparc registers.  This defines a mapping from
42 // register name to register number.
43 //
44 #define GET_REGINFO_ENUM
45 #include "SparcGenRegisterInfo.inc"
46
47 // Defines symbolic names for the Sparc instructions.
48 //
49 #define GET_INSTRINFO_ENUM
50 #include "SparcGenInstrInfo.inc"
51
52 #define GET_SUBTARGETINFO_ENUM
53 #include "SparcGenSubtargetInfo.inc"
54
55 #endif