[ARM][AArch64] Adding basic support for the v8.7-A architecture
authorLucas Prates <lucas.prates@arm.com>
Thu, 12 Nov 2020 09:50:58 +0000 (09:50 +0000)
committerLucas Prates <lucas.prates@arm.com>
Thu, 17 Dec 2020 13:45:08 +0000 (13:45 +0000)
commit42b92b31b8b8ee9fdcd68adfe57db11561a5edcd
tree84fe00067b7d1623a5f3aee7ad037b94abb7f2f4
parent83ea17fc5f742abb0ab0757ef9e667a4e2b39ea8
[ARM][AArch64] Adding basic support for the v8.7-A architecture

This introduces support for the v8.7-A architecture through a new
subtarget feature called "v8.7a". It adds two new "WFET" and "WFIT"
instructions, the nXS limited-TLB-maintenance qualifier for DSB and TLBI
instructions, a new CPU id register, ID_AA64ISAR2_EL1, and the new
HCRX_EL2 system register.

Based on patches written by Simon Tatham and Victor Campos.

Reviewed By: ostannard

Differential Revision: https://reviews.llvm.org/D91772
20 files changed:
llvm/lib/Target/AArch64/AArch64.td
llvm/lib/Target/AArch64/AArch64InstrFormats.td
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/lib/Target/AArch64/AArch64Subtarget.h
llvm/lib/Target/AArch64/AArch64SystemOperands.td
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h
llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
llvm/lib/Target/ARM/ARMSubtarget.h
llvm/test/MC/AArch64/arm64-system-encoding.s
llvm/test/MC/AArch64/armv8.7a-hcx.s [new file with mode: 0644]
llvm/test/MC/AArch64/armv8.7a-wfxt.s [new file with mode: 0644]
llvm/test/MC/AArch64/armv8.7a-xs.s [new file with mode: 0644]
llvm/test/MC/AArch64/basic-a64-diagnostics.s
llvm/test/MC/Disassembler/AArch64/armv8.7a-hcx.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/AArch64/armv8.7a-wfxt.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/AArch64/armv8.7a-xs.txt [new file with mode: 0644]
llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt