This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Correctly handle execute-only in EmitStructByval
ClosedPublic

Authored by john.brawn on Jul 11 2023, 3:45 AM.

Details

Summary

Currently when compiling for an execute-only target without movt then EmitStructByval will generate a constant pool load which isn't compatible with execute-only. Handle this by emitting tMOVi32imm, and also simplify the existing movt handling by emitting t2MOVi32imm or MOVi32imm.

Diff Detail

Event Timeline

john.brawn created this revision.Jul 11 2023, 3:45 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 11 2023, 3:45 AM
john.brawn requested review of this revision.Jul 11 2023, 3:45 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 11 2023, 3:45 AM

I've run some tests locally in various configurations. This patch fixes all the outstanding v6m XO faults that I know of.

simonwallis2 accepted this revision.Jul 11 2023, 5:24 AM
This revision is now accepted and ready to land.Jul 11 2023, 5:24 AM
This revision was automatically updated to reflect the committed changes.

Re-committed now that D155301 has been committed.