diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2018-10-31 09:29:29 +0000 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2018-10-31 02:29:29 -0700 |
commit | 77f33f44baf24c22848197aa80962c003dd7b3e2 (patch) | |
tree | a1fc76d6ee8e85ab16d6ba4a95070461a6e27c8f /libcpp | |
parent | 187cea947e54d08eaed2587edeb49a5cc1fe8d6a (diff) | |
download | gcc-77f33f44baf24c22848197aa80962c003dd7b3e2.zip gcc-77f33f44baf24c22848197aa80962c003dd7b3e2.tar.gz gcc-77f33f44baf24c22848197aa80962c003dd7b3e2.tar.bz2 |
aarch64: Simplify LSE cas generation
The cas insn is a single insn, and if expanded properly need not
be split after reload. Use the proper inputs for the insn.
* config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
Force oldval into the rval register for TARGET_LSE; emit the compare
during initial expansion so that it may be deleted if unused.
(aarch64_gen_atomic_cas): Remove.
* config/aarch64/atomics.md (@aarch64_compare_and_swap<SHORT>_lse):
Change =&r to +r for operand 0; use match_dup for operand 2;
remove is_weak and mod_f operands as unused. Drop the split
and merge with...
(@aarch64_atomic_cas<SHORT>): ... this pattern's output; remove.
(@aarch64_compare_and_swap<GPI>_lse): Similarly.
(@aarch64_atomic_cas<GPI>): Similarly.
From-SVN: r265656
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions