blob: de8234787dce356c87319d0141d2e95e353084d3 [file] [log] [blame]
James Molloy8c545332011-08-30 07:23:29 +00001//===-- MipsMCTargetDesc.h - Mips Target Descriptions -----------*- C++ -*-===//
Evan Chengbc153d42011-07-14 20:59:42 +00002//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
James Molloy8c545332011-08-30 07:23:29 +000010// This file provides Mips specific target descriptions.
Evan Chengbc153d42011-07-14 20:59:42 +000011//
12//===----------------------------------------------------------------------===//
13
James Molloy8c545332011-08-30 07:23:29 +000014#ifndef MIPSMCTARGETDESC_H
15#define MIPSMCTARGETDESC_H
Evan Chengbc153d42011-07-14 20:59:42 +000016
Rafael Espindola1dc45d82011-12-22 03:03:17 +000017#include "llvm/Support/DataTypes.h"
18
Evan Chengbc153d42011-07-14 20:59:42 +000019namespace llvm {
Akira Hatanaka44220ca2011-09-30 21:23:45 +000020class MCAsmBackend;
Akira Hatanaka750ecec2011-09-30 20:40:03 +000021class MCCodeEmitter;
22class MCContext;
Bruno Cardoso Lopesc85e3ff2011-11-11 22:58:42 +000023class MCInstrInfo;
24class MCObjectWriter;
Evan Chengbc153d42011-07-14 20:59:42 +000025class MCSubtargetInfo;
Evan Chengbc153d42011-07-14 20:59:42 +000026class StringRef;
Akira Hatanaka750ecec2011-09-30 20:40:03 +000027class Target;
Bruno Cardoso Lopesc85e3ff2011-11-11 22:58:42 +000028class raw_ostream;
Evan Chengbc153d42011-07-14 20:59:42 +000029
30extern Target TheMipsTarget;
31extern Target TheMipselTarget;
Akira Hatanaka3d673cc2011-09-21 03:00:58 +000032extern Target TheMips64Target;
33extern Target TheMips64elTarget;
Evan Chengbc153d42011-07-14 20:59:42 +000034
Akira Hatanaka750ecec2011-09-30 20:40:03 +000035MCCodeEmitter *createMipsMCCodeEmitter(const MCInstrInfo &MCII,
36 const MCSubtargetInfo &STI,
37 MCContext &Ctx);
Akira Hatanaka44220ca2011-09-30 21:23:45 +000038
39MCAsmBackend *createMipsAsmBackend(const Target &T, StringRef TT);
Bruno Cardoso Lopesc85e3ff2011-11-11 22:58:42 +000040
Rafael Espindola1dc45d82011-12-22 03:03:17 +000041MCObjectWriter *createMipsELFObjectWriter(raw_ostream &OS,
42 bool IsLittleEndian,
43 uint8_t OSABI);
Evan Chengbc153d42011-07-14 20:59:42 +000044} // End llvm namespace
45
46// Defines symbolic names for Mips registers. This defines a mapping from
47// register name to register number.
48#define GET_REGINFO_ENUM
49#include "MipsGenRegisterInfo.inc"
50
51// Defines symbolic names for the Mips instructions.
52#define GET_INSTRINFO_ENUM
53#include "MipsGenInstrInfo.inc"
54
55#define GET_SUBTARGETINFO_ENUM
56#include "MipsGenSubtargetInfo.inc"
57
58#endif