llvm-project/llvm/lib/Target/Mips
Daniel Sanders 85fd10bd93 [mips] Range check simm16
Summary:
There are too many instructions to exhaustively test so addiu and lwc2 are
used as representative examples.

It should be noted that many memory instructions that should have simm16
range checking do not because it is also necessary to support the macro
of the same name which accepts simm32. The range checks for these occur in
the macro expansion.

Reviewers: vkalintiris

Subscribers: dsanders, llvm-commits

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

llvm-svn: 265019
2016-03-31 14:34:00 +00:00
..
AsmParser [mips] Range check simm16 2016-03-31 14:34:00 +00:00
Disassembler [mips] Range check simm16 2016-03-31 14:34:00 +00:00
InstPrinter [mips] Use `formatImm` call to print immediate value in the `MipsInstPrinter` 2016-03-17 10:43:36 +00:00
MCTargetDesc [mips] Split mem_msa into range checked mem_simm10 and mem_simm10_lsl[123] 2016-03-31 14:12:01 +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 Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
MSA.txt Revert: r249536 - Testing commit access with a trival whitespace change. 2015-10-07 10:57:06 +00:00
MicroMips32r6InstrFormats.td [mips][microMIPS] Implement MTC*, MTHC* and DMTC* instructions 2016-03-24 08:02:09 +00:00
MicroMips32r6InstrInfo.td [mips][microMIPS] Implement MFC*, MFHC* and DMFC* instructions 2016-03-31 08:51:24 +00:00
MicroMips64r6InstrFormats.td [mips][microMIPS] Add CodeGen support for DIV, MOD, DIVU, MODU, DDIV, DMOD, DDIVU and DMODU instructions 2016-03-24 09:22:45 +00:00
MicroMips64r6InstrInfo.td [mips][microMIPS] Implement MFC*, MFHC* and DMFC* instructions 2016-03-31 08:51:24 +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 [mips][microMIPS] Implement MFC*, MFHC* and DMFC* instructions 2016-03-31 08:51:24 +00:00
MicroMipsInstrFormats.td [mips][microMIPS] Implement LWM16, SB16, SH16, SW16, SWSP and SWM16 instructions 2015-11-12 13:21:33 +00:00
MicroMipsInstrInfo.td [mips] Range check simm9 and fix a bug this revealed. 2016-03-31 13:15:23 +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 Remove windows line endings introduced by r252177. NFC. 2015-11-05 21:54:58 +00:00
Mips16FrameLowering.h PrologEpilogInserter: Rewrite API to determine callee save regsiters. 2015-07-14 17:17:13 +00:00
Mips16HardFloat.cpp [mips] Use range-based for loops. NFC. 2016-03-14 15:05:30 +00:00
Mips16HardFloatInfo.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Mips16HardFloatInfo.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Mips16ISelDAGToDAG.cpp [mips] Remove redundant inclusions of MipsAnalyzeImmediate.h 2016-02-03 15:54:12 +00:00
Mips16ISelDAGToDAG.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Mips16ISelLowering.cpp Mips: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:15:20 +00:00
Mips16ISelLowering.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Mips16InstrFormats.td
Mips16InstrInfo.cpp Remove windows line endings introduced by r252177. NFC. 2015-11-05 21:54:58 +00:00
Mips16InstrInfo.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Mips16InstrInfo.td [mips] Correct MIPS16 jal/jalx to have uimm26 offsets and add MC layer range checks. NFC. 2016-03-29 09:40:38 +00:00
Mips16RegisterInfo.cpp [mips] Remove redundant inclusions of MipsAnalyzeImmediate.h 2016-02-03 15:54:12 +00:00
Mips16RegisterInfo.h
Mips32r6InstrFormats.td [mips][microMIPSr6] Implement initial mapping support 2015-04-20 12:42:08 +00:00
Mips32r6InstrInfo.td [mips][microMIPS] Add CodeGen support for DIV, MOD, DIVU, MODU, DDIV, DMOD, DDIVU and DMODU instructions 2016-03-24 09:22:45 +00:00
Mips64InstrInfo.td [mips][microMIPS] Implement MFC*, MFHC* and DMFC* instructions 2016-03-31 08:51:24 +00:00
Mips64r6InstrInfo.td [mips] Range check simm16 2016-03-31 14:34:00 +00:00
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsAsmPrinter.cpp [mips] Range check uimm20 and fixed a bug this revealed. 2016-02-29 16:06:38 +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 Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
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 Silencing warnings from MSVC 2015 Update 2. All of these changes silence "C4334 '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)". NFC. 2016-03-30 21:30:00 +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][microMIPS] Delay slot filler modifications 2016-03-23 10:29:38 +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][microMIPS] Disable FastISel for microMIPS 2016-01-28 11:08:03 +00:00
MipsFrameLowering.cpp [mips] Remove redundant inclusions of MipsAnalyzeImmediate.h 2016-02-03 15:54:12 +00:00
MipsFrameLowering.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsHazardSchedule.cpp [Mips] Fix -Wunused-private-field warning after r263444. 2016-03-14 18:10:20 +00:00
MipsISelDAGToDAG.cpp Make TargetLowering::getPointerTy() taking DataLayout as an argument 2015-07-09 02:09:04 +00:00
MipsISelDAGToDAG.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsISelLowering.cpp [mips][microMIPS] Add CodeGen support for DIV, MOD, DIVU, MODU, DDIV, DMOD, DDIVU and DMODU instructions 2016-03-24 09:22:45 +00:00
MipsISelLowering.h CodeGen: extend RHS when splitting ATOMIC_CMP_SWAP_WITH_SUCCESS. 2016-03-24 15:38:38 +00:00
MipsInstrFPU.td [mips][microMIPS] Implement MFC*, MFHC* and DMFC* instructions 2016-03-31 08:51:24 +00:00
MipsInstrFormats.td [mips] MIPS32R6 compact branch support 2016-03-14 16:24:05 +00:00
MipsInstrInfo.cpp [mips] Test commit: Mark insertNoop as dead code (NFC) 2016-03-29 13:02:19 +00:00
MipsInstrInfo.h [mips] MIPS32R6 compact branch support 2016-03-14 16:24:05 +00:00
MipsInstrInfo.td [mips] Range check simm16 2016-03-31 14:34:00 +00:00
MipsLongBranch.cpp Normalize MBB's successors' probabilities in several locations. 2015-12-13 09:26:17 +00:00
MipsMCInstLower.cpp Use MCSymbols for FastISel. 2015-06-23 12:21:54 +00:00
MipsMCInstLower.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +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-03-24 06:05:35 +00:00
MipsMachineFunction.h [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsModuleISelDAGToDAG.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsOptimizePICCall.cpp
MipsOptionRecord.h [mips] Add COP0 register class and use it in M[FT]C0/DM[FT]C0. 2015-06-27 15:39:19 +00:00
MipsOs16.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsRegisterInfo.cpp [mips] Remove redundant inclusions of MipsAnalyzeImmediate.h 2016-02-03 15:54:12 +00:00
MipsRegisterInfo.h [mips] Remove unused function declarations from MipsRegisterInfo.h. NFC. 2016-02-28 16:55:28 +00:00
MipsRegisterInfo.td [mips][microMIPS] Fix for "Cannot copy registers" assertion 2016-03-24 06:05:35 +00:00
MipsSEFrameLowering.cpp [mips] Remove redundant inclusions of MipsAnalyzeImmediate.h 2016-02-03 15:54:12 +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 Revert "[mips] Promote the result of SETCC nodes to GPR width." 2016-03-01 20:25:43 +00:00
MipsSEISelDAGToDAG.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsSEISelLowering.cpp [DAG] use isUndef() ; NFCI 2016-03-14 17:28:46 +00:00
MipsSEISelLowering.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsSEInstrInfo.cpp [mips] MIPS32R6 compact branch support 2016-03-14 16:24:05 +00:00
MipsSEInstrInfo.h [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsSERegisterInfo.cpp [mips] Remove redundant inclusions of MipsAnalyzeImmediate.h 2016-02-03 15:54:12 +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 [Mips] Fix -Wunused-private-field warning after r263444. 2016-03-14 18:10:20 +00:00
MipsTargetMachine.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
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] Implement .cpreturn directive. 2015-09-22 10:50:09 +00:00