llvm-6502/lib/Target/Mips
Hal Finkel dc3beb9017 Allow the register scavenger to spill multiple registers
This patch lets the register scavenger make use of multiple spill slots in
order to guarantee that it will be able to provide multiple registers
simultaneously.

To support this, the RS's API has changed slightly: setScavengingFrameIndex /
getScavengingFrameIndex have been replaced by addScavengingFrameIndex /
isScavengingFrameIndex / getScavengingFrameIndices.

In forthcoming commits, the PowerPC backend will use this capability in order
to implement the spilling of condition registers, and some special-purpose
registers, without relying on r0 being reserved. In some cases, spilling these
registers requires two GPRs: one for addressing and one to hold the value being
transferred.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177774 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-22 23:32:27 +00:00
..
AsmParser This patch that enables the Mips assembler to use symbols for offset for instructions 2013-03-22 00:05:30 +00:00
Disassembler Remove the form field from Mips16 instruction formats and set things 2013-02-14 03:05:25 +00:00
InstPrinter This patch that sets the EmitAlias flag in td files 2013-02-05 08:32:10 +00:00
MCTargetDesc Fix the invalid opcode for Mips branch instructions in the assembler 2013-03-22 00:29:10 +00:00
TargetInfo Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CMakeLists.txt Add back lines which were accidentally deleted in CMakeLists.txt. 2013-03-14 18:46:46 +00:00
LLVMBuild.txt
Makefile Remove edis - the enhanced disassembler. Fixes PR14654. 2012-12-19 19:55:47 +00:00
Mips16FrameLowering.cpp Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo 2013-02-21 20:05:00 +00:00
Mips16FrameLowering.h Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo 2013-02-21 20:05:00 +00:00
Mips16InstrFormats.td Remove the form field from Mips16 instruction formats and set things 2013-02-14 03:05:25 +00:00
Mips16InstrInfo.cpp Make pseudos FEXT_CCRX16_ins and FEXT_CCRXI16_ins into custom emitters. 2013-02-25 02:25:47 +00:00
Mips16InstrInfo.h Make pseudos FEXT_CCRX16_ins and FEXT_CCRXI16_ins into custom emitters. 2013-02-25 02:25:47 +00:00
Mips16InstrInfo.td [mips] Rename functions and variables to start with proper case. 2013-03-14 18:33:23 +00:00
Mips16ISelDAGToDAG.cpp [mips] Rename functions and variables to start with proper case. 2013-03-14 18:33:23 +00:00
Mips16ISelDAGToDAG.h [mips] Rename functions and variables to start with proper case. 2013-03-14 18:33:23 +00:00
Mips16ISelLowering.cpp Add a new method which enables one to change register classes. 2013-03-14 22:02:09 +00:00
Mips16ISelLowering.h [mips] Define two subclasses of MipsTargetLowering. Mips16TargetLowering is for 2013-03-13 00:54:29 +00:00
Mips16RegisterInfo.cpp Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo 2013-02-21 20:05:00 +00:00
Mips16RegisterInfo.h Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo 2013-02-21 20:05:00 +00:00
Mips64InstrInfo.td [mips] Print move instructions. 2013-03-04 22:25:01 +00:00
Mips.h Add the skeleton for the Mips constant island pass. 2013-02-27 03:33:58 +00:00
Mips.td [mips] Remove android calling convention. 2013-03-05 23:22:30 +00:00
MipsAnalyzeImmediate.cpp Fix integer undefined behavior due to signed left shift overflow in LLVM. 2012-08-24 23:29:28 +00:00
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp ELF symbol table field st_other support, 2013-02-19 22:04:37 +00:00
MipsAsmPrinter.h This is a resubmittal. For some reason it broke the bots yesterday 2013-01-18 21:20:38 +00:00
MipsCallingConv.td [mips] Remove android calling convention. 2013-03-05 23:22:30 +00:00
MipsCodeEmitter.cpp [mips] Expand pseudo instructions before they are emitted in 2013-02-11 22:35:40 +00:00
MipsCondMov.td [mips] Fix inefficient code generation. 2013-03-01 21:52:08 +00:00
MipsConstantIslandPass.cpp Fix cut/paste error in a comment. 2013-02-27 04:20:14 +00:00
MipsDelaySlotFiller.cpp [mips] Remove unused option. Fix 80-column violations. 2013-03-01 02:17:02 +00:00
MipsDSPInstrFormats.td [mips] Remove asm string parameter from pseudo instructions. Add InstrItinClass 2012-12-20 04:20:09 +00:00
MipsDSPInstrInfo.td [mips] Remove asm string parameter from pseudo instructions. Add InstrItinClass 2012-12-20 04:20:09 +00:00
MipsFrameLowering.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
MipsFrameLowering.h [mips] Rename function and variable names to start with proper case. Fix typos. 2013-03-12 00:16:36 +00:00
MipsInstrFormats.td [mips] Add definition of JALR instruction which has two register operands. Change the 2013-02-07 19:48:00 +00:00
MipsInstrFPU.td [mips] Split SelectAddr, which was used to match address patterns, into two 2013-02-15 21:20:45 +00:00
MipsInstrInfo.cpp [mips] Do not add SecondLastInst to list BranchInstrs if there is only one 2013-03-01 01:22:26 +00:00
MipsInstrInfo.h [mips] Define an overloaded version of function MipsInstrInfo::AnalyzeBranchAdd. 2013-03-01 01:10:17 +00:00
MipsInstrInfo.td This patch that enables the Mips assembler to use symbols for offset for instructions 2013-03-22 00:05:30 +00:00
MipsISelDAGToDAG.cpp Remove some unused variables to clean the Clang -Werror build 2013-03-14 23:11:07 +00:00
MipsISelDAGToDAG.h [mips] Rename functions and variables to start with proper case. 2013-03-14 18:33:23 +00:00
MipsISelLowering.cpp [mips] Define two subclasses of MipsTargetLowering. Mips16TargetLowering is for 2013-03-13 00:54:29 +00:00
MipsISelLowering.h [mips] Define two subclasses of MipsTargetLowering. Mips16TargetLowering is for 2013-03-13 00:54:29 +00:00
MipsJITInfo.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
MipsJITInfo.h Classic JIT is still being supported by MIPS, along with MCJIT. 2012-12-03 23:11:12 +00:00
MipsLongBranch.cpp This is a resubmittal. For some reason it broke the bots yesterday 2013-01-19 02:00:40 +00:00
MipsMachineFunction.cpp [mips] Lower EH_RETURN. 2013-01-30 00:26:49 +00:00
MipsMachineFunction.h [mips] Lower EH_RETURN. 2013-01-30 00:26:49 +00:00
MipsMCInstLower.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
MipsMCInstLower.h MIPS DSP: add code necessary for pseudo instruction lowering. 2012-09-27 01:59:07 +00:00
MipsRegisterInfo.cpp [PEI] Pass the frame index operand number to the eliminateFrameIndex function. 2013-01-31 20:02:54 +00:00
MipsRegisterInfo.h Provide the register scavenger to processFunctionBeforeFrameFinalized 2013-03-14 20:33:40 +00:00
MipsRegisterInfo.td [mips] Set isAllocatable bit of unallocatable register classes to 0. 2013-03-14 23:09:19 +00:00
MipsRelocations.h
MipsSchedule.td
MipsSEFrameLowering.cpp Allow the register scavenger to spill multiple registers 2013-03-22 23:32:27 +00:00
MipsSEFrameLowering.h Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo 2013-02-21 20:05:00 +00:00
MipsSEInstrInfo.cpp [mips] Lower EH_RETURN. 2013-01-30 00:26:49 +00:00
MipsSEInstrInfo.h [mips] Lower EH_RETURN. 2013-01-30 00:26:49 +00:00
MipsSEISelDAGToDAG.cpp [mips] Define function MipsSEDAGToDAGISel::selectAddESubE. 2013-03-14 18:39:25 +00:00
MipsSEISelDAGToDAG.h [mips] Define function MipsSEDAGToDAGISel::selectAddESubE. 2013-03-14 18:39:25 +00:00
MipsSEISelLowering.cpp [mips] Fix filename in comment and delete unnecessary lines of code. 2013-03-14 19:09:52 +00:00
MipsSEISelLowering.h [mips] Define two subclasses of MipsTargetLowering. Mips16TargetLowering is for 2013-03-13 00:54:29 +00:00
MipsSelectionDAGInfo.cpp
MipsSelectionDAGInfo.h
MipsSERegisterInfo.cpp Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo 2013-02-21 20:05:00 +00:00
MipsSERegisterInfo.h Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo 2013-02-21 20:05:00 +00:00
MipsSubtarget.cpp [mips] Remove android calling convention. 2013-03-05 23:22:30 +00:00
MipsSubtarget.h [mips] Remove android calling convention. 2013-03-05 23:22:30 +00:00
MipsTargetMachine.cpp [mips] Define two subclasses of MipsTargetLowering. Mips16TargetLowering is for 2013-03-13 00:54:29 +00:00
MipsTargetMachine.h [mips] Define two subclasses of MipsTargetLowering. Mips16TargetLowering is for 2013-03-13 00:54:29 +00:00
MipsTargetObjectFile.cpp This is a resubmittal. For some reason it broke the bots yesterday 2013-01-18 21:20:38 +00:00
MipsTargetObjectFile.h This is a resubmittal. For some reason it broke the bots yesterday 2013-01-18 21:20:38 +00:00