]> granicus.if.org Git - llvm/commit
[AArch64] Add support for Transactional Memory Extension (TME)
authorMomchil Velikov <momchil.velikov@arm.com>
Wed, 31 Jul 2019 12:52:17 +0000 (12:52 +0000)
committerMomchil Velikov <momchil.velikov@arm.com>
Wed, 31 Jul 2019 12:52:17 +0000 (12:52 +0000)
commit31b6172a53c542bd5741e37f5ab770017434dca8
tree6699aa0e24bcc07fe1301002a279ab6207b36624
parente650828b52db4cc854371aeb915c0d74bf9a2158
[AArch64] Add support for Transactional Memory Extension (TME)

Re-commit r366322 after some fixes

TME is a future architecture technology, documented in

  https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools
  https://developer.arm.com/docs/ddi0601/a

More about the future architectures:

  https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/new-technologies-for-the-arm-a-profile-architecture

This patch adds support for the TME instructions TSTART, TTEST, TCOMMIT, and
TCANCEL and the target feature/arch extension "tme".

It also implements TME builtin functions, defined in ACLE Q2 2019
(https://developer.arm.com/docs/101028/latest)

Differential Revision: https://reviews.llvm.org/D64416

Patch by Javed Absar and Momchil Velikov

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@367428 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
include/llvm/IR/IntrinsicsAArch64.td
include/llvm/Support/AArch64TargetParser.def
include/llvm/Support/AArch64TargetParser.h
lib/Target/AArch64/AArch64.td
lib/Target/AArch64/AArch64InstrFormats.td
lib/Target/AArch64/AArch64InstrInfo.td
lib/Target/AArch64/AArch64Subtarget.h
test/CodeGen/AArch64/tme.ll [new file with mode: 0644]
test/MC/AArch64/tme-error.s [new file with mode: 0644]
test/MC/AArch64/tme.s [new file with mode: 0644]
test/MC/Disassembler/AArch64/tme.txt [new file with mode: 0644]
unittests/Support/TargetParserTest.cpp