PPCMCTargetDesc.h revision 234353
1235723Sbapt//===-- PPCMCTargetDesc.h - PowerPC Target Descriptions ---------*- C++ -*-===//
2235723Sbapt//
3268811Sbapt//                     The LLVM Compiler Infrastructure
4268811Sbapt//
5268811Sbapt// This file is distributed under the University of Illinois Open Source
6268811Sbapt// License. See LICENSE.TXT for details.
7268811Sbapt//
8268811Sbapt//===----------------------------------------------------------------------===//
9263227Sjmmv//
10263227Sjmmv// This file provides PowerPC specific target descriptions.
11268811Sbapt//
12263227Sjmmv//===----------------------------------------------------------------------===//
13268811Sbapt
14268811Sbapt#ifndef PPCMCTARGETDESC_H
15263227Sjmmv#define PPCMCTARGETDESC_H
16268811Sbapt
17268811Sbapt#include "llvm/Support/DataTypes.h"
18268811Sbapt
19268811Sbaptnamespace llvm {
20268811Sbaptclass MCAsmBackend;
21268811Sbaptclass MCCodeEmitter;
22268811Sbaptclass MCContext;
23268811Sbaptclass MCInstrInfo;
24268811Sbaptclass MCObjectWriter;
25268811Sbaptclass MCSubtargetInfo;
26268811Sbaptclass Target;
27268811Sbaptclass StringRef;
28268811Sbaptclass raw_ostream;
29268811Sbapt
30268811Sbaptextern Target ThePPC32Target;
31268811Sbaptextern Target ThePPC64Target;
32268811Sbapt
33268811SbaptMCCodeEmitter *createPPCMCCodeEmitter(const MCInstrInfo &MCII,
34268811Sbapt                                      const MCSubtargetInfo &STI,
35268811Sbapt                                      MCContext &Ctx);
36268811Sbapt
37268811SbaptMCAsmBackend *createPPCAsmBackend(const Target &T, StringRef TT);
38268811Sbapt
39268811Sbapt/// createPPCELFObjectWriter - Construct an PPC ELF object writer.
40268811SbaptMCObjectWriter *createPPCELFObjectWriter(raw_ostream &OS,
41268811Sbapt                                         bool Is64Bit,
42268811Sbapt                                         uint8_t OSABI);
43268811Sbapt} // End llvm namespace
44268811Sbapt
45268811Sbapt// Defines symbolic names for PowerPC registers.  This defines a mapping from
46268811Sbapt// register name to register number.
47268811Sbapt//
48268811Sbapt#define GET_REGINFO_ENUM
49268811Sbapt#include "PPCGenRegisterInfo.inc"
50268811Sbapt
51268811Sbapt// Defines symbolic names for the PowerPC instructions.
52268811Sbapt//
53268811Sbapt#define GET_INSTRINFO_ENUM
54268811Sbapt#include "PPCGenInstrInfo.inc"
55268811Sbapt
56268811Sbapt#define GET_SUBTARGETINFO_ENUM
57268811Sbapt#include "PPCGenSubtargetInfo.inc"
58268811Sbapt
59268811Sbapt#endif
60268811Sbapt