aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Northover <t.p.northover@gmail.com>2020-12-09 10:13:36 +0000
committerTim Northover <t.p.northover@gmail.com>2020-12-09 10:17:16 +0000
commit45de42116e3f588bbead550ab8667388ba4f10ae (patch)
treeb3b8ebd88483db96acee6297d8029b1b9a1dff31
parent85a3daa107fb0340f3b74f1719a3dc6cdb1586ee (diff)
downloadllvm-project-45de42116e3f588bbead550ab8667388ba4f10ae.tar.gz
AArch64: use correct operand for ubsantrap immediate.
I accidentally pushed the wrong patch originally.
-rw-r--r--llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp2
-rw-r--r--llvm/test/CodeGen/AArch64/GlobalISel/ubsantrap.ll11
2 files changed, 12 insertions, 1 deletions
diff --git a/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp b/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
index 0834b0313453..4126017c6fbd 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
@@ -4879,7 +4879,7 @@ bool AArch64InstructionSelector::selectIntrinsicWithSideEffects(
break;
case Intrinsic::ubsantrap:
MIRBuilder.buildInstr(AArch64::BRK, {}, {})
- .addImm(I.getOperand(0).getImm() | ('U' << 8));
+ .addImm(I.getOperand(1).getImm() | ('U' << 8));
break;
}
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/ubsantrap.ll b/llvm/test/CodeGen/AArch64/GlobalISel/ubsantrap.ll
new file mode 100644
index 000000000000..2b72381be35e
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/ubsantrap.ll
@@ -0,0 +1,11 @@
+; RUN: llc -mtriple=arm64-apple-ios %s -o - -global-isel -global-isel-abort=1 | FileCheck %s
+
+define void @test_ubsantrap() {
+; CHECK-LABEL: test_ubsantrap
+; CHECK: brk #0x550c
+; CHECK-GISEL: brk #0x550c
+ call void @llvm.ubsantrap(i8 12)
+ ret void
+}
+
+declare void @llvm.ubsantrap(i8)