1 //===-- MipsMCTargetDesc.h - Mips Target Descriptions -----------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file provides Mips specific target descriptions.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCTARGETDESC_H
15 #define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCTARGETDESC_H
17 #include "llvm/Support/DataTypes.h"
26 class MCSubtargetInfo;
27 class MCTargetOptions;
32 class raw_pwrite_stream;
34 Target &getTheMipsTarget();
35 Target &getTheMipselTarget();
36 Target &getTheMips64Target();
37 Target &getTheMips64elTarget();
39 MCCodeEmitter *createMipsMCCodeEmitterEB(const MCInstrInfo &MCII,
40 const MCRegisterInfo &MRI,
42 MCCodeEmitter *createMipsMCCodeEmitterEL(const MCInstrInfo &MCII,
43 const MCRegisterInfo &MRI,
46 MCAsmBackend *createMipsAsmBackendEB32(const Target &T,
47 const MCRegisterInfo &MRI,
48 const Triple &TT, StringRef CPU,
49 const MCTargetOptions &Options);
50 MCAsmBackend *createMipsAsmBackendEL32(const Target &T,
51 const MCRegisterInfo &MRI,
52 const Triple &TT, StringRef CPU,
53 const MCTargetOptions &Options);
54 MCAsmBackend *createMipsAsmBackendEB64(const Target &T,
55 const MCRegisterInfo &MRI,
56 const Triple &TT, StringRef CPU,
57 const MCTargetOptions &Options);
58 MCAsmBackend *createMipsAsmBackendEL64(const Target &T,
59 const MCRegisterInfo &MRI,
60 const Triple &TT, StringRef CPU,
61 const MCTargetOptions &Options);
63 MCObjectWriter *createMipsELFObjectWriter(raw_pwrite_stream &OS, uint8_t OSABI,
64 bool IsLittleEndian, bool Is64Bit);
67 StringRef selectMipsCPU(const Triple &TT, StringRef CPU);
70 } // End llvm namespace
72 // Defines symbolic names for Mips registers. This defines a mapping from
73 // register name to register number.
74 #define GET_REGINFO_ENUM
75 #include "MipsGenRegisterInfo.inc"
77 // Defines symbolic names for the Mips instructions.
78 #define GET_INSTRINFO_ENUM
79 #include "MipsGenInstrInfo.inc"
81 #define GET_SUBTARGETINFO_ENUM
82 #include "MipsGenSubtargetInfo.inc"