[AArch64] Enable RAS 1.1 system registers in all AArch64
authorPablo Barrio <pablo.barrio@arm.com>
Fri, 18 Sep 2020 13:50:56 +0000 (14:50 +0100)
committerPablo Barrio <pablo.barrio@arm.com>
Tue, 10 Nov 2020 12:13:33 +0000 (12:13 +0000)
commit642b21beba4c75fa2142413e7e4b9140d3194d19
tree7587a8e5deb9f6b829f92de2a14c7e9f31418a3b
parenta97d7b9159a0178b774c20358047035f0091efb3
[AArch64] Enable RAS 1.1 system registers in all AArch64

Some use cases (e.g. kernel devs) have strict requirements to only enable
features available with -march=armv8-a, e.g. no armv8.1-a. Enabling RAS 1.1 in
all AArch64 means they can consider to support it.

Bear in mind that the first versions of the Armv8 architecture still do not
support RAS 1.1. This patch only lets devs write code with the user-friendly
register mnemonic instead of the ugly generic S<op0>_<op1>_<Cn>_<Cm>_<op2>.
They still need to place runtime checks to make sure that the CPU to run on
supports RAS 1.1.

Differential Revision: https://reviews.llvm.org/D90594
llvm/lib/Target/AArch64/AArch64.td
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/lib/Target/AArch64/AArch64Subtarget.h
llvm/lib/Target/AArch64/AArch64SystemOperands.td
llvm/test/MC/AArch64/armv8.4a-ras.s