blob: cdd4b4e43485c11e7e5f5859b4a3896be95006f8 [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
Evan Cheng966aeb52011-07-25 19:53:23 +000017#include <string>
18
Evan Chengc60f9b72011-07-14 20:59:42 +000019namespace llvm {
Evan Cheng966aeb52011-07-25 19:53:23 +000020class MCCodeEmitter;
21class MCContext;
22class MCInstrInfo;
Evan Chengc60f9b72011-07-14 20:59:42 +000023class MCSubtargetInfo;
24class Target;
Evan Cheng966aeb52011-07-25 19:53:23 +000025class TargetAsmBackend;
Evan Chengc60f9b72011-07-14 20:59:42 +000026class StringRef;
27
28extern Target ThePPC32Target;
29extern Target ThePPC64Target;
30
Evan Cheng966aeb52011-07-25 19:53:23 +000031MCCodeEmitter *createPPCMCCodeEmitter(const MCInstrInfo &MCII,
32 const MCSubtargetInfo &STI,
33 MCContext &Ctx);
34
35TargetAsmBackend *createPPCAsmBackend(const Target &, const std::string &);
36
Evan Chengc60f9b72011-07-14 20:59:42 +000037} // End llvm namespace
38
39// Defines symbolic names for PowerPC registers. This defines a mapping from
40// register name to register number.
41//
42#define GET_REGINFO_ENUM
43#include "PPCGenRegisterInfo.inc"
44
45// Defines symbolic names for the PowerPC instructions.
46//
47#define GET_INSTRINFO_ENUM
48#include "PPCGenInstrInfo.inc"
49
50#define GET_SUBTARGETINFO_ENUM
51#include "PPCGenSubtargetInfo.inc"
52
53#endif