diff options
author | Alex Bradbury <asb@asbradbury.org> | 2020-06-25 11:38:33 +0100 |
---|---|---|
committer | Tom Stellard <tstellar@redhat.com> | 2020-06-25 16:13:53 -0700 |
commit | f8e49af4f1adcf457ea32e7164a126b10357cf4f (patch) | |
tree | dfde209b720b11d3f5c384ea2e12c6e12557f9a7 /lldb/packages/Python/lldbsuite/test/lang/cpp/static_methods | |
parent | 9bf7ca2c92a8c78129e503956cc4c6e9db13bec5 (diff) | |
download | bcm5719-llvm-f8e49af4f1adcf457ea32e7164a126b10357cf4f.tar.gz bcm5719-llvm-f8e49af4f1adcf457ea32e7164a126b10357cf4f.zip |
[LegalizeTypes][RISCV] Correctly sign-extend comparison for ATOMIC_CMP_XCHG
Currently, the comparison argument used for ATOMIC_CMP_XCHG is legalised
with GetPromotedInteger, which leaves the upper bits of the value
undefind. Since this is used for comparing in an LR/SC loop with a
full-width comparison, we must sign extend it on RISC-V.
This is related to https://reviews.llvm.org/D58829, which solved the
issue for ATOMIC_CMP_SWAP_WITH_SUCCESS, but not the simpler
ATOMIC_CMP_SWAP.
This patch is a modified form of
616289ed29225c0ddfe5699c7fdf42a0fcbe0ab4 by Jessica Clarke. It localises
the changes to LegalizeIntegerTypes and avoids adding a new virtual
method to TargetLowering to avoid changing the ABI of libLLVM.so.
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp/static_methods')
0 files changed, 0 insertions, 0 deletions