Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Mar 2020 17:28:54 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r359334 - head/contrib/llvm-project/llvm/lib/Target/PowerPC
Message-ID:  <202003261728.02QHSs8x008976@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Thu Mar 26 17:28:54 2020
New Revision: 359334
URL: https://svnweb.freebsd.org/changeset/base/359334

Log:
  Merge commit 459e8e948 from llvm git (by Justin Hibbits):
  
    [PowerPC]: Don't allow r0 as a target for LD_GOT_TPREL_L/32
  
    Summary:
    The linker is free to relax this (relocation R_PPC_GOT_TPREL16)
    against R_PPC_TLS, if it sees fit (initial exec to local exec). If r0
    is used, this can generate execution-invalid code (converts to 'addi
    %rX, %r0, FOO, which translates in PPC-lingo to li %rX, FOO). Forbid
    this instead.
  
    This fixes static binaries using locales on FreeBSD/powerpc (tested
    on FreeBSD/powerpcspe).
  
    Reviewed By: nemanjai
    Differential Revision: https://reviews.llvm.org/D76662
  
  Requested by:	jhibbits
  MFC after:	6 weeks
  X-MFC-With:	358851

Modified:
  head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
  head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.td

Modified: head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
==============================================================================
--- head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstr64Bit.td	Thu Mar 26 17:27:41 2020	(r359333)
+++ head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstr64Bit.td	Thu Mar 26 17:28:54 2020	(r359334)
@@ -1110,7 +1110,7 @@ def ADDISgotTprelHA: PPCEmitTimePseudo<(outs g8rc:$rD)
                            (PPCaddisGotTprelHA i64:$reg,
                                                tglobaltlsaddr:$disp))]>,
                   isPPC64;
-def LDgotTprelL: PPCEmitTimePseudo<(outs g8rc:$rD), (ins s16imm64:$disp, g8rc_nox0:$reg),
+def LDgotTprelL: PPCEmitTimePseudo<(outs g8rc_nox0:$rD), (ins s16imm64:$disp, g8rc_nox0:$reg),
                         "#LDgotTprelL",
                         [(set i64:$rD,
                           (PPCldGotTprelL tglobaltlsaddr:$disp, i64:$reg))]>,

Modified: head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.td
==============================================================================
--- head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.td	Thu Mar 26 17:27:41 2020	(r359333)
+++ head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.td	Thu Mar 26 17:28:54 2020	(r359334)
@@ -3167,7 +3167,7 @@ def PPC32GOT: PPCEmitTimePseudo<(outs gprc:$rD), (ins)
 def PPC32PICGOT: PPCEmitTimePseudo<(outs gprc:$rD, gprc:$rT), (ins), "#PPC32PICGOT", 
                 []>, NoEncode<"$rT">;
 
-def LDgotTprelL32: PPCEmitTimePseudo<(outs gprc:$rD), (ins s16imm:$disp, gprc_nor0:$reg),
+def LDgotTprelL32: PPCEmitTimePseudo<(outs gprc_nor0:$rD), (ins s16imm:$disp, gprc_nor0:$reg),
                            "#LDgotTprelL32",
                            [(set i32:$rD,
                              (PPCldGotTprelL tglobaltlsaddr:$disp, i32:$reg))]>;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202003261728.02QHSs8x008976>