Merge XXXGenRegisterDesc.inc XXXGenRegisterNames.inc XXXGenRegisterInfo.h.inc
[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 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 #include "SystemZGenInstrNames.inc"
61
62 #endif