]> CyberLeo.Net >> Repos - FreeBSD/releng/9.0.git/blob - contrib/llvm/lib/Target/SystemZ/SystemZ.h
Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
[FreeBSD/releng/9.0.git] / contrib / llvm / 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 "MCTargetDesc/SystemZMCTargetDesc.h"
19 #include "llvm/Target/TargetMachine.h"
20
21 namespace llvm {
22   class SystemZTargetMachine;
23   class FunctionPass;
24   class formatted_raw_ostream;
25
26   namespace SystemZCC {
27     // SystemZ specific condition code. These correspond to SYSTEMZ_*_COND in
28     // SystemZInstrInfo.td. They must be kept in synch.
29     enum CondCodes {
30       O   = 0,
31       H   = 1,
32       NLE = 2,
33       L   = 3,
34       NHE = 4,
35       LH  = 5,
36       NE  = 6,
37       E   = 7,
38       NLH = 8,
39       HE  = 9,
40       NL  = 10,
41       LE  = 11,
42       NH  = 12,
43       NO  = 13,
44       INVALID = -1
45     };
46   }
47
48   FunctionPass *createSystemZISelDag(SystemZTargetMachine &TM,
49                                     CodeGenOpt::Level OptLevel);
50
51 } // end namespace llvm;
52 #endif