diff options
author | James Y Knight <jyknight@google.com> | 2016-06-17 18:11:48 +0000 |
---|---|---|
committer | James Y Knight <jyknight@google.com> | 2016-06-17 18:11:48 +0000 |
commit | 148a6469dccf3c8a20874b1b451549826a1e4da8 (patch) | |
tree | 7f92528634d462dd81abeb5735c3c4cc8ce4f4e1 /libcxx/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp | |
parent | 4cccc488b78c8e3258828a1f18ffc9e61b184bee (diff) | |
download | bcm5719-llvm-148a6469dccf3c8a20874b1b451549826a1e4da8.tar.gz bcm5719-llvm-148a6469dccf3c8a20874b1b451549826a1e4da8.zip |
Support expanding partial-word cmpxchg to full-word cmpxchg in AtomicExpandPass.
Many CPUs only have the ability to do a 4-byte cmpxchg (or ll/sc), not 1
or 2-byte. For those, you need to mask and shift the 1 or 2 byte values
appropriately to use the 4-byte instruction.
This change adds support for cmpxchg-based instruction sets (only SPARC,
in LLVM). The support can be extended for LL/SC-based PPC and MIPS in
the future, supplanting the ISel expansions those architectures
currently use.
Tests added for the IR transform and SPARCv9.
Differential Revision: http://reviews.llvm.org/D21029
llvm-svn: 273025
Diffstat (limited to 'libcxx/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp')
0 files changed, 0 insertions, 0 deletions