mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	--- Reverse-merging r75799 into '.': U test/Analysis/PointerTracking U include/llvm/Target/TargetMachineRegistry.h U include/llvm/Target/TargetMachine.h U include/llvm/Target/TargetRegistry.h U include/llvm/Target/TargetSelect.h U tools/lto/LTOCodeGenerator.cpp U tools/lto/LTOModule.cpp U tools/llc/llc.cpp U lib/Target/PowerPC/PPCTargetMachine.h U lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp U lib/Target/PowerPC/PPCTargetMachine.cpp U lib/Target/PowerPC/PPC.h U lib/Target/ARM/ARMTargetMachine.cpp U lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp U lib/Target/ARM/ARMTargetMachine.h U lib/Target/ARM/ARM.h U lib/Target/XCore/XCoreTargetMachine.cpp U lib/Target/XCore/XCoreTargetMachine.h U lib/Target/PIC16/PIC16TargetMachine.cpp U lib/Target/PIC16/PIC16TargetMachine.h U lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp U lib/Target/Alpha/AlphaTargetMachine.cpp U lib/Target/Alpha/AlphaTargetMachine.h U lib/Target/X86/X86TargetMachine.h U lib/Target/X86/X86.h U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h U lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h U lib/Target/X86/X86TargetMachine.cpp U lib/Target/MSP430/MSP430TargetMachine.cpp U lib/Target/MSP430/MSP430TargetMachine.h U lib/Target/CppBackend/CPPTargetMachine.h U lib/Target/CppBackend/CPPBackend.cpp U lib/Target/CBackend/CTargetMachine.h U lib/Target/CBackend/CBackend.cpp U lib/Target/TargetMachine.cpp U lib/Target/IA64/IA64TargetMachine.cpp U lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp U lib/Target/IA64/IA64TargetMachine.h U lib/Target/IA64/IA64.h U lib/Target/MSIL/MSILWriter.cpp U lib/Target/CellSPU/SPUTargetMachine.h U lib/Target/CellSPU/SPU.h U lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp U lib/Target/CellSPU/SPUTargetMachine.cpp U lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp U lib/Target/Mips/MipsTargetMachine.cpp U lib/Target/Mips/MipsTargetMachine.h U lib/Target/Mips/Mips.h U lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp U lib/Target/Sparc/SparcTargetMachine.cpp U lib/Target/Sparc/SparcTargetMachine.h U lib/ExecutionEngine/JIT/TargetSelect.cpp U lib/Support/TargetRegistry.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75820 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//===-- ARM.h - Top-level interface for ARM representation---- --*- C++ -*-===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
//
 | 
						|
// This file contains the entry points for global functions defined in the LLVM
 | 
						|
// ARM back-end.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#ifndef TARGET_ARM_H
 | 
						|
#define TARGET_ARM_H
 | 
						|
 | 
						|
#include "llvm/Support/ErrorHandling.h"
 | 
						|
#include "llvm/Target/TargetMachine.h"
 | 
						|
#include <cassert>
 | 
						|
 | 
						|
