summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorEvgenii Stepanov <eugenis@google.com>2019-11-15 13:29:54 -0800
committerEvgenii Stepanov <eugenis@google.com>2019-11-19 11:19:53 -0800
commit2535fe5ad3327c8f77654a728986ca0afdf249f7 (patch)
treeb2a34783e6cdf13c0c23e85eb5f0c02681ff70d5 /llvm/lib
parentc97f303880c26007b4e74e3fd0bde5ed802a25f1 (diff)
downloadbcm5719-llvm-2535fe5ad3327c8f77654a728986ca0afdf249f7.tar.gz
bcm5719-llvm-2535fe5ad3327c8f77654a728986ca0afdf249f7.zip
MTE: add more unchecked instructions.
Summary: In particular, 1- and 2-byte loads and stores ignore the pointer tag when using SP as the base register. Reviewers: pcc, ostannard Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70341
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp b/llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
index 3cc556f74ae..73bd434ef12 100644
--- a/llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
+++ b/llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
@@ -97,23 +97,49 @@ FunctionPass *llvm::createAArch64StackTaggingPreRAPass() {
static bool isUncheckedLoadOrStoreOpcode(unsigned Opcode) {
switch (Opcode) {
+ case AArch64::LDRBBui:
+ case AArch64::LDRHHui:
case AArch64::LDRWui:
- case AArch64::LDRSHWui:
case AArch64::LDRXui:
+
case AArch64::LDRBui:
- case AArch64::LDRBBui:
case AArch64::LDRHui:
case AArch64::LDRSui:
case AArch64::LDRDui:
case AArch64::LDRQui:
+
+ case AArch64::LDRSHWui:
+ case AArch64::LDRSHXui:
+
+ case AArch64::LDRSBWui:
+ case AArch64::LDRSBXui:
+
+ case AArch64::LDRSWui:
+
+ case AArch64::STRBBui:
+ case AArch64::STRHHui:
case AArch64::STRWui:
case AArch64::STRXui:
+
case AArch64::STRBui:
- case AArch64::STRBBui:
case AArch64::STRHui:
case AArch64::STRSui:
case AArch64::STRDui:
case AArch64::STRQui:
+
+ case AArch64::LDPWi:
+ case AArch64::LDPXi:
+ case AArch64::LDPSi:
+ case AArch64::LDPDi:
+ case AArch64::LDPQi:
+
+ case AArch64::LDPSWi:
+
+ case AArch64::STPWi:
+ case AArch64::STPXi:
+ case AArch64::STPSi:
+ case AArch64::STPDi:
+ case AArch64::STPQi:
return true;
default:
return false;
OpenPOWER on IntegriCloud