summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
diff options
context:
space:
mode:
authorDean Michael Berris <dberris@google.com>2016-11-21 03:01:43 +0000
committerDean Michael Berris <dberris@google.com>2016-11-21 03:01:43 +0000
commit31761f300d8237bca7320e17461a3a7df49aee69 (patch)
treea04a487cf2fa3c43e8b3bf7693ac7fb7fb1be74b /llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
parent0b1b695a9e2e747abc650f33c0553edd1bce4802 (diff)
downloadbcm5719-llvm-31761f300d8237bca7320e17461a3a7df49aee69.tar.gz
bcm5719-llvm-31761f300d8237bca7320e17461a3a7df49aee69.zip
[XRay][AArch64] Implemented a test for the compile-time sleds emitted, and fixed a bug in the jump instruction
This patch adds a test for the assembly code emitted with XRay instrumentation. It also fixes a bug where the operand of a jump instruction must be not the number of bytes to jump over, but rather the number of 4-byte instructions. Author: rSerge Reviewers: dberris, rengolin Differential Revision: https://reviews.llvm.org/D26805 llvm-svn: 287516
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp')
-rw-r--r--llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
index f0564ef0b89..2d49ccc46d4 100644
--- a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+++ b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
@@ -223,7 +223,9 @@ void AArch64AsmPrinter::EmitSled(const MachineInstr &MI, SledKind Kind)
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));
OpenPOWER on IntegriCloud