[PATCH] D79015: [PowerPC] Fix missing GOT indirect variant kind
Stefan Pintilie via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 6 04:16:26 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG7d507ff55f6c: [PowerPC] Fix missing GOT indirect variant kind (authored by stefanp).
Changed prior to commit:
https://reviews.llvm.org/D79015?vs=260656&id=262335#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D79015/new/
https://reviews.llvm.org/D79015
Files:
llvm/lib/MC/MCExpr.cpp
llvm/test/MC/PowerPC/future-reloc.s
Index: llvm/test/MC/PowerPC/future-reloc.s
===================================================================
--- /dev/null
+++ llvm/test/MC/PowerPC/future-reloc.s
@@ -0,0 +1,53 @@
+# RUN: llvm-mc -triple=powerpc64le-unknown-unknown -filetype=obj %s 2>&1 | \
+# RUN: FileCheck %s -check-prefix=MC
+# RUN: llvm-mc -triple=powerpc64le-unknown-unknown -filetype=obj %s | \
+# RUN: llvm-readobj -r | FileCheck %s -check-prefix=READOBJ
+
+# This test checks that on Power PC we can correctly convert @pcrel and
+# @got at pcrel into R_PPC64_PCREL34 and R_PPC64_GOT_PCREL34.
+
+# MC-NOT: error: invalid variant
+
+# READOBJ: 0x0 R_PPC64_PCREL34 locvalue 0x0
+# READOBJ-NEXT: 0x20 R_PPC64_GOT_PCREL34 evalue 0x0
+
+ .text
+ .abiversion 2
+ .globl local # -- Begin function local
+ .p2align 4
+ .type local, at function
+local: # @local
+.Llocal$local:
+.Lfunc_begin0:
+# %bb.0: # %entry
+ plwa 3, locvalue at PCREL(0), 1
+ blr
+ .long 0
+ .quad 0
+.Lfunc_end0:
+ .size local, .Lfunc_end0-.Lfunc_begin0
+ # -- End function
+ .globl external # -- Begin function external
+ .p2align 4
+ .type external, at function
+external: # @external
+.Lexternal$local:
+.Lfunc_begin1:
+# %bb.0: # %entry
+ pld 3, evalue at got@pcrel(0), 1
+ lwa 3, 0(3)
+ blr
+ .long 0
+ .quad 0
+.Lfunc_end1:
+ .size external, .Lfunc_end1-.Lfunc_begin1
+ # -- End function
+ .type locvalue, at object # @locvalue
+ .section .bss,"aw", at nobits
+ .globl locvalue
+ .p2align 2
+locvalue:
+.Llocvalue$local:
+ .long 0 # 0x0
+ .size locvalue, 4
+
Index: llvm/lib/MC/MCExpr.cpp
===================================================================
--- llvm/lib/MC/MCExpr.cpp
+++ llvm/lib/MC/MCExpr.cpp
@@ -435,6 +435,7 @@
.Case("got at tlsld@l", VK_PPC_GOT_TLSLD_LO)
.Case("got at tlsld@h", VK_PPC_GOT_TLSLD_HI)
.Case("got at tlsld@ha", VK_PPC_GOT_TLSLD_HA)
+ .Case("got at pcrel", VK_PPC_GOT_PCREL)
.Case("notoc", VK_PPC_NOTOC)
.Case("gdgot", VK_Hexagon_GD_GOT)
.Case("gdplt", VK_Hexagon_GD_PLT)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79015.262335.patch
Type: text/x-patch
Size: 2231 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200506/c2f56a62/attachment.bin>
More information about the llvm-commits
mailing list