SystemZ.h revision 22fee2dff4c43b551aefa44a96ca74fcade6bfac
1//=-- SystemZ.h - Top-level interface for SystemZ representation -*- 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// This file contains the entry points for global functions defined in 11// the LLVM SystemZ backend. 12// 13//===----------------------------------------------------------------------===// 14 15#ifndef LLVM_TARGET_SystemZ_H 16#define LLVM_TARGET_SystemZ_H 17 18#include "llvm/Target/TargetMachine.h" 19 20namespace llvm { 21 class SystemZTargetMachine; 22 class FunctionPass; 23 class formatted_raw_ostream; 24 25 namespace SystemZCC { 26 // SystemZ specific condition code. These correspond to SYSTEMZ_*_COND in 27 // SystemZInstrInfo.td. They must be kept in synch. 28 enum CondCodes { 29 O = 0, 30 H = 1, 31 NLE = 2, 32 L = 3, 33 NHE = 4, 34 LH = 5, 35 NE = 6, 36 E = 7, 37 NLH = 8, 38 HE = 9, 39 NL = 10, 40 LE = 11, 41 NH = 12, 42 NO = 13, 43 INVALID = -1 44 }; 45 } 46 47 FunctionPass *createSystemZISelDag(SystemZTargetMachine &TM, 48 CodeGenOpt::Level OptLevel); 49 50 extern Target TheSystemZTarget; 51 52} // end namespace llvm; 53 54// Defines symbolic names for SystemZ registers. 55// This defines a mapping from register name to register number. 56#define GET_REGINFO_ENUM 57#include "SystemZGenRegisterInfo.inc" 58 59// Defines symbolic names for the SystemZ instructions. 60#define GET_INSTRINFO_ENUM 61#include "SystemZGenInstrInfo.inc" 62 63#endif 64