[llvm-commits] [llvm] r162037 - in /llvm/trunk/lib/Target/PowerPC/MCTargetDesc: PPCAsmBackend.cpp PPCFixupKinds.h

Chandler Carruth chandlerc at google.com
Thu Aug 16 11:40:50 PDT 2012


Just for the record, this too needs a test case.


On Thu, Aug 16, 2012 at 11:37 AM, Roman Divacky <rdivacky at freebsd.org>wrote:

> Author: rdivacky
> Date: Thu Aug 16 13:37:52 2012
> New Revision: 162037
>
> URL: http://llvm.org/viewvc/llvm-project?rev=162037&view=rev
> Log:
> Define and handle additional fixup kinds. By Adhemerval Zanella.
>
> Modified:
>     llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
>     llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h
>
> Modified: llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp?rev=162037&r1=162036&r2=162037&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp (original)
> +++ llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp Thu Aug
> 16 13:37:52 2012
> @@ -29,7 +29,12 @@
>    case FK_Data_1:
>    case FK_Data_2:
>    case FK_Data_4:
> +  case FK_Data_8:
> +  case PPC::fixup_ppc_toc:
>      return Value;
> +  case PPC::fixup_ppc_lo14:
> +  case PPC::fixup_ppc_toc16_ds:
> +    return (Value & 0xffff) >> 2;
>    case PPC::fixup_ppc_brcond14:
>      return Value & 0x3ffc;
>    case PPC::fixup_ppc_br24:
> @@ -40,6 +45,7 @@
>  #endif
>    case PPC::fixup_ppc_ha16:
>      return ((Value >> 16) + ((Value & 0x8000) ? 1 : 0)) & 0xffff;
> +  case PPC::fixup_ppc_toc16:
>    case PPC::fixup_ppc_lo16:
>      return Value & 0xffff;
>    }
> @@ -72,7 +78,10 @@
>        { "fixup_ppc_brcond14",    16,     14,
> MCFixupKindInfo::FKF_IsPCRel },
>        { "fixup_ppc_lo16",        16,     16,   0 },
>        { "fixup_ppc_ha16",        16,     16,   0 },
> -      { "fixup_ppc_lo14",        16,     14,   0 }
> +      { "fixup_ppc_lo14",        16,     14,   0 },
> +      { "fixup_ppc_toc",          0,     64,   0 },
> +      { "fixup_ppc_toc16",       16,     16,   0 },
> +      { "fixup_ppc_toc16_ds",    16,     14,   0 }
>      };
>
>      if (Kind < FirstTargetFixupKind)
>
> Modified: llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h?rev=162037&r1=162036&r2=162037&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h (original)
> +++ llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h Thu Aug 16
> 13:37:52 2012
> @@ -34,6 +34,16 @@
>    /// fixup_ppc_lo14 - A 14-bit fixup corresponding to lo16(_foo) for
> instrs
>    /// like 'std'.
>    fixup_ppc_lo14,
> +
> +  /// fixup_ppc_toc - Insert value of TOC base (.TOC.).
> +  fixup_ppc_toc,
> +
> +  /// fixup_ppc_toc16 - A 16-bit signed fixup relative to the TOC base.
> +  fixup_ppc_toc16,
> +
> +  /// fixup_ppc_toc16_ds - A 14-bit signed fixup relative to the TOC base
> with
> +  /// implied 2 zero bits.
> +  fixup_ppc_toc16_ds,
>
>    // Marker
>    LastTargetFixupKind,
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120816/0e14f3e9/attachment.html>


More information about the llvm-commits mailing list