1 //===-- ARM.h - Top-level interface for ARM representation---- --*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file contains the entry points for global functions defined in the LLVM
13 //===----------------------------------------------------------------------===//
18 #include "llvm/Target/TargetMachine.h"
23 class ARMTargetMachine
;
25 class MachineCodeEmitter
;
28 // Enums corresponding to ARM condition codes
30 // The CondCodes constants map directly to the 4-bit encoding of the
31 // condition field for predicated instructions.
50 inline static CondCodes
getOppositeCondition(CondCodes CC
){
52 default: assert(0 && "Unknown condition code");
71 inline static const char *ARMCondCodeToString(ARMCC::CondCodes CC
) {
73 default: assert(0 && "Unknown condition code");
74 case ARMCC::EQ
: return "eq";
75 case ARMCC::NE
: return "ne";
76 case ARMCC::HS
: return "hs";
77 case ARMCC::LO
: return "lo";
78 case ARMCC::MI
: return "mi";
79 case ARMCC::PL
: return "pl";
80 case ARMCC::VS
: return "vs";
81 case ARMCC::VC
: return "vc";
82 case ARMCC::HI
: return "hi";
83 case ARMCC::LS
: return "ls";
84 case ARMCC::GE
: return "ge";
85 case ARMCC::LT
: return "lt";
86 case ARMCC::GT
: return "gt";
87 case ARMCC::LE
: return "le";
88 case ARMCC::AL
: return "al";
92 FunctionPass
*createARMISelDag(ARMTargetMachine
&TM
);
93 FunctionPass
*createARMCodePrinterPass(raw_ostream
&O
,
95 CodeGenOpt::Level OptLevel
,
97 FunctionPass
*createARMCodeEmitterPass(ARMTargetMachine
&TM
,
98 MachineCodeEmitter
&MCE
);
99 FunctionPass
*createARMLoadStoreOptimizationPass();
100 FunctionPass
*createARMConstantIslandPass();
102 } // end namespace llvm;
104 // Defines symbolic names for ARM registers. This defines a mapping from
105 // register name to register number.
107 #include "ARMGenRegisterNames.inc"
109 // Defines symbolic names for the ARM instructions.
111 #include "ARMGenInstrNames.inc"