//===- ARMBaseRegisterInfo.cpp - ARM Register Information -------*- 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 base ARM implementation of TargetRegisterInfo class.////===----------------------------------------------------------------------===//#include"ARM.h"#include"ARMAddressingModes.h"#include"ARMBaseInstrInfo.h"#include"ARMBaseRegisterInfo.h"#include"ARMInstrInfo.h"#include"ARMMachineFunctionInfo.h"#include"ARMSubtarget.h"#include"llvm/Constants.h"#include"llvm/DerivedTypes.h"#include"llvm/Function.h"#include"llvm/LLVMContext.h"#include"llvm/CodeGen/MachineConstantPool.h"#include"llvm/CodeGen/MachineFrameInfo.h"#include"llvm/CodeGen/MachineFunction.h"#include"llvm/CodeGen/MachineInstrBuilder.h"#include"llvm/CodeGen/MachineLocation.h"#include"llvm/CodeGen/MachineRegisterInfo.h"#include"llvm/CodeGen/RegisterScavenging.h"#include"llvm/Support/ErrorHandling.h"#include"llvm/Support/raw_ostream.h"#include"llvm/Target/TargetFrameInfo.h"#include"llvm/Target/TargetMachine.h"#include"llvm/Target/TargetOptions.h"#include"llvm/ADT/BitVector.h"#include"llvm/ADT/SmallVector.h"usingnamespacellvm;unsignedARMBaseRegisterInfo::getRegisterNumbering(unsignedRegEnum,bool*isSPVFP){if(isSPVFP)*isSPVFP=false;usingnamespaceARM;switch(RegEnum){default:llvm_unreachable("Unknown ARM register!");caseR0:caseD0:caseQ0:return0;caseR1:caseD1:caseQ1:return1;caseR2:caseD2:caseQ2:return2;caseR3:caseD3:caseQ3:return3;caseR4:caseD4:caseQ4:return4;caseR5:caseD5:caseQ5:return5;caseR6:caseD6:caseQ6:return6;caseR7:caseD7:caseQ7:return7;caseR8:case