1afaf80a13ba43447f8a335ad1224917101fb7a79James Molloy//===-- MipsMCTargetDesc.h - Mips 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// 10afaf80a13ba43447f8a335ad1224917101fb7a79James Molloy// This file provides Mips specific target descriptions. 11c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// 12c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng//===----------------------------------------------------------------------===// 13c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 1437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines#ifndef LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCTARGETDESC_H 1537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines#define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCTARGETDESC_H 16c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 17090445967f0b5988446faffefd1d0722f982bc7aRafael Espindola#include "llvm/Support/DataTypes.h" 18090445967f0b5988446faffefd1d0722f982bc7aRafael Espindola 19c60f9b752381baa6c4b80c0739034660f1748c84Evan Chengnamespace llvm { 204b6ee7a35213709c057cdd073fb27bda09fa3359Akira Hatanakaclass MCAsmBackend; 214520a10fdbaabf1c0cd98b43a61469c5f0e76f38Akira Hatanakaclass MCCodeEmitter; 224520a10fdbaabf1c0cd98b43a61469c5f0e76f38Akira Hatanakaclass MCContext; 2347b92f3d8362518596d57269dc53d985bc13323aBruno Cardoso Lopesclass MCInstrInfo; 2447b92f3d8362518596d57269dc53d985bc13323aBruno Cardoso Lopesclass MCObjectWriter; 25918f55fe239f00651e396be841f2b3b6e242f98dJim Grosbachclass MCRegisterInfo; 26c60f9b752381baa6c4b80c0739034660f1748c84Evan Chengclass MCSubtargetInfo; 27c60f9b752381baa6c4b80c0739034660f1748c84Evan Chengclass StringRef; 284520a10fdbaabf1c0cd98b43a61469c5f0e76f38Akira Hatanakaclass Target; 296948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainarclass Triple; 3047b92f3d8362518596d57269dc53d985bc13323aBruno Cardoso Lopesclass raw_ostream; 310c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainarclass raw_pwrite_stream; 32c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 33c60f9b752381baa6c4b80c0739034660f1748c84Evan Chengextern Target TheMipsTarget; 34c60f9b752381baa6c4b80c0739034660f1748c84Evan Chengextern Target TheMipselTarget; 352464810ac27af8dd8b11da7519b719c254854c19Akira Hatanakaextern Target TheMips64Target; 362464810ac27af8dd8b11da7519b719c254854c19Akira Hatanakaextern Target TheMips64elTarget; 37c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 38e9e520f23ec3e5dc26e0801ac0d8b9e6899e2626Akira HatanakaMCCodeEmitter *createMipsMCCodeEmitterEB(const MCInstrInfo &MCII, 39918f55fe239f00651e396be841f2b3b6e242f98dJim Grosbach const MCRegisterInfo &MRI, 40e9e520f23ec3e5dc26e0801ac0d8b9e6899e2626Akira Hatanaka MCContext &Ctx); 41e9e520f23ec3e5dc26e0801ac0d8b9e6899e2626Akira HatanakaMCCodeEmitter *createMipsMCCodeEmitterEL(const MCInstrInfo &MCII, 42918f55fe239f00651e396be841f2b3b6e242f98dJim Grosbach const MCRegisterInfo &MRI, 43e9e520f23ec3e5dc26e0801ac0d8b9e6899e2626Akira Hatanaka MCContext &Ctx); 444b6ee7a35213709c057cdd073fb27bda09fa3359Akira Hatanaka 4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen HinesMCAsmBackend *createMipsAsmBackendEB32(const Target &T, 466948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainar const MCRegisterInfo &MRI, 476948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainar const Triple &TT, StringRef CPU); 4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen HinesMCAsmBackend *createMipsAsmBackendEL32(const Target &T, 496948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainar const MCRegisterInfo &MRI, 506948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainar const Triple &TT, StringRef CPU); 5136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen HinesMCAsmBackend *createMipsAsmBackendEB64(const Target &T, 526948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainar const MCRegisterInfo &MRI, 536948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainar const Triple &TT, StringRef CPU); 5436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen HinesMCAsmBackend *createMipsAsmBackendEL64(const Target &T, 556948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainar const MCRegisterInfo &MRI, 566948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainar const Triple &TT, StringRef CPU); 5747b92f3d8362518596d57269dc53d985bc13323aBruno Cardoso Lopes 580c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga NainarMCObjectWriter *createMipsELFObjectWriter(raw_pwrite_stream &OS, uint8_t OSABI, 59ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines bool IsLittleEndian, bool Is64Bit); 60ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines 61ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinesnamespace MIPS_MC { 626948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga NainarStringRef selectMipsCPU(const Triple &TT, StringRef CPU); 63ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines} 64ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines 65c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng} // End llvm namespace 66c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 67c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// Defines symbolic names for Mips registers. This defines a mapping from 68c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// register name to register number. 69c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#define GET_REGINFO_ENUM 70c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#include "MipsGenRegisterInfo.inc" 71c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 72c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng// Defines symbolic names for the Mips instructions. 73c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#define GET_INSTRINFO_ENUM 74c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#include "MipsGenInstrInfo.inc" 75c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 76c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#define GET_SUBTARGETINFO_ENUM 77c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#include "MipsGenSubtargetInfo.inc" 78c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng 79c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#endif 80