SystemZ.h revision ae46db85a946ef49f9febc3eca85b8cfad622ccb
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 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 FunctionPass *createSystemZCodePrinterPass(raw_ostream &o, 50 SystemZTargetMachine &tm, 51 CodeGenOpt::Level OptLevel, 52 bool verbose); 53 54} // end namespace llvm; 55 56// Defines symbolic names for SystemZ registers. 57// This defines a mapping from register name to register number. 58#include "SystemZGenRegisterNames.inc" 59 60// Defines symbolic names for the SystemZ instructions. 61#include "SystemZGenInstrNames.inc" 62 63#endif 64