This is an archive of the discontinued LLVM Phabricator instance.

[AArch64InstPrinter] rewrite of printSysAlias
ClosedPublic

Authored by SjoerdMeijer on Feb 24 2017, 3:06 AM.

Details

Summary

This is a cleanup/rewrite of the printSysAlias function. This was not using the tablegen instruction descriptions, but was "manually" decoding the instructions. This has been replaced with calls to lookup_XYZ_ByEncoding tablegen calls.

This revealed several problems. First, instruction IVAU had the wrong encoding. This was cancelled out by the parser that incorrectly matched the wrong encoding. Second, instruction CVAP was missing from the SystemOperands tablegen descriptions, so this has been added. And third, the required target features were not captured in the tablegen descriptions, so support for this has also been added.

Diff Detail

Event Timeline

SjoerdMeijer created this revision.Feb 24 2017, 3:06 AM
olista01 added inline comments.Feb 24 2017, 3:43 AM
lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
766

I think it would be better remove the op0 fields from the other three alias classes, as it is defined to always be 0b01 for all of them.

816

Indentation.

I've removed the op0 fields from the other three alias classes as it is indeed defined to always be 0b01.

This revision is now accepted and ready to land.Feb 27 2017, 5:47 AM
This revision was automatically updated to reflect the committed changes.