[llvm-commits] [llvm] r98019 - /llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp

Bill Wendling wendling at apple.com
Mon Mar 8 16:46:30 PST 2010


Um...this also has a change of behavior (it snuck in there). If a symbol that's non-lazy is pointing to a symbol that's defined in the translation unit, then output a reference to it in the non-lazy pointer itself.

-bw

On Mar 8, 2010, at 4:43 PM, Bill Wendling wrote:

> Author: void
> Date: Mon Mar  8 18:43:34 2010
> New Revision: 98019
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=98019&view=rev
> Log:
> Print blank line and clear stubs vector.
> 
> Modified:
>    llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
> 
> Modified: llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp?rev=98019&r1=98018&r2=98019&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp Mon Mar  8 18:43:34 2010
> @@ -1132,8 +1132,16 @@
>         // L_foo$stub:
>         OutStreamer.EmitLabel(Stubs[i].first);
>         //   .indirect_symbol _foo
> -        OutStreamer.EmitSymbolAttribute(Stubs[i].second, MCSA_IndirectSymbol);
> -        OutStreamer.EmitIntValue(0, 4/*size*/, 0/*addrspace*/);
> +        MCSymbol *MCSym = Stubs[i].second;
> +        OutStreamer.EmitSymbolAttribute(MCSym, MCSA_IndirectSymbol);
> +
> +        if (MCSym->isUndefined())
> +          // External to current translation unit.
> +          OutStreamer.EmitIntValue(0, 4/*size*/, 0/*addrspace*/);
> +        else
> +          // Internal to current translation unit.
> +          OutStreamer.EmitValue(MCSymbolRefExpr::Create(MCSym, OutContext),
> +                                4/*size*/, 0/*addrspace*/);
>       }
> 
>       Stubs.clear();
> @@ -1152,6 +1160,9 @@
>                                                       OutContext),
>                               4/*size*/, 0/*addrspace*/);
>       }
> +
> +      Stubs.clear();
> +      OutStreamer.AddBlankLine();
>     }
> 
>     // Funny Darwin hack: This flag tells the linker that no global symbols
> 
> 
> _______________________________________________
> 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