CodeGen: Emit a libcall if the target doesn't support 16-byte wide atomics
authorDavid Majnemer <david.majnemer@gmail.com>
Fri, 18 Oct 2013 08:03:43 +0000 (08:03 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Fri, 18 Oct 2013 08:03:43 +0000 (08:03 +0000)
commit641bea117d2f5e68c11156b9eea1c9270825dfb9
tree2e190a23136c8a58efa5736d8f7bc2f9a3c2fbc4
parent7a7fc90ba3419490c478174d78a3d1fb5373054d
CodeGen: Emit a libcall if the target doesn't support 16-byte wide atomics

There are targets that support i128 sized scalars but cannot emit
instructions that modify them directly.  The proper thing to do is to
emit a libcall.

This fixes PR17481.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192957 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/RuntimeLibcalls.h
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
lib/CodeGen/TargetLoweringBase.cpp