blob: 7162e158f033bd5f8909cafb164d4973b855d582 [file] [log] [blame]
Evan Chengbc153d42011-07-14 20:59:42 +00001//===-- PPCMCTargetDesc.h - PowerPC 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 PowerPC specific target descriptions.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef PPCMCTARGETDESC_H
15#define PPCMCTARGETDESC_H
16
Rafael Espindola38a400d2011-12-22 01:57:09 +000017#include "llvm/Support/DataTypes.h"
18
Evan Chengbc153d42011-07-14 20:59:42 +000019namespace llvm {
Evan Cheng5928e692011-07-25 23:24:55 +000020class MCAsmBackend;
Evan Cheng61d4a202011-07-25 19:53:23 +000021class MCCodeEmitter;
22class MCContext;
23class MCInstrInfo;
Rafael Espindola38a400d2011-12-22 01:57:09 +000024class MCObjectWriter;
Jim Grosbachc3b04272012-05-15 17:35:52 +000025class MCRegisterInfo;
Evan Chengbc153d42011-07-14 20:59:42 +000026class MCSubtargetInfo;
27class Target;
28class StringRef;
Rafael Espindola38a400d2011-12-22 01:57:09 +000029class raw_ostream;
Evan Chengbc153d42011-07-14 20:59:42 +000030
31extern Target ThePPC32Target;
32extern Target ThePPC64Target;
33
Evan Cheng61d4a202011-07-25 19:53:23 +000034MCCodeEmitter *createPPCMCCodeEmitter(const MCInstrInfo &MCII,
Jim Grosbachc3b04272012-05-15 17:35:52 +000035 const MCRegisterInfo &MRI,
Evan Cheng61d4a202011-07-25 19:53:23 +000036 const MCSubtargetInfo &STI,
37 MCContext &Ctx);
38
Evan Cheng5928e692011-07-25 23:24:55 +000039MCAsmBackend *createPPCAsmBackend(const Target &T, StringRef TT);
Rafael Espindola38a400d2011-12-22 01:57:09 +000040
41/// createPPCELFObjectWriter - Construct an PPC ELF object writer.
42MCObjectWriter *createPPCELFObjectWriter(raw_ostream &OS,
43 bool Is64Bit,
44 uint8_t OSABI);
Evan Chengbc153d42011-07-14 20:59:42 +000045} // End llvm namespace
46
47// Defines symbolic names for PowerPC registers. This defines a mapping from
48// register name to register number.
49//
50#define GET_REGINFO_ENUM
51#include "PPCGenRegisterInfo.inc"
52
53// Defines symbolic names for the PowerPC instructions.
54//
55#define GET_INSTRINFO_ENUM
56#include "PPCGenInstrInfo.inc"
57
58#define GET_SUBTARGETINFO_ENUM
59#include "PPCGenSubtargetInfo.inc"
60
61#endif