//===-- ARMISelLowering.cpp - ARM DAG Lowering Implementation -------------===////// The LLVM Compiler Infrastructure//// This file was developed by Evan Cheng and is distributed under// the University of Illinois Open Source License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file defines the interfaces that ARM uses to lower LLVM code into a// selection DAG.////===----------------------------------------------------------------------===//#include"ARM.h"#include"ARMAddressingModes.h"#include"ARMConstantPoolValue.h"#include"ARMISelLowering.h"#include"ARMMachineFunctionInfo.h"#include"ARMRegisterInfo.h"#include"ARMSubtarget.h"#include"ARMTargetMachine.h"#include"llvm/CallingConv.h"#include"llvm/Constants.h"#include"llvm/CodeGen/MachineBasicBlock.h"#include"llvm/CodeGen/MachineFrameInfo.h"#include"llvm/CodeGen/MachineFunction.h"#include"llvm/CodeGen/MachineInstrBuilder.h"#include"llvm/CodeGen/SelectionDAG.h"#include"llvm/CodeGen/SSARegMap.h"#include"llvm/Target/TargetOptions.h"#include"llvm/ADT/VectorExtras.h"usingnamespacellvm;ARMTargetLowering::ARMTargetLowering(TargetMachine&TM):TargetLowering(TM),ARMPCLabelIndex(0){Subtarget=&TM.getSubtarget