From d97ece972bf5b44f2d94efcb4b49a3a55147c0b1 Mon Sep 17 00:00:00 2001 From: noword <noword.forever@gmail.com> Date: Thu, 9 Mar 2017 10:06:29 +0800 Subject: [PATCH] fix imm value in AArch64MCCodeEmitter::getLoadLiteralOpValue for issue #284 --- llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp index e4e6143..3600a27 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp @@ -288,7 +288,7 @@ AArch64MCCodeEmitter::getLoadLiteralOpValue(const MCInst &MI, unsigned OpIdx, // If the destination is an immediate, we have nothing to do. if (MO.isImm()) - return MO.getImm(); + return (MO.getImm() * 4 - MI.getAddress()) / 4; assert(MO.isExpr() && "Unexpected target type!"); MCFixupKind Kind = MCFixupKind(AArch64::fixup_aarch64_ldr_pcrel_imm19); -- GitLab