Skip to content
  1. Jul 03, 2013
  2. Jul 02, 2013
    • Eric Christopher's avatar
      Fix comment. · 9046f942
      Eric Christopher authored
      llvm-svn: 185480
      9046f942
    • Ulrich Weigand's avatar
      · 42a09dc1
      Ulrich Weigand authored
      [PowerPC] PR16512 - Support TLS call sequences in the asm parser
      
      This patch now adds support for recognizing TLS call sequences in
      the asm parser.  This needs a new pattern BL8_TLS, which is like
      BL8_NOP_TLS except without nop.  That pattern is used for the
      asm parser only.
      
      llvm-svn: 185478
      42a09dc1
    • Ulrich Weigand's avatar
      · 5143bab2
      Ulrich Weigand authored
      [PowerPC] Rework TLS call operand processing
      
      As part of the global-dynamic and local-dynamic TLS sequences, we need
      to use a special form of the call instruction:
      
       bl __tls_get_addr(sym@tlsld)
       bl __tls_get_addr(sym@tlsgd)
      
      which generates two fixups.  The current implementation of this causes
      problems with recognizing this form in the asm parser.  To fix this,
      this patch reworks operand processing for this special form by using
      a single operand to hold both __tls_get_addr and sym@tlsld and defining
      a print method to output the above form, and an encoding method to
      generate the two fixups.
      
      As a side simplification, the patch replaces the two instruction
      patterns BL8_NOP_TLSGD and BL8_NOP_TLSLD by a single BL8_NOP_TLS,
      since the patterns already operate in an identical fashion (whether
      we have a local-dynamic or global-dynamic symbol is already encoded
      in the symbol modifier).
      
      No change in code generation intended.
      
      llvm-svn: 185477
      5143bab2
    • Ulrich Weigand's avatar
      · 40509956
      Ulrich Weigand authored
      [PowerPC] Remove VK_PPC_TLSGD and VK_PPC_TLSLD
      
      The PowerPC-specific modifiers VK_PPC_TLSGD and VK_PPC_TLSLD
      correspond exactly to the generic modifiers VK_TLSGD and VK_TLSLD.
      This causes some confusion with the asm parser, since VK_PPC_TLSGD
      is output as @tlsgd, which is then read back in as VK_TLSGD.
      
      To avoid this confusion, this patch removes the PowerPC-specific
      modifiers and uses the generic modifiers throughout.  (The only
      drawback is that the generic modifiers are printed in upper case
      while the usual convention on PowerPC is to use lower-case modifiers.
      But this is just a cosmetic issue.)
      
      llvm-svn: 185476
      40509956
    • Benjamin Kramer's avatar
      SystemZ: Fold variable into assertion. · 421c8fb2
      Benjamin Kramer authored
      llvm-svn: 185475
      421c8fb2
    • Ulrich Weigand's avatar
      · 0f039824
      Ulrich Weigand authored
      [PowerPC] Support TLS variables in debug info
      
      This adds an implementation of getDebugThreadLocalSymbol for
      (64-bit) PowerPC.  This needs to return a generic MCExpr
      since on ppc64, we need to add a bias of 0x8000 to the
      value returned by the R_PPC64_DTPREL64 relocation.
      
      llvm-svn: 185461
      0f039824
    • Ulrich Weigand's avatar
      · 2b6fc8d6
      Ulrich Weigand authored
      [DebugInfo] Allow getDebugThreadLocalSymbol to return MCExpr
      
      This allows getDebugThreadLocalSymbol to return a generic MCExpr
      instead of just a MCSymbolRefExpr.
      
      This is in preparation for supporting debug info for TLS variables
      on PowerPC, where we need to describe the variable location using
      a more complex expression than just MCSymbolRefExpr.
      
      llvm-svn: 185460
      2b6fc8d6
    • Ulrich Weigand's avatar
      · 8b3d2266
      Ulrich Weigand authored
      [DebugInfo] Hold generic MCExpr in AddrPool
      
      This changes the AddrPool infrastructure to enable it to hold
      generic MCExpr expressions, not just MCSymbolRefExpr.
      
      This is in preparation for supporting debug info for TLS variables
      on PowerPC, where we need to describe the variable location using
      a more complex expression than just MCSymbolRefExpr.
      
      llvm-svn: 185459
      8b3d2266
Loading