1 //===-- ARM.h - Top-level interface for ARM representation---- --*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
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.
9 //===----------------------------------------------------------------------===//
11 // This file contains the entry points for global functions defined in the LLVM
14 //===----------------------------------------------------------------------===//
24 class ARMTargetMachine
;
26 class MachineCodeEmitter
;
28 // Enums corresponding to ARM condition codes
48 inline static CondCodes
getOppositeCondition(CondCodes CC
){
50 default: assert(0 && "Unknown condition code");
69 inline static const char *ARMCondCodeToString(ARMCC::CondCodes CC
) {
71 default: assert(0 && "Unknown condition code");
72 case ARMCC::EQ
: return "eq";
73 case ARMCC::NE
: return "ne";
74 case ARMCC::HS
: return "hs";
75 case ARMCC::LO
: return "lo";
76 case ARMCC::MI
: return "mi";
77 case ARMCC::PL
: return "pl";
78 case ARMCC::VS
: return "vs";
79 case ARMCC::VC
: return "vc";
80 case ARMCC::HI
: return "hi";
81 case ARMCC::LS
: return "ls";
82 case ARMCC::GE
: return "ge";
83 case ARMCC::LT
: return "lt";
84 case ARMCC::GT
: return "gt";
85 case ARMCC::LE
: return "le";
86 case ARMCC::AL
: return "al";
90 FunctionPass
*createARMISelDag(ARMTargetMachine
&TM
);
91 FunctionPass
*createARMCodePrinterPass(std::ostream
&O
, ARMTargetMachine
&TM
);
92 FunctionPass
*createARMCodeEmitterPass(ARMTargetMachine
&TM
,
93 MachineCodeEmitter
&MCE
);
94 FunctionPass
*createARMLoadStoreOptimizationPass();
95 FunctionPass
*createARMConstantIslandPass();
97 } // end namespace llvm;
99 // Defines symbolic names for ARM registers. This defines a mapping from
100 // register name to register number.
102 #include "ARMGenRegisterNames.inc"
104 // Defines symbolic names for the ARM instructions.
106 #include "ARMGenInstrNames.inc"