This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Assembly support for VMSA
ClosedPublic

Authored by tmatheson on Nov 29 2022, 6:55 AM.

Details

Summary

Virtual Memory System Architecture (VMSA)

This is part of the 2022 A-Profile Architecture extensions and adds support for
the following:

  • Translation Hardening Extension (FEAT_THE)
  • 128-bit Page Table Descriptors (FEAT_D128)
  • 56-bit Virtual Address (FEAT_LVA3)
  • Support for 128-bit System Registers (FEAT_SYSREG128)
  • System Instructions that can take 128-bit inputs (FEAT_SYSINSTR128)
  • 128-bit Atomic Instructions (FEAT_LSE128)
  • Permission Indirection Extension (FEAT_S1PIE, FEAT_S2PIE)
  • Permission Overlay Extension (FEAT_S1POE, FEAT_S2POE)
  • Memory Attribute Index Enhancement (FEAT_AIE)

New instructions added:

  • FEAT_SYSREG128 adds MRRS and MSRR.
  • FEAT_SYSINSTR128 adds the SYSP instruction and TLBIP aliases.
  • FEAT_LSE128 adds LDCLRP, LDSET, and SWPP instructions.
  • FEAT_THE adds the set of RCW* instructions.

Specs for individual instructions can be found here:
https://developer.arm.com/documentation/ddi0602/2022-09/Base-Instructions/

Diff Detail

Event Timeline

tmatheson created this revision.Nov 29 2022, 6:55 AM
Herald added a project: Restricted Project. · View Herald TranscriptNov 29 2022, 6:55 AM
tmatheson requested review of this revision.Nov 29 2022, 6:55 AM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptNov 29 2022, 6:55 AM

Two nits. One below, the other: Please include everyone who contributed to this patch in the patch description.

llvm/include/llvm/Support/AArch64TargetParser.h
82

Comments don't correspond to names :(

llvm/lib/Target/AArch64/AArch64.td
519

Please can you include the feature name?

tmatheson updated this revision to Diff 478596.Nov 29 2022, 7:50 AM

Add feature name to description

tmatheson updated this revision to Diff 478599.Nov 29 2022, 7:54 AM

Add contributors and fix comments

tmatheson marked 2 inline comments as done.Nov 29 2022, 7:55 AM
lenary accepted this revision.Nov 29 2022, 10:28 AM
This revision is now accepted and ready to land.Nov 29 2022, 10:28 AM
This revision was landed with ongoing or failed builds.Nov 30 2022, 5:37 AM
This revision was automatically updated to reflect the committed changes.