This is an archive of the discontinued LLVM Phabricator instance.

Add arm64_32 support
ClosedPublic

Authored by jasonmolenda on Oct 15 2019, 2:55 PM.

Details

Reviewers
jasonmolenda
Summary

This patchset adds support for an AArch64 aka arm64 ABI used on Apple's WatchOS -- it's an ILP32 ABI that runs on the arm64 ISA, e.g. the entire process runs in the lower 4GB of its address space.

The changes to lldb are minimal; the llvm Triple used is aarch64_32 and 95% of the patchset is handling that new type as equivalent to aarch64. There are changes to ArchSpec and PlatformRemoteAppleWatch beyond this aarch64_32 case addition, and some tests that are skipped, but there's not a whole lot going on in this patch. From lldb's perspective, these are simply arm64 processes that seem to be ignoring their top 32bits in their pointers, hah.

There is a unit test to check that arm64_32 is recognized, but most of the testing of this patch was running the lldb testsuite against an apple watch, not so much adding new tests specifically for this target.

I wanted to give folks a chance to look this patch over and comment before I land it.

Diff Detail

Repository
rLLDB LLDB

Event Timeline

jasonmolenda created this revision.Oct 15 2019, 2:55 PM
labath added a subscriber: labath.Oct 16 2019, 1:15 AM

(looks good to me)

Thanks for looking it over, Pavel. It touches lots of different files, but the changes are so tiny in most cases, I didn't know who to set as a reviewer. ;)

jasonmolenda accepted this revision.Oct 16 2019, 12:12 PM
This revision is now accepted and ready to land.Oct 16 2019, 12:12 PM
jasonmolenda closed this revision.Oct 16 2019, 12:13 PM

committed in r375032 where I accidentally copied in the wrong phabracator URL, so lol.