[llvm] r181450 - [PowerPC] Fix regression in generating @ha/@l relocs
Bill Wendling
isanbard at gmail.com
Tue May 14 11:35:06 PDT 2013
Done. Thanks!
-bw
On May 14, 2013, at 9:43 AM, Hal Finkel <hfinkel at anl.gov> wrote:
> 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