Use plq/pstq for atomic_{load,store}<mode>
authorAaron Sawdey <acsawdey@linux.ibm.com>
Mon, 20 Apr 2020 18:01:43 +0000 (13:01 -0500)
committerAaron Sawdey <acsawdey@linux.ibm.com>
Wed, 22 Apr 2020 17:19:33 +0000 (12:19 -0500)
commit3bcdb5dec72b6d7b197821c2b814bc9fc07f4628
treefc0cf4cab07bd73a5607091c2c158aafbaf92652
parent464092e0f1123878cda3e2fa37b1cdc6a26ebbd4
Use plq/pstq for atomic_{load,store}<mode>

For future architecture with prefix instructions, always use plq/pstq
rather than lq/stq for atomic load of quadword. Then we never have to
do the doubleword swap on little endian. Before this fix, -mno-pcrel
would generate lq with the doubleword swap (which was ok) and -mpcrel
would generate plq, also with the doubleword swap, which was wrong.

2020-04-20  Aaron Sawdey  <acsawdey@linux.ibm.com>

PR target/94622
* config/rs6000/sync.md (load_quadpti): Add attr "prefixed"
if TARGET_PREFIXED.
(store_quadpti): Ditto.
(atomic_load<mode>): Do not swap doublewords if TARGET_PREFIXED as
plq will be used and doesn't need it.
(atomic_store<mode>): Ditto, for pstq.
gcc/ChangeLog
gcc/config/rs6000/sync.md