This is an archive of the discontinued LLVM Phabricator instance.

Enable some pointer authentication instructions for aarch64 v8a targets
ClosedPublic

Authored by LukeCheeseman on Jul 25 2018, 4:46 AM.

Details

Summary
  • Some of the v8.3 pointer authentication instruction inhabit the Hint space
  • These instructions can be assembled to hint instructions which act as NOP instructions prior to v8.3
  • This patch permits using the hint instructions for all v8a targets
  • Also, correct the RETA{A,B} instructions to match the instruction attributes of RET (set isTerminator and isBarrier)

Diff Detail

Event Timeline

LukeCheeseman created this revision.Jul 25 2018, 4:46 AM
javed.absar added inline comments.Jul 25 2018, 7:29 AM
lib/Target/AArch64/AArch64InstrInfo.td
487

May be this comment has to change accordingly (with moving of Predicate)

LukeCheeseman added inline comments.Jul 25 2018, 7:30 AM
lib/Target/AArch64/AArch64InstrInfo.td
487

No, these are still v8.3a Pointer Authentication instructions. Only, they will assemble to a legal instruction for v8a architectures.

thopre added a subscriber: thopre.Jul 25 2018, 8:38 AM
thopre added inline comments.
lib/Target/AArch64/AArch64InstrInfo.td
544

This change does not appear related to the change described. It should IMHO either be split in a separate patch or if that is deemed too cumbersome it should at least be mentioned in the patch description (and thus commit message).

LukeCheeseman edited the summary of this revision. (Show Details)Jul 26 2018, 2:33 AM
LukeCheeseman marked 2 inline comments as done.
thopre accepted this revision.Jul 26 2018, 5:33 AM

LGTM now.

This revision is now accepted and ready to land.Jul 26 2018, 5:33 AM
This revision was automatically updated to reflect the committed changes.