summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCWinEH.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2016-08-29 22:25:36 +0000
committerHal Finkel <hfinkel@anl.gov>2016-08-29 22:25:36 +0000
commit3d70a9dbb7d39e0e1ebf453153135f698bd201a4 (patch)
tree1573b066cccc4e1cbcf625630f74f9a9dc10b972 /llvm/lib/MC/MCWinEH.cpp
parent8223a1d09f6bce6a31ae88efce44a72e394018f4 (diff)
downloadbcm5719-llvm-3d70a9dbb7d39e0e1ebf453153135f698bd201a4.tar.gz
bcm5719-llvm-3d70a9dbb7d39e0e1ebf453153135f698bd201a4.zip
[PowerPC] Fix i8/i16 atomics for little-Endian targets without partword atomics
For little-Endian PowerPC, we generally target only P8 and later by default. However, generic (older) 64-bit configurations are still an option, and in that case, partword atomics are not available (e.g. stbcx.). To lower i8/i16 atomics without true i8/i16 atomic operations, we emulate using i32 atomics in combination with a bunch of shifting and masking, etc. The amount by which to shift in little-Endian mode is different from the amount in big-Endian mode (it is inverted -- meaning we can leave off the xor when computing the amount). Fixes PR22923. llvm-svn: 280022
Diffstat (limited to 'llvm/lib/MC/MCWinEH.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud