1c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng//===-- SparcMCTargetDesc.h - Sparc Target Descriptions ---------*- C++ -*-===// 2c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// 3c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// The LLVM Compiler Infrastructure 4c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// 5c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// This file is distributed under the University of Illinois Open Source 6c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// License. See LICENSE.TXT for details. 7c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// 8c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng//===----------------------------------------------------------------------===// 9c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// 10c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// This file provides Sparc specific target descriptions. 11c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// 12c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng//===----------------------------------------------------------------------===// 13c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 1437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines#ifndef LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCMCTARGETDESC_H 1537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines#define LLVM_LIB_TARGET_SPARC_MCTARGETDESC_SPARCMCTARGETDESC_H 16c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines#include "llvm/Support/DataTypes.h" 1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 19c60f9b752381baa6c4b80c0739034660f1748c84Evan Chengnamespace llvm { 2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass MCAsmBackend; 2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass MCCodeEmitter; 2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass MCContext; 2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass MCInstrInfo; 2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass MCObjectWriter; 2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass MCRegisterInfo; 2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass MCSubtargetInfo; 27c60f9b752381baa6c4b80c0739034660f1748c84Evan Chengclass Target; 2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass StringRef; 292c3e0051c31c3f5b2328b447eadf1cf9c4427442Pirama Arumuga Nainarclass raw_pwrite_stream; 3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass raw_ostream; 31c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 32c60f9b752381baa6c4b80c0739034660f1748c84Evan Chengextern Target TheSparcTarget; 33c60f9b752381baa6c4b80c0739034660f1748c84Evan Chengextern Target TheSparcV9Target; 34c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen HinesMCCodeEmitter *createSparcMCCodeEmitter(const MCInstrInfo &MCII, 3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCRegisterInfo &MRI, 3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines MCContext &Ctx); 3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen HinesMCAsmBackend *createSparcAsmBackend(const Target &T, 3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCRegisterInfo &MRI, 4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines StringRef TT, 4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines StringRef CPU); 422c3e0051c31c3f5b2328b447eadf1cf9c4427442Pirama Arumuga NainarMCObjectWriter *createSparcELFObjectWriter(raw_pwrite_stream &OS, bool Is64Bit, 4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines uint8_t OSABI); 44c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng} // End llvm namespace 45c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 46c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// Defines symbolic names for Sparc registers. This defines a mapping from 47c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// register name to register number. 48c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// 49c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#define GET_REGINFO_ENUM 50c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#include "SparcGenRegisterInfo.inc" 51c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 52c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// Defines symbolic names for the Sparc instructions. 53c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// 54c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#define GET_INSTRINFO_ENUM 55c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#include "SparcGenInstrInfo.inc" 56c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 57c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#define GET_SUBTARGETINFO_ENUM 58c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#include "SparcGenSubtargetInfo.inc" 59c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 60c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#endif 61