llvm-project/llvm/lib/Target/Mips
Daniel Sanders 241c67989b [mips][ias] Fix O32 .cprestore directive when inside .set noat region and offset is in range.
Summary:
This expands on r269179 to fix an additional case that was not covered by our
tests. The assembler temporary is not needed when the .cprestore offset fits
inside a simm16 and it is not an error to use it inside a '.set noat' in this
case.

Reviewers: emaste, seanbruno, sdardis

Subscribers: dsanders, sdardis, llvm-commits

Differential Revision: http://reviews.llvm.org/D20199

llvm-svn: 269295
2016-05-12 14:01:50 +00:00
..
AsmParser [mips][ias] Fix O32 .cprestore directive when inside .set noat region and offset is in range. 2016-05-12 14:01:50 +00:00
Disassembler Revert "[mips][microMIPS] Implement CFC*, CTC* and LDC* instructions" 2016-05-12 12:46:06 +00:00
InstPrinter [mips] Fix unused variable warning for release builds introduced by r268379. 2016-05-03 14:00:37 +00:00
MCTargetDesc [mips][ias] Fix O32 .cprestore directive when inside .set noat region and offset is in range. 2016-05-12 14:01:50 +00:00
TargetInfo Remove autoconf support 2016-01-26 21:29:08 +00:00
CMakeLists.txt [mips] MIPS32R6 compact branch support 2016-03-14 16:24:05 +00:00
LLVMBuild.txt
MSA.txt Revert: r249536 - Testing commit access with a trival whitespace change. 2015-10-07 10:57:06 +00:00
MicroMips32r6InstrFormats.td Revert "[mips][microMIPS] Implement CFC*, CTC* and LDC* instructions" 2016-05-12 12:46:06 +00:00
MicroMips32r6InstrInfo.td Revert "[mips][microMIPS] Implement CFC*, CTC* and LDC* instructions" 2016-05-12 12:46:06 +00:00
MicroMips64r6InstrFormats.td [mips][micromips] Implement DSBH, DSHD, DSLL, DSLL32, DSLLV, DSRA, DSRA32 and DSRAV instructions 2016-05-11 11:17:04 +00:00
MicroMips64r6InstrInfo.td [mips][micromips] Implement DSBH, DSHD, DSLL, DSLL32, DSLLV, DSRA, DSRA32 and DSRAV instructions 2016-05-11 11:17:04 +00:00
MicroMipsDSPInstrFormats.td [mips][microMIPS][DSP] Implement PACKRL.PH, PICK.PH, PICK.QB, SHILO, SHILOV and WRDSP instructions 2015-12-18 08:59:37 +00:00
MicroMipsDSPInstrInfo.td [mips] Range check uimm16 and fix several bugs this revealed. 2016-02-01 15:13:31 +00:00
MicroMipsInstrFPU.td Revert "[mips][microMIPS] Implement CFC*, CTC* and LDC* instructions" 2016-05-12 12:46:06 +00:00
MicroMipsInstrFormats.td [mips][microMIPS] Revert commit r267137 2016-04-25 15:40:08 +00:00
MicroMipsInstrInfo.td Revert "[mips][microMIPS] Implement CFC*, CTC* and LDC* instructions" 2016-05-12 12:46:06 +00:00
Mips.h [Mips] Fix -Wunused-private-field warning after r263444. 2016-03-14 18:10:20 +00:00
Mips.td [TableGen] Remove MnemonicContainsDot from AsmParser. It isn't used. NFC 2015-12-29 07:03:30 +00:00
Mips16FrameLowering.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Mips16FrameLowering.h
Mips16HardFloat.cpp [mips] Use range-based for loops. NFC. 2016-03-14 15:05:30 +00:00
Mips16HardFloatInfo.cpp
Mips16HardFloatInfo.h
Mips16ISelDAGToDAG.cpp [mips] Remove redundant inclusions of MipsAnalyzeImmediate.h 2016-02-03 15:54:12 +00:00
Mips16ISelDAGToDAG.h
Mips16ISelLowering.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Mips16ISelLowering.h
Mips16InstrFormats.td
Mips16InstrInfo.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Mips16InstrInfo.h
Mips16InstrInfo.td [mips] Trivial corrections to range checked immediates. 2016-04-11 15:20:40 +00:00
Mips16RegisterInfo.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Mips16RegisterInfo.h
Mips32r6InstrFormats.td
Mips32r6InstrInfo.td Revert "[mips][microMIPS] Implement CFC*, CTC* and LDC* instructions" 2016-05-12 12:46:06 +00:00
Mips64InstrInfo.td [mips][micromips] Implement DSBH, DSHD, DSLL, DSLL32, DSLLV, DSRA, DSRA32 and DSRAV instructions 2016-05-11 11:17:04 +00:00
Mips64r6InstrInfo.td [mips][microMIPS] Add CodeGen support for MUL* and DMUL* instructions 2016-05-06 08:24:14 +00:00
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp [mips] Fix inconsistent .cprestore behaviour between direct object emission and assembling. 2016-05-06 14:37:24 +00:00
MipsAsmPrinter.h [mips] Range check uimm20 and fixed a bug this revealed. 2016-02-29 16:06:38 +00:00
MipsCCState.cpp [mips] Fix an issue with long double when function roundl is defined 2016-03-14 12:50:23 +00:00
MipsCCState.h
MipsCallingConv.td [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsCondMov.td Revert "[mips] Promote the result of SETCC nodes to GPR width." 2016-03-01 20:25:43 +00:00
MipsConstantIslandPass.cpp [mips][mips16] Use isUnconditionalBranch() in AnalyzeBranch() and constant island pass. 2016-05-06 13:23:51 +00:00
MipsDSPInstrFormats.td [mips][microMIPS][DSP] Implement PACKRL.PH, PICK.PH, PICK.QB, SHILO, SHILOV and WRDSP instructions 2015-12-18 08:59:37 +00:00
MipsDSPInstrInfo.td [mips] Range check uimm16 and fix several bugs this revealed. 2016-02-01 15:13:31 +00:00
MipsDelaySlotFiller.cpp [mips] MIPSR6 Compact jump support 2016-04-05 12:50:29 +00:00
MipsEVAInstrFormats.td [mips] Added support for various EVA ASE instructions. 2015-09-15 10:02:16 +00:00
MipsEVAInstrInfo.td [mips] Range check simm9 and fix a bug this revealed. 2016-03-31 13:15:23 +00:00
MipsFastISel.cpp [mips][fastisel] Conditional moves do not have implicit operands. 2016-05-06 12:57:26 +00:00
MipsFrameLowering.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
MipsFrameLowering.h Change eliminateCallFramePseudoInstr() to return an iterator 2016-03-31 18:33:38 +00:00
MipsHazardSchedule.cpp [PATCH] [mips] Fix forbidden slot hazard handling 2016-04-29 16:04:18 +00:00
MipsISelDAGToDAG.cpp SDAG: Rename Select->SelectImpl and repurpose Select as returning void 2016-05-05 23:19:08 +00:00
MipsISelDAGToDAG.h SDAG: Rename Select->SelectImpl and repurpose Select as returning void 2016-05-05 23:19:08 +00:00
MipsISelLowering.cpp [mips] Use MipsMCExpr instead of MCSymbolRefExpr for all relocations. 2016-05-03 13:35:44 +00:00
MipsISelLowering.h [PR27599] [SystemZ] [SelectionDAG] Fix extension of atomic cmpxchg result. 2016-05-10 16:49:04 +00:00
MipsInstrFPU.td Revert "[mips][microMIPS] Implement CFC*, CTC* and LDC* instructions" 2016-05-12 12:46:06 +00:00
MipsInstrFormats.td [mips] MIPS32R6 compact branch support 2016-03-14 16:24:05 +00:00
MipsInstrInfo.cpp [mips][mips16] Use isUnconditionalBranch() in AnalyzeBranch() and constant island pass. 2016-05-06 13:23:51 +00:00
MipsInstrInfo.h [mips] MIPS32R6 compact branch support 2016-03-14 16:24:05 +00:00
MipsInstrInfo.td Revert "[mips][microMIPS] Implement CFC*, CTC* and LDC* instructions" 2016-05-12 12:46:06 +00:00
MipsLongBranch.cpp [mips] More range-based for loops. NFC. 2016-04-15 20:43:17 +00:00
MipsMCInstLower.cpp [mips] Use MipsMCExpr instead of MCSymbolRefExpr for all relocations. 2016-05-03 13:35:44 +00:00
MipsMCInstLower.h [mips] Use MipsMCExpr instead of MCSymbolRefExpr for all relocations. 2016-05-03 13:35:44 +00:00
MipsMSAInstrFormats.td [mips] Use PredicateControl for the MSA ASE instructions. NFC. 2015-09-24 12:10:23 +00:00
MipsMSAInstrInfo.td [mips] Split mem_msa into range checked mem_simm10 and mem_simm10_lsl[123] 2016-03-31 14:12:01 +00:00
MipsMachineFunction.cpp [mips][microMIPS] Fix for "Cannot copy registers" assertion 2016-04-13 06:17:21 +00:00
MipsMachineFunction.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
MipsModuleISelDAGToDAG.cpp
MipsOptimizePICCall.cpp
MipsOptionRecord.h
MipsOs16.cpp [mips] Use range-based for loops. NFC. 2016-04-08 10:33:00 +00:00
MipsRegisterInfo.cpp [mips][ias] Attempt to fix 'not all control paths return a value' reported by MSVC. 2016-05-09 15:37:52 +00:00
MipsRegisterInfo.h [mips][micromips] Make getPointerRegClass() result depend on the instruction. 2016-05-09 13:38:25 +00:00
MipsRegisterInfo.td [mips][micromips] Make getPointerRegClass() result depend on the instruction. 2016-05-09 13:38:25 +00:00
MipsSEFrameLowering.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
MipsSEFrameLowering.h Re-apply "[mips] Use correct frame register for DWARF info when dynamically realigning the stack."" 2015-11-12 14:11:43 +00:00
MipsSEISelDAGToDAG.cpp [mips] Use range-based for loops and simplify slightly the code. NFC. 2016-04-15 20:18:48 +00:00
MipsSEISelDAGToDAG.h
MipsSEISelLowering.cpp [Mips] Add support for llvm.thread.pointer intrinsic. 2016-04-27 17:21:49 +00:00
MipsSEISelLowering.h
MipsSEInstrInfo.cpp [mips] Fix a small typo that would leave BLTZC out of getAnalyzableBrOpc().' 2016-04-22 13:05:51 +00:00
MipsSEInstrInfo.h [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsSERegisterInfo.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
MipsSERegisterInfo.h
MipsSchedule.td [mips] MIPSR6 Instruction itineraries 2016-03-11 13:05:06 +00:00
MipsScheduleP5600.td TableGen: Check scheduling models for completeness 2016-03-01 20:03:21 +00:00
MipsSubtarget.cpp [mips][micromips] Initial support for micrmomips DSP instructions and addu.qb implementation 2015-10-12 16:07:25 +00:00
MipsSubtarget.h Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
MipsTargetMachine.cpp CodeGen: Move TargetPassConfig from Passes.h to an own header; NFC 2016-05-10 03:21:59 +00:00
MipsTargetMachine.h
MipsTargetObjectFile.cpp Unbreak non-X86 targets from fallout caused by r261462 2016-02-21 01:40:04 +00:00
MipsTargetObjectFile.h Unbreak non-X86 targets from fallout caused by r261462 2016-02-21 01:40:04 +00:00
MipsTargetStreamer.h [mips][ias] Fix O32 .cprestore directive when inside .set noat region and offset is in range. 2016-05-12 14:01:50 +00:00