Adapt atomic compare and swap to ARMv8-M Baseline
commit12f9739f1606121e335b9a2b01a4e538a7f260c4
authorthopre01 <thopre01@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 26 Oct 2016 16:17:54 +0000 (26 16:17 +0000)
committerthopre01 <thopre01@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 26 Oct 2016 16:17:54 +0000 (26 16:17 +0000)
treee2400171a48808237a6f4ea911f76f522370f9ef
parentdbfd9d29b80dc52c27c1ba3ddea43563a781011d
Adapt atomic compare and swap to ARMv8-M Baseline

2016-10-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M
    Baseline only alternatives to (i) hold store atomic success value in a
    return register rather than a scratch register, (ii) use a low register
    for it and to (iii) ensure the cbranchsi insn generated by the split
    respect the constraints of Thumb-1 cbranchsi4_insn and
    cbranchsi4_scratch.
    * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate
    constraints must match those in atomic_compare_and_swap.
    (cbranchsi4_scratch): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@241578 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/arm/sync.md
gcc/config/arm/thumb1.md