move ARMCondCodeToString to ARMAsmPrinter.cpp
[oota-llvm.git] / lib / Target / ARM / ARM.h
1 //===-- ARM.h - Top-level interface for ARM representation---- --*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file was developed by the "Instituto Nokia de Tecnologia" and
6 // is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10 //
11 // This file contains the entry points for global functions defined in the LLVM
12 // ARM back-end.
13 //
14 //===----------------------------------------------------------------------===//
15
16 #ifndef TARGET_ARM_H
17 #define TARGET_ARM_H
18
19 #include <iosfwd>
20 #include <cassert>
21
22 namespace llvm {
23   // Enums corresponding to ARM condition codes
24   namespace ARMCC {
25     enum CondCodes {
26       EQ,
27       NE,
28       CS,
29       CC,
30       MI,
31       PL,
32       VS,
33       VC,
34       HI,
35       LS,
36       GE,
37       LT,
38       GT,
39       LE,
40       AL
41     };
42   }
43
44   namespace ARMShift {
45     enum ShiftTypes {
46       LSL,
47       LSR,
48       ASR,
49       ROR,
50       RRX
51     };
52   }
53
54   class FunctionPass;
55   class TargetMachine;
56
57   FunctionPass *createARMISelDag(TargetMachine &TM);
58   FunctionPass *createARMCodePrinterPass(std::ostream &OS, TargetMachine &TM);
59   FunctionPass *createARMFixMulPass();
60 } // end namespace llvm;
61
62 // Defines symbolic names for ARM registers.  This defines a mapping from
63 // register name to register number.
64 //
65 #include "ARMGenRegisterNames.inc"
66
67 // Defines symbolic names for the ARM instructions.
68 //
69 #include "ARMGenInstrNames.inc"
70
71
72 #endif