[llvm] r181450 - [PowerPC] Fix regression in generating @ha/@l relocs
Hal Finkel
hfinkel at anl.gov
Tue May 14 09:43:36 PDT 2013
Bill,
Please also pull this into the release branch if possible. It fixes a regression w.r.t. 3.2.
Thanks again,
Hal
----- Original Message -----
> Author: uweigand
> Date: Wed May 8 12:50:07 2013
> New Revision: 181450
>
> URL: http://llvm.org/viewvc/llvm-project?rev=181450&view=rev
> Log:
>
> [PowerPC] Fix regression in generating @ha/@l relocs
>
> The patch I committed as revision 167864 introduced a regression that
> causes LLVM to no longer generate appropriate relocs for @ha/@l
> symbol
> references (but fail an assertion instead).
>
> This is fixed here by re-enabling support for the VK_PPC_GAS_HA16/
> VK_PPC_GAS_LO16 variant kinds (and their Darwin variants) in
> PPCELFObjectWriter.cpp.
>
> Tested by running projects/test-suite in -m32 mode with the
> integrated
> assembler forced on. A standalone test case will be committed
> shortly
> as well.
>
>
> Modified:
> llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
>
> Modified:
> llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp?rev=181450&r1=181449&r2=181450&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
> (original)
> +++ llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
> Wed May 8 12:50:07 2013
> @@ -107,7 +107,8 @@ unsigned PPCELFObjectWriter::getRelocTyp
> case MCSymbolRefExpr::VK_PPC_DTPREL16_HA:
> Type = ELF::R_PPC64_DTPREL16_HA;
> break;
> - case MCSymbolRefExpr::VK_None:
> + case MCSymbolRefExpr::VK_PPC_GAS_HA16:
> + case MCSymbolRefExpr::VK_PPC_DARWIN_HA16:
> Type = ELF::R_PPC_ADDR16_HA;
> break;
> case MCSymbolRefExpr::VK_PPC_TOC16_HA:
> @@ -134,6 +135,10 @@ unsigned PPCELFObjectWriter::getRelocTyp
> Type = ELF::R_PPC64_DTPREL16_LO;
> break;
> case MCSymbolRefExpr::VK_None:
> + Type = ELF::R_PPC_ADDR16;
> + break;
> + case MCSymbolRefExpr::VK_PPC_GAS_LO16:
> + case MCSymbolRefExpr::VK_PPC_DARWIN_LO16:
> Type = ELF::R_PPC_ADDR16_LO;
> break;
> case MCSymbolRefExpr::VK_PPC_TOC_ENTRY:
> @@ -156,6 +161,10 @@ unsigned PPCELFObjectWriter::getRelocTyp
> case MCSymbolRefExpr::VK_None:
> Type = ELF::R_PPC64_ADDR16_DS;
> break;
> + case MCSymbolRefExpr::VK_PPC_GAS_LO16:
> + case MCSymbolRefExpr::VK_PPC_DARWIN_LO16:
> + Type = ELF::R_PPC64_ADDR16_LO_DS;
> + break;
> case MCSymbolRefExpr::VK_PPC_TOC_ENTRY:
> Type = ELF::R_PPC64_TOC16_DS;
> break;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list