llvm/lib
Daniel Sanders 58b6bfeb22 [mips][fp64] Add an implicit def to MTHC1 claiming that it reads the lower 32-bits of 64-bit FPR
Summary:
This is a white lie to workaround a widespread bug in the -mfp64
implementation.

The problem is that none of the 32-bit fpu ops mention the fact that they
clobber the upper 32-bits of the 64-bit FPR. This allows MTHC1 to be
scheduled on the wrong side of most 32-bit FPU ops, particularly MTC1.
Fixing that requires a major overhaul of the FPU implementation which can't
be done right now due to time constraints.

The testcase is SingleSource/Benchmarks/Misc/oourafft.c when given
TARGET_CFLAGS='-mips32r2 mfp64 -mmsa'.

Also correct the comment added in r203464 to indicate that two
instructions were affected.

Reviewers: matheusalmeida, jacksprat

Reviewed By: matheusalmeida

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203659 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-12 13:35:43 +00:00
..
Analysis IR: add a second ordering operand to cmpxhg for failure 2014-03-11 10:48:52 +00:00
AsmParser IR: add a second ordering operand to cmpxhg for failure 2014-03-11 10:48:52 +00:00
Bitcode IR: add a second ordering operand to cmpxhg for failure 2014-03-11 10:48:52 +00:00
CodeGen Replace '#include ValueTypes.h' with forward declarations. 2014-03-12 08:00:24 +00:00
DebugInfo Replace OwningPtr<T> with std::unique_ptr<T>. 2014-03-06 05:51:42 +00:00
ExecutionEngine [ppc64] Patch in TOC restore code after all external function calls 2014-03-11 15:26:27 +00:00
IR Remove copy ctors that did the same thing as the default one. 2014-03-11 11:32:49 +00:00
IRReader Replace OwningPtr<T> with std::unique_ptr<T>. 2014-03-06 05:51:42 +00:00
LineEditor [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
Linker [Layering] Sink Linker.h into a Linker subdirectory to make it 2014-03-06 03:42:23 +00:00
LTO [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-08 07:51:20 +00:00
MC Simplify a really complicated check for Arch == X86_64. 2014-03-11 21:22:57 +00:00
Object Object: rename ARMV7 to ARMNT 2014-03-11 03:08:37 +00:00
Option Avoid buffer copies when a Twine already is a StringRef. 2013-12-03 18:18:28 +00:00
Support support: add a utility function to normalise path separators 2014-03-11 22:05:42 +00:00
TableGen Replace OwningPtr<T> with std::unique_ptr<T>. 2014-03-06 05:51:42 +00:00
Target [mips][fp64] Add an implicit def to MTHC1 claiming that it reads the lower 32-bits of 64-bit FPR 2014-03-12 13:35:43 +00:00
Transforms Fix crash in PRE. 2014-03-11 15:07:32 +00:00
CMakeLists.txt Introduce line editor library. 2014-01-31 23:46:14 +00:00
LLVMBuild.txt Introduce line editor library. 2014-01-31 23:46:14 +00:00
Makefile Introduce line editor library. 2014-01-31 23:46:14 +00:00