This is an archive of the discontinued LLVM Phabricator instance.

Support clrex on ARMv6K
ClosedPublic

Authored by andrew on Dec 27 2015, 3:34 AM.

Details

Reviewers
dim
rengolin
Summary

The ARM clrex instruction was added to armv6k so enable it there.

This is needed by FreeBSD as, when targeting ARMv6, we require armv6k, and make use of the clrex instruction.

Diff Detail

Repository
rL LLVM

Event Timeline

andrew updated this revision to Diff 43659.Dec 27 2015, 3:34 AM
andrew retitled this revision from to Support clrex on ARMv6K.
andrew updated this object.
andrew added reviewers: dim, rengolin.
andrew set the repository for this revision to rL LLVM.
rengolin accepted this revision.Dec 27 2015, 12:21 PM
rengolin edited edge metadata.

Apart from the nit comment, LGTM. Thanks!

test/MC/ARM/arm11-hint-instr.s
8

Does this work with just -triple=thumbv6k, instead of using -mcpu?

This revision is now accepted and ready to land.Dec 27 2015, 12:21 PM
andrew added inline comments.Dec 28 2015, 2:34 AM
test/MC/ARM/arm11-hint-instr.s
8

No, because 1. the nop instruction is changed to a mov r8, r8 with different encoding, and 2. complains the further instructions need either armv6m or armv6t2:

<stdin>:21:9: error: instruction requires: armv6m or armv6t2
        yield
        ^
rengolin added inline comments.Dec 28 2015, 7:06 AM
test/MC/ARM/arm11-hint-instr.s
8

Sounds like it wasn't meant to be that, anyway. We can fix that later, though. Feel free to commit.

andrew closed this revision.Dec 28 2015, 2:19 PM

Committed at rL256505