This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Fix disassembly of invalid banked register moves
ClosedPublic

Authored by olista01 on Feb 8 2018, 2:19 AM.

Details

Summary

When disassembling banked register move instructions, we don't have an
assembly syntax for the unallocated register numbers, so we have to
return Fail rather than SoftFail. Previously we were returning SoftFail,
then crashing in the InstPrinter as we have no way to represent these
encodings in an assembly string.

This also switches the decoder to use the table-generated list of banked
registers, removing the duplicated list of encodings.

Diff Detail

Repository
rL LLVM

Event Timeline

olista01 created this revision.Feb 8 2018, 2:19 AM
SjoerdMeijer accepted this revision.Feb 8 2018, 2:59 AM

Looks like a very sensible clean up and improvement to me.

Was only wondering about the Cortex-A8 -> A15 change in the test run line.

This revision is now accepted and ready to land.Feb 8 2018, 2:59 AM

Was only wondering about the Cortex-A8 -> A15 change in the test run line.

That's because these banked register instructions were added with the virtualization extension.

This revision was automatically updated to reflect the committed changes.