1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/lib
Saleem Abdulrasool 6f4137a9fc X86: correct 64-bit atomics on 32-bit
We would emit a libcall for a 64-bit atomic on x86 after SVN r212119.  This was
due to the misuse of hasCmpxchg16 to indicate if cmpxchg8b was supported on a
32-bit target.  They were added at different times and would result in the
border condition being mishandled.

This fixes the border case to emit the cmpxchg8b instruction for 64-bit atomic
operations on x86 at the cost of restoring a long-standing bug in the codegen.
We emit a cmpxchg8b on all x86 targets even where the CPU does not support this
instruction (pre-Pentium CPUs).  Although this bug should be fixed, this was
present prior to SVN r212119 and this change, so this is not really introducing
a regression.

llvm-svn: 212956
2014-07-14 16:28:13 +00:00
..
Analysis Templatify DominanceFrontier. 2014-07-12 21:59:52 +00:00
AsmParser Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
Bitcode Fix a bug in the conversion to ErrorOr. 2014-07-04 20:05:56 +00:00
CodeGen CodeGen: add missing include 2014-07-14 16:28:09 +00:00
DebugInfo Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
ExecutionEngine [RuntimeDyld] Fix stub size and offset for AArch64 in RuntimeDyldMachO.h. 2014-07-12 00:16:47 +00:00
IR IR: Allow comdats to be applied to globals with internal linkage 2014-07-13 04:56:11 +00:00
IRReader Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
LineEditor
Linker Include <tuple> to make buildbots happy 2014-06-27 18:38:12 +00:00
LTO Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
MC MC: make MCWin64EHInstruction a POD-like struct 2014-07-13 19:03:45 +00:00
Object Object/LLVMBuild.txt: Sort required_libraries by alphabetical order. 2014-07-14 02:52:08 +00:00
Option Generic: add range-adapter for option parsing. 2014-07-09 13:03:37 +00:00
ProfileData Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
Support Move the API and implementation of clang::driver::getARMCPUForMArch() to llvm::Triple::getARMCPUForArch(). 2014-07-11 21:44:54 +00:00
TableGen Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
Target X86: correct 64-bit atomics on 32-bit 2014-07-14 16:28:13 +00:00
Transforms [CMake] Add LLVM_LINK_COMPONENTS to loadable modules, LLVMHello and BugpointPasses, on Win32. 2014-07-13 13:36:48 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile