blob: e5bf2a9dd92fb21c86c0a8f6081ce94a3787560a [file] [log] [blame]
Evan Chengc60f9b72011-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
17namespace llvm {
Evan Cheng78c10ee2011-07-25 23:24:55 +000018class MCAsmBackend;
Evan Cheng966aeb52011-07-25 19:53:23 +000019class MCCodeEmitter;
20class MCContext;
21class MCInstrInfo;
Evan Chengc60f9b72011-07-14 20:59:42 +000022class MCSubtargetInfo;
23class Target;
24class StringRef;
25
26extern Target ThePPC32Target;
27extern Target ThePPC64Target;
28
Evan Cheng966aeb52011-07-25 19:53:23 +000029MCCodeEmitter *createPPCMCCodeEmitter(const MCInstrInfo &MCII,
30 const MCSubtargetInfo &STI,
31 MCContext &Ctx);
32
Evan Cheng78c10ee2011-07-25 23:24:55 +000033MCAsmBackend *createPPCAsmBackend(const Target &T, StringRef TT);
Evan Cheng966aeb52011-07-25 19:53:23 +000034
Evan Chengc60f9b72011-07-14 20:59:42 +000035} // End llvm namespace
36
37// Defines symbolic names for PowerPC registers. This defines a mapping from
38// register name to register number.
39//
40#define GET_REGINFO_ENUM
41#include "PPCGenRegisterInfo.inc"
42
43// Defines symbolic names for the PowerPC instructions.
44//
45#define GET_INSTRINFO_ENUM
46#include "PPCGenInstrInfo.inc"
47
48#define GET_SUBTARGETINFO_ENUM
49#include "PPCGenSubtargetInfo.inc"
50
51#endif