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 20 namespace 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 #include "SystemZGenRegisterNames.inc" 57 58 // Defines symbolic names for the SystemZ instructions. 59 #include "SystemZGenInstrNames.inc" 60 61 #endif 62