llvm-6502/lib/Target/Mips
Daniel Sanders e777fb4725 Re-commit: [mips] abs.[ds], and neg.[ds] should be allowed regardless of -enable-no-nans-fp-math
Summary:
They behave in accordance with the Has2008 and ABS2008 configuration bits of the processor which are used to select between the 1985 and 2008 versions of IEEE 754. In 1985 mode, these instructions are arithmetic (i.e. they raise invalid operation exceptions when given NaN), in 2008 mode they are non-arithmetic (i.e. they are copies).

nmadd.[ds], and nmsub.[ds] are still subject to -enable-no-nans-fp-math because the ISA spec does not explicitly state that they obey Has2008 and ABS2008.

Fixed the issue with the previous version of this patch (r205628). A pre-existing 'let Predicate =' statement was removing some predicates that were necessary for FP64 to behave correctly.

Reviewers: matheusalmeida

Reviewed By: matheusalmeida

Differential Revision: http://llvm-reviews.chandlerc.com/D3274



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205844 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-09 09:56:43 +00:00
..
AsmParser MIPS: remove vim swap file 2014-04-04 01:19:54 +00:00
Disassembler [mips] Rewrite MipsAsmParser and MipsOperand. 2014-04-01 10:35:28 +00:00
InstPrinter Revert r205194 - [mips] Removed R_MIPS_GOT. It's identical to R_MIPS_GOT16. 2014-03-31 14:34:36 +00:00
MCTargetDesc [mips] Add initial (experimental) MIPS-IV support. 2014-04-03 12:13:36 +00:00
TargetInfo Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +00:00
CMakeLists.txt This patch has two main functions: 2014-02-14 19:16:39 +00:00
LLVMBuild.txt Add proper dependencies to LLVMBuild.txt in llvm/lib. 2013-12-10 05:39:34 +00:00
Makefile
MicroMipsInstrFormats.td Implementation of 16-bit microMIPS instructions MFHI and MFLO. 2014-04-03 12:47:34 +00:00
MicroMipsInstrFPU.td [mips][sched] Split IIFmoveC1 into II_M[FT]C1, II_M[FT]HC1, II_DM[FT]C1 2014-01-21 15:03:52 +00:00
MicroMipsInstrInfo.td Implementation of 16-bit microMIPS instructions MFHI and MFLO. 2014-04-03 12:47:34 +00:00
Mips16FrameLowering.cpp Replace PROLOG_LABEL with a new CFI_INSTRUCTION. 2014-03-07 06:08:31 +00:00
Mips16FrameLowering.h [mips] Align the stack to 16-bytes for mfp64. 2013-10-29 19:29:03 +00:00
Mips16HardFloat.cpp This patch has two main functions: 2014-02-14 19:16:39 +00:00
Mips16HardFloat.h Checkin in of first of several patches to finish implementation of 2013-05-10 22:25:39 +00:00
Mips16HardFloatInfo.cpp [cleanup] Re-sort all the includes with utils/sort_includes.py. 2014-03-04 10:07:28 +00:00
Mips16HardFloatInfo.h This patch has two main functions: 2014-02-14 19:16:39 +00:00
Mips16InstrFormats.td Create a pattern for the "trap" instruction. 2013-08-07 04:00:26 +00:00
Mips16InstrInfo.cpp [C++11] Replace llvm::next and llvm::prior with std::next and std::prev. 2014-03-02 12:27:27 +00:00
Mips16InstrInfo.h Delete dead code. 2013-12-06 00:13:50 +00:00
Mips16InstrInfo.td [mips][sched] Split IIStore into II_S[BHWD], II_S[WD][LR], and II_SAVE 2014-01-23 10:31:31 +00:00
Mips16ISelDAGToDAG.cpp [Modules] Move CFG.h to the IR library as it defines graph traits over 2014-03-04 11:45:46 +00:00
Mips16ISelDAGToDAG.h Track IR ordering of SelectionDAG nodes 2/4. 2013-05-25 02:42:55 +00:00
Mips16ISelLowering.cpp [cleanup] Re-sort all the includes with utils/sort_includes.py. 2014-03-04 10:07:28 +00:00
Mips16ISelLowering.h Add address space argument to allowsUnalignedMemoryAccess. 2014-02-05 23:15:53 +00:00
Mips16RegisterInfo.cpp Replace '#include ValueTypes.h' with forward declarations. 2014-03-12 08:00:24 +00:00
Mips16RegisterInfo.h Don't cache the instruction and register info from the TargetMachine, because 2013-06-07 07:04:14 +00:00
Mips64InstrInfo.td [mips] Add Octeon cnMips instructions seqi/snei and v3mulu/vmm0/vmulu. 2014-04-04 16:21:59 +00:00
Mips.h [mips] Revert test commit r195922. 2013-11-28 15:26:33 +00:00
Mips.td [mips] Add initial (experimental) MIPS-IV support. 2014-04-03 12:13:36 +00:00
MipsAnalyzeImmediate.cpp Replace Count{Leading,Trailing}Zeros_{32,64} with count{Leading,Trailing}Zeros. 2013-05-24 22:23:49 +00:00
MipsAnalyzeImmediate.h Even more spelling fixes for "instruction". 2013-09-28 13:42:22 +00:00
MipsAsmPrinter.cpp [mips] Implement NaCl sandboxing of indirect jumps: 2014-02-28 10:00:38 +00:00
MipsAsmPrinter.h Switch all uses of LLVM_OVERRIDE to just use 'override' directly. 2014-03-02 09:09:27 +00:00
MipsCallingConv.td [mips] Forbid the use of registers t6, t7 and t8 if the target is NaCl. 2014-02-07 17:16:40 +00:00
MipsCodeEmitter.cpp remove a bunch of unused private methods 2014-03-23 17:09:26 +00:00
MipsCondMov.td [mips][sched] Split IIFmove into II_C[FT]C1, II_MOV[FNTZ]_[SD], II_MOV_[SD] 2014-01-21 11:28:03 +00:00
MipsConstantIslandPass.cpp remove a bunch of unused private methods 2014-03-23 17:09:26 +00:00
MipsDelaySlotFiller.cpp [mips] Implement NaCl sandboxing of loads, stores and SP changes: 2014-03-10 20:34:23 +00:00
MipsDSPInstrFormats.td [mips] DSP-ASE move from HI/LO register instructions. 2013-04-18 00:52:44 +00:00
MipsDSPInstrInfo.td [mips] Define a pseudo instruction which writes to both the lower and higher 2013-10-15 01:48:30 +00:00
MipsFrameLowering.cpp Make consistent use of MCPhysReg instead of uint16_t throughout the tree. 2014-04-04 05:16:06 +00:00
MipsFrameLowering.h
MipsInstrFormats.td [mips] Add Octeon cnMips instructions seqi/snei and v3mulu/vmm0/vmulu. 2014-04-04 16:21:59 +00:00
MipsInstrFPU.td Re-commit: [mips] abs.[ds], and neg.[ds] should be allowed regardless of -enable-no-nans-fp-math 2014-04-09 09:56:43 +00:00
MipsInstrInfo.cpp [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
MipsInstrInfo.h [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
MipsInstrInfo.td Re-commit: [mips] abs.[ds], and neg.[ds] should be allowed regardless of -enable-no-nans-fp-math 2014-04-09 09:56:43 +00:00
MipsISelDAGToDAG.cpp [Modules] Move CFG.h to the IR library as it defines graph traits over 2014-03-04 11:45:46 +00:00
MipsISelDAGToDAG.h [mips] Prevent %lo relocation being used on MSA loads and stores. 2014-03-03 14:31:21 +00:00
MipsISelLowering.cpp Re-commit: [mips] abs.[ds], and neg.[ds] should be allowed regardless of -enable-no-nans-fp-math 2014-04-09 09:56:43 +00:00
MipsISelLowering.h Make consistent use of MCPhysReg instead of uint16_t throughout the tree. 2014-04-04 05:16:06 +00:00
MipsJITInfo.cpp [test commit] Minor comment change. 2013-07-24 13:02:35 +00:00
MipsJITInfo.h
MipsLongBranch.cpp [C++11] Replace llvm::next and llvm::prior with std::next and std::prev. 2014-03-02 12:27:27 +00:00
MipsMachineFunction.cpp [mips] Simplify and optimize code. 2013-10-08 18:13:24 +00:00
MipsMachineFunction.h [Modules] Move ValueMap to the IR library. While this class does not 2014-03-04 11:26:31 +00:00
MipsMCInstLower.cpp Move the llvm mangler to lib/IR. 2014-01-07 21:19:40 +00:00
MipsMCInstLower.h The asm printer has a mangler. Use it. 2013-10-29 16:24:21 +00:00
MipsModuleISelDAGToDAG.cpp
MipsModuleISelDAGToDAG.h
MipsMSAInstrFormats.td [mips][msa] Add DLSA instruction. 2014-02-10 12:05:17 +00:00
MipsMSAInstrInfo.td [mips] Rewrite MipsAsmParser and MipsOperand. 2014-04-01 10:35:28 +00:00
MipsOptimizePICCall.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
MipsOs16.cpp Make nomips16 mask not repeat if it ends with a '.'. 2013-09-23 22:36:11 +00:00
MipsOs16.h
MipsRegisterInfo.cpp Make consistent use of MCPhysReg instead of uint16_t throughout the tree. 2014-04-04 05:16:06 +00:00
MipsRegisterInfo.h Make consistent use of MCPhysReg instead of uint16_t throughout the tree. 2014-04-04 05:16:06 +00:00
MipsRegisterInfo.td [mips] Rewrite MipsAsmParser and MipsOperand. 2014-04-01 10:35:28 +00:00
MipsRelocations.h
MipsSchedule.td [mips] Implement shorthand add / sub forms for MIPS. 2014-03-24 14:05:39 +00:00
MipsSEFrameLowering.cpp Replace PROLOG_LABEL with a new CFI_INSTRUCTION. 2014-03-07 06:08:31 +00:00
MipsSEFrameLowering.h [mips] Align the stack to 16-bytes for mfp64. 2013-10-29 19:29:03 +00:00
MipsSEInstrInfo.cpp Implementation of 16-bit microMIPS instructions MFHI and MFLO. 2014-04-03 12:47:34 +00:00
MipsSEInstrInfo.h [mips] Define a pseudo instruction which writes to both the lower and higher 2013-10-15 01:48:30 +00:00
MipsSEISelDAGToDAG.cpp [mips] Some uses of isMips64()/hasMips64() are really tests for 64-bit GPR's 2014-03-27 16:42:17 +00:00
MipsSEISelDAGToDAG.h [mips] Prevent %lo relocation being used on MSA loads and stores. 2014-03-03 14:31:21 +00:00
MipsSEISelLowering.cpp [mips] Rewrite MipsAsmParser and MipsOperand. 2014-04-01 10:35:28 +00:00
MipsSEISelLowering.h Switch all uses of LLVM_OVERRIDE to just use 'override' directly. 2014-03-02 09:09:27 +00:00
MipsSelectionDAGInfo.cpp
MipsSelectionDAGInfo.h
MipsSERegisterInfo.cpp Replace '#include ValueTypes.h' with forward declarations. 2014-03-12 08:00:24 +00:00
MipsSERegisterInfo.h Don't cache the instruction and register info from the TargetMachine, because 2013-06-07 07:04:14 +00:00
MipsSubtarget.cpp [mips] Some uses of isMips64()/hasMips64() are really tests for 64-bit GPR's 2014-03-27 16:42:17 +00:00
MipsSubtarget.h [mips] Add initial (experimental) MIPS-IV support. 2014-04-03 12:13:36 +00:00
MipsTargetMachine.cpp Fix regression with -O0 for mips . 2014-03-10 16:31:25 +00:00
MipsTargetMachine.h [mips] Implement MipsTargetMachine::getInstrItineraryData(). 2013-07-12 23:33:22 +00:00
MipsTargetObjectFile.cpp Pass the Mangler by reference. 2014-02-08 14:53:28 +00:00
MipsTargetObjectFile.h Switch all uses of LLVM_OVERRIDE to just use 'override' directly. 2014-03-02 09:09:27 +00:00
MipsTargetStreamer.h [mips] Add support to '.set mips64'. 2014-03-26 15:14:32 +00:00
MSA.txt [mips] BSEL's and BINS[RL] operands are reversed compared to the vselect node used in the pattern. 2014-03-12 11:54:00 +00:00