PPCMCTargetDesc.h revision 249423
1224133Sdim//===-- PPCMCTargetDesc.h - PowerPC Target Descriptions ---------*- C++ -*-===// 2224133Sdim// 3224133Sdim// The LLVM Compiler Infrastructure 4224133Sdim// 5224133Sdim// This file is distributed under the University of Illinois Open Source 6224133Sdim// License. See LICENSE.TXT for details. 7224133Sdim// 8224133Sdim//===----------------------------------------------------------------------===// 9224133Sdim// 10224133Sdim// This file provides PowerPC specific target descriptions. 11224133Sdim// 12224133Sdim//===----------------------------------------------------------------------===// 13224133Sdim 14224133Sdim#ifndef PPCMCTARGETDESC_H 15224133Sdim#define PPCMCTARGETDESC_H 16224133Sdim 17249423Sdim// GCC #defines PPC on Linux but we use it as our namespace name 18249423Sdim#undef PPC 19249423Sdim 20234353Sdim#include "llvm/Support/DataTypes.h" 21234353Sdim 22224133Sdimnamespace llvm { 23226633Sdimclass MCAsmBackend; 24226633Sdimclass MCCodeEmitter; 25226633Sdimclass MCContext; 26226633Sdimclass MCInstrInfo; 27234353Sdimclass MCObjectWriter; 28239462Sdimclass MCRegisterInfo; 29224133Sdimclass MCSubtargetInfo; 30224133Sdimclass Target; 31224133Sdimclass StringRef; 32234353Sdimclass raw_ostream; 33224133Sdim 34224133Sdimextern Target ThePPC32Target; 35224133Sdimextern Target ThePPC64Target; 36224133Sdim 37226633SdimMCCodeEmitter *createPPCMCCodeEmitter(const MCInstrInfo &MCII, 38239462Sdim const MCRegisterInfo &MRI, 39226633Sdim const MCSubtargetInfo &STI, 40226633Sdim MCContext &Ctx); 41226633Sdim 42241430SdimMCAsmBackend *createPPCAsmBackend(const Target &T, StringRef TT, StringRef CPU); 43234353Sdim 44234353Sdim/// createPPCELFObjectWriter - Construct an PPC ELF object writer. 45234353SdimMCObjectWriter *createPPCELFObjectWriter(raw_ostream &OS, 46234353Sdim bool Is64Bit, 47234353Sdim uint8_t OSABI); 48224133Sdim} // End llvm namespace 49224133Sdim 50249423Sdim// Generated files will use "namespace PPC". To avoid symbol clash, 51249423Sdim// undefine PPC here. PPC may be predefined on some hosts. 52249423Sdim#undef PPC 53249423Sdim 54224133Sdim// Defines symbolic names for PowerPC registers. This defines a mapping from 55224133Sdim// register name to register number. 56224133Sdim// 57224133Sdim#define GET_REGINFO_ENUM 58224133Sdim#include "PPCGenRegisterInfo.inc" 59224133Sdim 60224133Sdim// Defines symbolic names for the PowerPC instructions. 61224133Sdim// 62224133Sdim#define GET_INSTRINFO_ENUM 63224133Sdim#include "PPCGenInstrInfo.inc" 64224133Sdim 65224133Sdim#define GET_SUBTARGETINFO_ENUM 66224133Sdim#include "PPCGenSubtargetInfo.inc" 67224133Sdim 68224133Sdim#endif 69