SparcMCTargetDesc.h revision 262613
1224133Sdim//===-- SparcMCTargetDesc.h - Sparc Target Descriptions ---------*- C++ -*-===//
2224133Sdim//
3224133Sdim//                     The LLVM Compiler Infrastructure
4224133Sdim//
5224133Sdim// This file is distributed under the University of Illinois Open Source
6224133Sdim// License. See LICENSE.TXT for details.
7224133Sdim//
8224133Sdim//===----------------------------------------------------------------------===//
9224133Sdim//
10224133Sdim// This file provides Sparc specific target descriptions.
11224133Sdim//
12224133Sdim//===----------------------------------------------------------------------===//
13224133Sdim
14224133Sdim#ifndef SPARCMCTARGETDESC_H
15224133Sdim#define SPARCMCTARGETDESC_H
16224133Sdim
17262613Sdim#include "llvm/Support/DataTypes.h"
18262613Sdim
19224133Sdimnamespace llvm {
20262613Sdimclass MCAsmBackend;
21262613Sdimclass MCCodeEmitter;
22262613Sdimclass MCContext;
23262613Sdimclass MCInstrInfo;
24262613Sdimclass MCObjectWriter;
25262613Sdimclass MCRegisterInfo;
26262613Sdimclass MCSubtargetInfo;
27224133Sdimclass Target;
28262613Sdimclass StringRef;
29262613Sdimclass raw_ostream;
30224133Sdim
31224133Sdimextern Target TheSparcTarget;
32224133Sdimextern Target TheSparcV9Target;
33224133Sdim
34262613SdimMCCodeEmitter *createSparcMCCodeEmitter(const MCInstrInfo &MCII,
35262613Sdim                                        const MCRegisterInfo &MRI,
36262613Sdim                                        const MCSubtargetInfo &STI,
37262613Sdim                                        MCContext &Ctx);
38262613SdimMCAsmBackend *createSparcAsmBackend(const Target &T,
39262613Sdim                                    const MCRegisterInfo &MRI,
40262613Sdim                                    StringRef TT,
41262613Sdim                                    StringRef CPU);
42262613SdimMCObjectWriter *createSparcELFObjectWriter(raw_ostream &OS,
43262613Sdim                                           bool Is64Bit,
44262613Sdim                                           uint8_t OSABI);
45224133Sdim} // End llvm namespace
46224133Sdim
47224133Sdim// Defines symbolic names for Sparc registers.  This defines a mapping from
48224133Sdim// register name to register number.
49224133Sdim//
50224133Sdim#define GET_REGINFO_ENUM
51224133Sdim#include "SparcGenRegisterInfo.inc"
52224133Sdim
53224133Sdim// Defines symbolic names for the Sparc instructions.
54224133Sdim//
55224133Sdim#define GET_INSTRINFO_ENUM
56224133Sdim#include "SparcGenInstrInfo.inc"
57224133Sdim
58224133Sdim#define GET_SUBTARGETINFO_ENUM
59224133Sdim#include "SparcGenSubtargetInfo.inc"
60224133Sdim
61224133Sdim#endif
62