1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 06:22:56 +02:00
llvm-mirror/lib/Target/Mips
Daniel Sanders 556791680d [mips][ias] Range check uimm5 operands and fix several bugs this revealed.
Summary:
The bugs were:
* append, prepend, and balign were not tested
* balign takes a uimm2 not a uimm5.
* drotr32 was correctly implemented with a uimm5 but the tests expected
  '52' to be valid.
* li/la were implemented with a uimm5 instead of simm32. simm32 isn't
  completely correct either but I'll fix that when I get to simm32.

A notable omission are some of the shift instructions. Several of these
have been implemented using a single uimm6 instruction (rather than two
uimm5 instructions and a CodeGen-only uimm6 pseudo). These will be updated
in the uimm6 patch.

Reviewers: vkalintiris

Subscribers: llvm-commits, dsanders

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

llvm-svn: 254164
2015-11-26 16:35:41 +00:00
..
AsmParser [mips][ias] Range check uimm5 operands and fix several bugs this revealed. 2015-11-26 16:35:41 +00:00
Disassembler Fix UMRs in Mips disassembler on invalid instruction streams 2015-11-19 21:51:55 +00:00
InstPrinter [mips][microMIPS] Implement LWM16, SB16, SH16, SW16, SWSP and SWM16 instructions 2015-11-12 13:21:33 +00:00
MCTargetDesc [mips] .ent and .end should also set the type and size of the symbol respectively. 2015-11-23 16:08:03 +00:00
TargetInfo
CMakeLists.txt
LLVMBuild.txt
Makefile
MicroMips32r6InstrFormats.td [mips][microMIPS] Implement LWM16, SB16, SH16, SW16, SWSP and SWM16 instructions 2015-11-12 13:21:33 +00:00
MicroMips32r6InstrInfo.td [mips][microMIPS] Implement LWM16, SB16, SH16, SW16, SWSP and SWM16 instructions 2015-11-12 13:21:33 +00:00
MicroMips64r6InstrFormats.td [mips][microMIPS] Implement DDIV, DMOD, DDIVU and DMODU instructions 2015-08-18 14:40:43 +00:00
MicroMips64r6InstrInfo.td [mips][microMIPS] Implement DDIV, DMOD, DDIVU and DMODU instructions 2015-08-18 14:40:43 +00:00
MicroMipsDSPInstrFormats.td [mips][microMIPS] Implement EXTP, EXTPDP, EXTPDPV, EXTPV, EXTR[_RS].W, EXTR_S.H, EXTRV[_RS].W and EXTRV_S.H instructions 2015-11-17 12:54:15 +00:00
MicroMipsDSPInstrInfo.td [mips][microMIPS] Implement MUL[_S].PH, MULEQ_S.W.PHL, MULEQ_S.W.PHR, MULEU_S.PH.QBL, MULEU_S.PH.QBR, MULQ_RS.PH, MULQ_RS.W, MULQ_S.PH and MULQ_S.W instructions 2015-11-20 07:14:52 +00:00
MicroMipsInstrFormats.td [mips][microMIPS] Implement LWM16, SB16, SH16, SW16, SWSP and SWM16 instructions 2015-11-12 13:21:33 +00:00
MicroMipsInstrFPU.td [mips][sched] Split IIBranch into specific instruction classes. 2015-09-22 13:36:28 +00:00
MicroMipsInstrInfo.td [mips][ias] Range check uimm5 operands and fix several bugs this revealed. 2015-11-26 16:35:41 +00:00
Mips16FrameLowering.cpp Remove windows line endings introduced by r252177. NFC. 2015-11-05 21:54:58 +00:00
Mips16FrameLowering.h
Mips16HardFloat.cpp [mips][mips16] Re-work the inline assembly stubs to work with IAS. NFC. 2015-10-21 12:44:14 +00:00
Mips16HardFloatInfo.cpp
Mips16HardFloatInfo.h
Mips16InstrFormats.td
Mips16InstrInfo.cpp Remove windows line endings introduced by r252177. NFC. 2015-11-05 21:54:58 +00:00
Mips16InstrInfo.h
Mips16InstrInfo.td [mips][sched] Split IIBranch into specific instruction classes. 2015-09-22 13:36:28 +00:00
Mips16ISelDAGToDAG.cpp Remove windows line endings introduced by r252177. NFC. 2015-11-05 21:54:58 +00:00
Mips16ISelDAGToDAG.h
Mips16ISelLowering.cpp Mips: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:15:20 +00:00
Mips16ISelLowering.h
Mips16RegisterInfo.cpp
Mips16RegisterInfo.h
Mips32r6InstrFormats.td
Mips32r6InstrInfo.td [mips][ias] Range check uimm2 operands and fix a bug this revealed. 2015-11-06 12:22:31 +00:00
Mips64InstrInfo.td [mips][ias] Range check uimm5 operands and fix several bugs this revealed. 2015-11-26 16:35:41 +00:00
Mips64r6InstrInfo.td [mips][ias] Range check uimm2 operands and fix a bug this revealed. 2015-11-06 12:22:31 +00:00
Mips.h
Mips.td [mips][mips16] MIPS16 is not a CPU/Architecture but is an ASE. 2015-10-15 14:34:23 +00:00
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp Mips: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:15:20 +00:00
MipsAsmPrinter.h
MipsCallingConv.td [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsCCState.cpp Use std::is_sorted to replace a custom version. Also replace a comparison predicate struct with a lambda. 2015-10-17 21:32:26 +00:00
MipsCCState.h
MipsCondMov.td
MipsConstantIslandPass.cpp Mips: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:15:20 +00:00
MipsDelaySlotFiller.cpp Let SelectionDAG start to use probability-based interface to add successors. 2015-11-24 08:51:23 +00:00
MipsDSPInstrFormats.td [mips][microMIPS] Implement DPA.W.PH, DPAQ_S.W.PH, DPAQ_SA.L.W, DPAQX_S.W.PH, DPAQX_SA.W.PH, DPAU.H.QBL, DPAU.H.QBR and DPAX.W.PH instructions 2015-10-15 08:59:45 +00:00
MipsDSPInstrInfo.td [mips][ias] Range check uimm5 operands and fix several bugs this revealed. 2015-11-26 16:35:41 +00:00
MipsEVAInstrFormats.td [mips] Added support for various EVA ASE instructions. 2015-09-15 10:02:16 +00:00
MipsEVAInstrInfo.td [mips] Added support for various EVA ASE instructions. 2015-09-15 10:02:16 +00:00
MipsFastISel.cpp Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
MipsFrameLowering.cpp
MipsFrameLowering.h
MipsInstrFormats.td [mips] Add support for branch-likely pseudo-instructions 2015-09-15 15:06:26 +00:00
MipsInstrFPU.td [mips][microMIPS] Fix an issue with selecting sqrt instruction in LLVM backend 2015-10-06 15:17:25 +00:00
MipsInstrInfo.cpp PseudoSourceValue: Replace global manager with a manager in a machine function. 2015-08-11 23:09:45 +00:00
MipsInstrInfo.h
MipsInstrInfo.td [mips][ias] Range check uimm5 operands and fix several bugs this revealed. 2015-11-26 16:35:41 +00:00
MipsISelDAGToDAG.cpp
MipsISelDAGToDAG.h
MipsISelLowering.cpp [Mips] Remove an unnecessary wrapping of a predicate with std::ptr_fun. NFC 2015-11-23 07:19:06 +00:00
MipsISelLowering.h [MIPS] add overrides for isCheapToSpeculateCttz() and isCheapToSpeculateCtlz() 2015-11-11 17:24:56 +00:00
MipsLongBranch.cpp Mips: Remove implicit ilist iterator conversions, NFC 2015-10-20 00:15:20 +00:00
MipsMachineFunction.cpp [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsMachineFunction.h [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsMCInstLower.cpp
MipsMCInstLower.h
MipsModuleISelDAGToDAG.cpp
MipsMSAInstrFormats.td [mips] Use PredicateControl for the MSA ASE instructions. NFC. 2015-09-24 12:10:23 +00:00
MipsMSAInstrInfo.td [mips][ias] Range check uimm4 operands and fixed a bug this revealed. 2015-11-06 12:41:43 +00:00
MipsOptimizePICCall.cpp
MipsOptionRecord.h
MipsOs16.cpp
MipsRegisterInfo.cpp [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsRegisterInfo.h
MipsRegisterInfo.td
MipsSchedule.td [mips][p5600] Added P5600 processor and initial scheduler. 2015-09-28 18:24:08 +00:00
MipsScheduleP5600.td [mips][p5600] Added P5600 processor and initial scheduler. 2015-09-28 18:24:08 +00:00
MipsSEFrameLowering.cpp Re-apply "[mips] Use correct frame register for DWARF info when dynamically realigning the stack."" 2015-11-12 14:11:43 +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
MipsSEInstrInfo.cpp [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsSEInstrInfo.h [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsSEISelDAGToDAG.cpp [mips] Check the register class before replacing materializations of zero with $zero in microMIPS. 2015-10-29 10:17:16 +00:00
MipsSEISelDAGToDAG.h
MipsSEISelLowering.cpp [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsSEISelLowering.h
MipsSERegisterInfo.cpp [mips] Interrupt attribute support for mips32r2+. 2015-10-26 12:38:43 +00:00
MipsSERegisterInfo.h
MipsSubtarget.cpp [mips][micromips] Initial support for micrmomips DSP instructions and addu.qb implementation 2015-10-12 16:07:25 +00:00
MipsSubtarget.h [mips][micromips] Initial support for micrmomips DSP instructions and addu.qb implementation 2015-10-12 16:07:25 +00:00
MipsTargetMachine.cpp constify the Function parameter to the TTI creation callback and 2015-09-16 23:38:13 +00:00
MipsTargetMachine.h
MipsTargetObjectFile.cpp Stop producing .data.rel sections. 2015-11-18 06:02:15 +00:00
MipsTargetObjectFile.h
MipsTargetStreamer.h [mips][ias] Implement .cpreturn directive. 2015-09-22 10:50:09 +00:00
MSA.txt Revert: r249536 - Testing commit access with a trival whitespace change. 2015-10-07 10:57:06 +00:00