Conditional branches and comparisons
[oota-llvm.git] / lib / Target / SystemZ / SystemZ.h
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 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       E  = 0,
30       NE = 1,
31       H  = 2,
32       L  = 3,
33       HE = 4,
34       LE = 5
35     };
36   }
37
38   FunctionPass *createSystemZISelDag(SystemZTargetMachine &TM,
39                                     CodeGenOpt::Level OptLevel);
40   FunctionPass *createSystemZCodePrinterPass(raw_ostream &o,
41                                             SystemZTargetMachine &tm,
42                                             CodeGenOpt::Level OptLevel,
43                                             bool verbose);
44
45 } // end namespace llvm;
46
47 // Defines symbolic names for SystemZ registers.
48 // This defines a mapping from register name to register number.
49 #include "SystemZGenRegisterNames.inc"
50
51 // Defines symbolic names for the SystemZ instructions.
52 #include "SystemZGenInstrNames.inc"
53
54 #endif