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