[PATCH] D26805: [XRay][AArch64] Implemented a test for the compile-time sleds emitted, and fixed a bug in the jump instruction
Dean Michael Berris via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 20 19:11:38 PST 2016
This revision was automatically updated to reflect the committed changes.
Closed by commit rL287516: [XRay][AArch64] Implemented a test for the compile-time sleds emitted, and… (authored by dberris).
Changed prior to commit:
https://reviews.llvm.org/D26805?vs=78540&id=78683#toc
Repository:
rL LLVM
https://reviews.llvm.org/D26805
Files:
llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cpp
llvm/trunk/test/CodeGen/AArch64/xray-attribute-instrumentation.ll
Index: llvm/trunk/test/CodeGen/AArch64/xray-attribute-instrumentation.ll
===================================================================
--- llvm/trunk/test/CodeGen/AArch64/xray-attribute-instrumentation.ll
+++ llvm/trunk/test/CodeGen/AArch64/xray-attribute-instrumentation.ll
@@ -0,0 +1,32 @@
+; RUN: llc -filetype=asm -o - -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s
+
+define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" {
+; CHECK-LABEL: Lxray_sled_0:
+; CHECK-NEXT: b #32
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-LABEL: Ltmp0:
+ ret i32 0
+; CHECK-LABEL: Lxray_sled_1:
+; CHECK-NEXT: b #32
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-NEXT: nop
+; CHECK-LABEL: Ltmp1:
+; CHECK-NEXT: ret
+}
+; CHECK: .p2align 4
+; CHECK-NEXT: .xword .Lxray_synthetic_0
+; CHECK-NEXT: .section xray_instr_map,{{.*}}
+; CHECK-LABEL: Lxray_synthetic_0:
+; CHECK: .xword .Lxray_sled_0
+; CHECK: .xword .Lxray_sled_1
Index: llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cpp
===================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cpp
+++ llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cpp
@@ -223,7 +223,9 @@
auto Target = OutContext.createTempSymbol();
// Emit "B #32" instruction, which jumps over the next 28 bytes.
- EmitToStreamer(*OutStreamer, MCInstBuilder(AArch64::B).addImm(32));
+ // The operand has to be the number of 4-byte instructions to jump over,
+ // including the current instruction.
+ EmitToStreamer(*OutStreamer, MCInstBuilder(AArch64::B).addImm(8));
for (int8_t I = 0; I < NoopsInSledCount; I++)
EmitToStreamer(*OutStreamer, MCInstBuilder(AArch64::HINT).addImm(0));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D26805.78683.patch
Type: text/x-patch
Size: 1923 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161121/a1d2c2ab/attachment.bin>
More information about the llvm-commits
mailing list