HomePhabricator

[PowerPC] Fix i8/i16 atomics for little-Endian targets without partword atomics

Description

[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.

Details

Committed
hfinkelAug 29 2016, 3:25 PM
Parents
rL280021: [CMake] Use -std=c++11 if supported
Branches
Unknown
Tags
Unknown