Message ID | 55F2F01C.5@bell.net |
---|---|
State | New |
Headers | show |
On 09/11/2015 05:15 PM, John David Anglin wrote: > On 2015-09-11 4:15 AM, Bernd Schmidt wrote: >> On 09/11/2015 01:21 AM, John David Anglin wrote: >>> As noted in the PR, expand_atomic_compare_and_swap can generate wrong >>> code when libcalls are emitted >>> for the sync_compare_and_swap and the result comparison test. This is >>> fixed by emitting a move insn to copy >>> the result rtx of the sync_compare_and_swap libcall to target_oval >>> instead of directly assigning it. >> Could you provide relevant parts of the rtl dumps or (preferrably) the >> patch you are using to enable the libcall? > > This can be duplicated with a cross to hppa-unknown-linux-gnu with the > following change to enable the libcall: Ok, thanks, This patch is ok. Bernd
Index: config/pa/pa.c =================================================================== --- config/pa/pa.c (revision 227689) +++ config/pa/pa.c (working copy) @@ -5737,7 +5737,7 @@ } if (TARGET_SYNC_LIBCALL) - init_sync_libfuncs (UNITS_PER_WORD); + init_sync_libfuncs (8); } The relevant rtl from .expand is: