diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp --- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp +++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp @@ -113,7 +113,7 @@ return getMachineOpValue(MI, MO, Fixups, STI); // Add a fixup for the immediate field. - Fixups.push_back(MCFixup::create(IsLittleEndian? 0 : 1, MO.getExpr(), + Fixups.push_back(MCFixup::create(0, MO.getExpr(), (MCFixupKind)PPC::fixup_ppc_pcrel34)); return 0; } @@ -217,7 +217,7 @@ "VariantKind must be VK_PCREL or VK_PPC_GOT_PCREL"); // Generate the fixup for the relocation. Fixups.push_back( - MCFixup::create(IsLittleEndian ? 0 : 1, Expr, + MCFixup::create(0, Expr, static_cast(PPC::fixup_ppc_pcrel34))); // There is no offset to return so just return 0. return 0; @@ -249,7 +249,7 @@ "VariantKind must be VK_PCREL or VK_PPC_GOT_PCREL"); // Generate the fixup for the relocation. Fixups.push_back( - MCFixup::create(IsLittleEndian ? 0 : 1, Expr, + MCFixup::create(0, Expr, static_cast(PPC::fixup_ppc_pcrel34))); assert(isInt<34>(CE->getValue()) && "Value must fit in 34 bits."); // Return the offset that should be added to the relocation by the linker. diff --git a/llvm/test/MC/PowerPC/future-reloc.s b/llvm/test/MC/PowerPC/future-reloc.s --- a/llvm/test/MC/PowerPC/future-reloc.s +++ b/llvm/test/MC/PowerPC/future-reloc.s @@ -3,6 +3,11 @@ # RUN: llvm-mc -triple=powerpc64le-unknown-unknown -filetype=obj %s | \ # RUN: llvm-readobj -r | FileCheck %s -check-prefix=READOBJ +# RUN: llvm-mc -triple=powerpc64-unknown-unknown -filetype=obj %s 2>&1 | \ +# RUN: FileCheck %s -check-prefix=MC +# RUN: llvm-mc -triple=powerpc64-unknown-unknown -filetype=obj %s | \ +# RUN: llvm-readobj -r | FileCheck %s -check-prefix=READOBJ + # This test checks that on Power PC we can correctly convert @pcrel and # @got@pcrel into R_PPC64_PCREL34 and R_PPC64_GOT_PCREL34.