blob: b7fa0646288d489c22a8d038a24e759b58dda626 [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;
Evan Chengbc153d42011-07-14 20:59:42 +000025class MCSubtargetInfo;
26class Target;
27class StringRef;
Rafael Espindola38a400d2011-12-22 01:57:09 +000028class raw_ostream;
Evan Chengbc153d42011-07-14 20:59:42 +000029
30extern Target ThePPC32Target;
31extern Target ThePPC64Target;
32
Evan Cheng61d4a202011-07-25 19:53:23 +000033MCCodeEmitter *createPPCMCCodeEmitter(const MCInstrInfo &MCII,
34 const MCSubtargetInfo &STI,
35 MCContext &Ctx);
36
Evan Cheng5928e692011-07-25 23:24:55 +000037MCAsmBackend *createPPCAsmBackend(const Target &T, StringRef TT);
Rafael Espindola38a400d2011-12-22 01:57:09 +000038
39/// createPPCELFObjectWriter - Construct an PPC ELF object writer.
40MCObjectWriter *createPPCELFObjectWriter(raw_ostream &OS,
41 bool Is64Bit,
42 uint8_t OSABI);
Evan Chengbc153d42011-07-14 20:59:42 +000043} // End llvm namespace
44
45// Defines symbolic names for PowerPC registers. This defines a mapping from
46// register name to register number.
47//
48#define GET_REGINFO_ENUM
49#include "PPCGenRegisterInfo.inc"
50
51// Defines symbolic names for the PowerPC instructions.
52//
53#define GET_INSTRINFO_ENUM
54#include "PPCGenInstrInfo.inc"
55
56#define GET_SUBTARGETINFO_ENUM
57#include "PPCGenSubtargetInfo.inc"
58
59#endif