namespace llvm {
 | 
						|
 | 
						|
class ARMBaseTargetMachine;
 | 
						|
class FunctionPass;
 | 
						|
class MachineCodeEmitter;
 | 
						|
class JITCodeEmitter;
 | 
						|
class ObjectCodeEmitter;
 | 
						|
class formatted_raw_ostream;
 | 
						|
 | 
						|
// Enums corresponding to ARM condition codes
 | 
						|
namespace ARMCC {
 | 
						|
  // The CondCodes constants map directly to the 4-bit encoding of the
 | 
						|
  // condition field for predicated instructions.
 | 
						|
  enum CondCodes {
 | 
						|
    EQ,
 | 
						|
    NE,
 | 
						|
    HS,
 | 
						|
    LO,
 | 
						|
    MI,
 | 
						|
    PL,
 | 
						|
    VS,
 | 
						|
    VC,
 | 
						|
    HI,
 | 
						|
    LS,
 | 
						|
    GE,
 | 
						|
    LT,
 | 
						|
    GT,
 | 
						|
    LE,
 | 
						|
    AL
 | 
						|
  };
 | 
						|
 | 
						|
  inline static CondCodes getOppositeCondition(CondCodes CC){
 | 
						|
    switch (CC) {
 | 
						|
    default: llvm_unreachable("Unknown condition code");
 | 
						|
    case EQ: return NE;
 | 
						|
    case NE: return EQ;
 | 
						|
    case HS: return LO;
 | 
						|
    case LO: return HS;
 | 
						|
    case MI: return PL;
 | 
						|
    case PL: return MI;
 | 
						|
    case VS: return VC;
 | 
						|
    case VC: return VS;
 | 
						|
    case HI: return LS;
 | 
						|
    case LS: return HI;
 | 
						|
    case GE: return LT;
 | 
						|
    case LT: return GE;
 | 
						|
    case GT: return LE;
 | 
						|
    case LE: return GT;
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
inline static const char *ARMCondCodeToString(ARMCC::CondCodes CC) {
 | 
						|
  switch (CC) {
 | 
						|
  default: llvm_unreachable("Unknown condition code");
 | 
						|
  case ARMCC::EQ:  return "eq";
 | 
						|
  case ARMCC::NE:  return "ne";
 | 
						|
  case ARMCC::HS:  return "hs";
 | 
						|
  case ARMCC::LO:  return "lo";
 | 
						|
  case ARMCC::MI:  return "mi";
 | 
						|
  case ARMCC::PL:  return "pl";
 | 
						|
  case ARMCC::VS:  return "vs";
 | 
						|
  case ARMCC::VC:  return "vc";
 | 
						|
  case ARMCC::HI:  return "hi";
 | 
						|
  case ARMCC::LS:  return "ls";
 | 
						|
  case ARMCC::GE:  return "ge";
 | 
						|
  case ARMCC::LT:  return "lt";
 | 
						|
  case ARMCC::GT:  return "gt";
 | 
						|
  case ARMCC::LE:  return "le";
 | 
						|
  case ARMCC::AL:  return "al";
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
FunctionPass *createARMISelDag(ARMBaseTargetMachine &TM);
 | 
						|
FunctionPass *createARMCodePrinterPass(formatted_raw_ostream &O,
 | 
						|
                                       TargetMachine &TM,
 | 
						|
                                       bool Verbose);
 | 
						|
FunctionPass *createARMCodeEmitterPass(ARMBaseTargetMachine &TM,
 | 
						|
                                       MachineCodeEmitter &MCE);
 | 
						|
 | 
						|
FunctionPass *createARMCodeEmitterPass(ARMBaseTargetMachine &TM,
 | 
						|
                                       MachineCodeEmitter &MCE);
 | 
						|
FunctionPass *createARMJITCodeEmitterPass(ARMBaseTargetMachine &TM,
 | 
						|
                                          JITCodeEmitter &JCE);
 | 
						|
FunctionPass *createARMObjectCodeEmitterPass(ARMBaseTargetMachine &TM, 
 | 
						|
                                             ObjectCodeEmitter &OCE);
 | 
						|
 | 
						|
FunctionPass *createARMLoadStoreOptimizationPass(bool PreAlloc = false);
 | 
						|
FunctionPass *createARMConstantIslandPass();
 | 
						|
 | 
						|
FunctionPass *createThumb2ITBlockPass();
 | 
						|
 | 
						|
} // end namespace llvm;
 | 
						|
 | 
						|
// Defines symbolic names for ARM registers.  This defines a mapping from
 | 
						|
// register name to register number.
 | 
						|
//
 | 
						|
#include "ARMGenRegisterNames.inc"
 | 
						|
 | 
						|
// Defines symbolic names for the ARM instructions.
 | 
						|
//
 | 
						|
#include "ARMGenInstrNames.inc"
 | 
						|
 | 
						|
 | 
						|
#endif
 |