[llvm-commits] [llvm] r146054 - in /llvm/trunk: lib/MC/MachObjectWriter.cpp lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp test/MC/MachO/ARM/darwin-ARM-reloc.s test/MC/MachO/reloc-pcrel-offset.s test/MC/MachO/reloc-pcrel.s

Jim Grosbach grosbach at apple.com
Wed Dec 7 11:58:34 PST 2011


On Dec 7, 2011, at 11:54 AM, Eli Friedman wrote:

> On Wed, Dec 7, 2011 at 11:46 AM, Jim Grosbach <grosbach at apple.com> wrote:
>> Author: grosbach
>> Date: Wed Dec  7 13:46:59 2011
>> New Revision: 146054
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=146054&view=rev
>> Log:
>> Darwin assembler improved relocs when w/o subsections_via_symbols.
>> 
>> When the file isn't being built with subsections-via-symbols, symbol
>> differences involving non-local symbols can be resolved more aggressively.
>> Needed for gas compatibility.
>> 
>> 
>> Modified:
>>    llvm/trunk/lib/MC/MachObjectWriter.cpp
>>    llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
>>    llvm/trunk/test/MC/MachO/ARM/darwin-ARM-reloc.s
>>    llvm/trunk/test/MC/MachO/reloc-pcrel-offset.s
>>    llvm/trunk/test/MC/MachO/reloc-pcrel.s
>> 
>> Modified: llvm/trunk/lib/MC/MachObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MachObjectWriter.cpp?rev=146054&r1=146053&r2=146054&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/MC/MachObjectWriter.cpp (original)
>> +++ llvm/trunk/lib/MC/MachObjectWriter.cpp Wed Dec  7 13:46:59 2011
>> @@ -584,9 +584,14 @@
>>     // requires the compiler to use .set to absolutize the differences between
>>     // symbols which the compiler knows to be assembly time constants, so we
>>     // don't need to worry about considering symbol differences fully resolved.
>> +    //
>> +    // If the file isn't using sub-sections-via-symbols, we can make the
>> +    // same assumptions about any symbol that we normally make about
>> +    // assembler locals.
>> 
>>     if (!Asm.getBackend().hasReliableSymbolDifference()) {
>> -      if (!SA.isTemporary() || !SA.isInSection() || &SecA != &SecB)
>> +      if ((!SA.isTemporary() && Asm.getSubsectionsViaSymbols()) ||
>> +           !SA.isInSection() || &SecA != &SecB)
>>         return false;
>>       return true;
>>     }
>> 
>> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp?rev=146054&r1=146053&r2=146054&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp (original)
>> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp Wed Dec  7 13:46:59 2011
>> @@ -62,6 +62,9 @@
>>   default:
>>     return false;
>> 
>> +  case ARM::fixup_t2_condbranch:
>> +    assert(0);
>> +    return false;
> 
> Did you intend to commit this bit?
> 

Doh. Nope.

Thank you!

> -Eli




More information about the llvm-commits mailing list