This is an archive of the discontinued LLVM Phabricator instance.

[Aarch64] Adding support for Armv9-A Realm Management Extension
ClosedPublic

Authored by pratlucas on Jun 23 2021, 2:29 AM.

Details

Summary

This adds support for Armv9-A's Realm Management Extension, including
three new system registers - MFAR_EL3, GPCCR_EL3 and GPTBR_EL3 - and
four new TLBI instructions.

The reference for the Realm Management Extension can be found at: https://developer.arm.com/documentation/ddi0615/aa.

Based on patches by Victor Campos.

Diff Detail

Event Timeline

pratlucas created this revision.Jun 23 2021, 2:29 AM
pratlucas requested review of this revision.Jun 23 2021, 2:29 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 23 2021, 2:29 AM
pratlucas updated this revision to Diff 353920.Jun 23 2021, 3:54 AM

Adding RME support to release notes.

pratlucas edited the summary of this revision. (Show Details)Jun 24 2021, 2:13 AM
dmgreen added inline comments.Jun 24 2021, 6:13 AM
llvm/lib/Target/AArch64/AArch64SystemOperands.td
478

Should these be in a different Requires block, for RME?

755

Is this register writable?

Matt added a subscriber: Matt.Jun 24 2021, 10:55 AM
pratlucas updated this revision to Diff 354497.Jun 25 2021, 7:34 AM

Adding subtarget feature to control RME availability.

pratlucas marked 2 inline comments as done.Jun 25 2021, 7:36 AM
pratlucas added inline comments.
llvm/lib/Target/AArch64/AArch64SystemOperands.td
755

Yes, according to RME's reference this is a writable register.

pratlucas marked an inline comment as done.Jun 25 2021, 7:36 AM
dmgreen accepted this revision.Jun 27 2021, 11:27 PM

OK Thanks. LGTM then.

llvm/lib/Target/AArch64/AArch64SystemOperands.td
755

Oh yeah, so it does. It doesn't look like there would be much to write to it.

This revision is now accepted and ready to land.Jun 27 2021, 11:27 PM