This is an archive of the discontinued LLVM Phabricator instance.

[lldb][AArch64] Update disassembler feature list and add tests for all extensions
ClosedPublic

Authored by DavidSpickett on Mar 18 2022, 5:18 AM.

Details

Summary

This updates the disassembler to enable every optional extension.
Previously we had added things that we added "support" for in lldb.
(where support means significant work like new registers, fault types, etc.)

Something like TME (transactional memory) wasn't added because
there are no new lldb features for it. However we should still be
disassembling the instructions.

So I went through the AArch64 extensions and added all the missing
ones. The new test won't prevent us missing a new extension but it
does at least document our current settings.

Diff Detail

Event Timeline

DavidSpickett created this revision.Mar 18 2022, 5:18 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 18 2022, 5:18 AM
DavidSpickett requested review of this revision.Mar 18 2022, 5:18 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 18 2022, 5:18 AM
labath added a subscriber: labath.Mar 18 2022, 5:25 AM

Can you make this a shell test? Something like llvm-mc | lldb -o "disassemble -n function_with_funky_insns" | FileCheck ?

Presumably, llvm-mc can assemble anything that we are able to disassemble...

Can you make this a shell test?

Great idea, I'll do that.

Switch to a shell test.

DavidSpickett edited the summary of this revision. (Show Details)Mar 18 2022, 6:03 AM

Add comment explaining test purpose.

labath accepted this revision.Mar 28 2022, 7:04 AM

Wow. It sounds like we should figure out a way to enable all extensions with a single stroke. Otherwise, this will be an endless cat-and-mouse.

This revision is now accepted and ready to land.Mar 28 2022, 7:04 AM

It sounds like we should figure out a way to enable all extensions with a single stroke.

Totally. llvm-objdump could do with a -mcpu=max equivalent too.

I think it's possible to get all extension names right now, but not the newest arch version. I'll look into it.