llvm-6502/lib/Target/SystemZ/SystemZ.h
2009-07-18 23:03:22 +00:00

65 lines
1.8 KiB
C++

//=-- SystemZ.h - Top-level interface for SystemZ representation -*- C++ -*-==//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file contains the entry points for global functions defined in
// the LLVM SystemZ backend.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_TARGET_SystemZ_H
#define LLVM_TARGET_SystemZ_H
#include "llvm/Target/TargetMachine.h"
namespace llvm {
class SystemZTargetMachine;
class FunctionPass;
class formatted_raw_ostream;
namespace SystemZCC {
// SystemZ specific condition code. These correspond to SYSTEMZ_*_COND in
// SystemZInstrInfo.td. They must be kept in synch.
enum CondCodes {
O = 0,
H = 1,
NLE = 2,
L = 3,
NHE = 4,
LH = 5,
NE = 6,
E = 7,
NLH = 8,
HE = 9,
NL = 10,
LE = 11,
NH = 12,
NO = 13,
INVALID = -1
};
}
FunctionPass *createSystemZISelDag(SystemZTargetMachine &TM,
CodeGenOpt::Level OptLevel);
FunctionPass *createSystemZCodePrinterPass(formatted_raw_ostream &o,
TargetMachine &tm,
bool verbose);
extern Target TheSystemZTarget;
} // end namespace llvm;
// Defines symbolic names for SystemZ registers.
// This defines a mapping from register name to register number.
#include "SystemZGenRegisterNames.inc"
// Defines symbolic names for the SystemZ instructions.
#include "SystemZGenInstrNames.inc"
#endif