1 //===-- SystemZMCTargetDesc.h - SystemZ target descriptions -----*- C++ -*-===// 2 // 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 10 #ifndef SYSTEMZMCTARGETDESC_H 11 #define SYSTEMZMCTARGETDESC_H 12 13 #include "llvm/Support/DataTypes.h" 14 15 namespace llvm { 16 17 class MCAsmBackend; 18 class MCCodeEmitter; 19 class MCContext; 20 class MCInstrInfo; 21 class MCObjectWriter; 22 class MCRegisterInfo; 23 class MCSubtargetInfo; 24 class StringRef; 25 class Target; 26 class raw_ostream; 27 28 extern Target TheSystemZTarget; 29 30 namespace SystemZMC { 31 // How many bytes are in the ABI-defined, caller-allocated part of 32 // a stack frame. 33 const int64_t CallFrameSize = 160; 34 35 // The offset of the DWARF CFA from the incoming stack pointer. 36 const int64_t CFAOffsetFromInitialSP = CallFrameSize; 37 } 38 39 MCCodeEmitter *createSystemZMCCodeEmitter(const MCInstrInfo &MCII, 40 const MCRegisterInfo &MRI, 41 const MCSubtargetInfo &STI, 42 MCContext &Ctx); 43 44 MCAsmBackend *createSystemZMCAsmBackend(const Target &T, StringRef TT, 45 StringRef CPU); 46 47 MCObjectWriter *createSystemZObjectWriter(raw_ostream &OS, uint8_t OSABI); 48 } // end namespace llvm 49 50 // Defines symbolic names for SystemZ registers. 51 // This defines a mapping from register name to register number. 52 #define GET_REGINFO_ENUM 53 #include "SystemZGenRegisterInfo.inc" 54 55 // Defines symbolic names for the SystemZ instructions. 56 #define GET_INSTRINFO_ENUM 57 #include "SystemZGenInstrInfo.inc" 58 59 #define GET_SUBTARGETINFO_ENUM 60 #include "SystemZGenSubtargetInfo.inc" 61 62 #endif 63