================
@@ -18,6 +18,6 @@
 .globl _start
 _start:
 .data
-  .word foo@PLT - .
-  .word foo@PLT - . + 1
-  .word foo@PLT - . - 1
+  .word %plt(foo - .)
----------------
MaskRay wrote:

It's challenging to use an inherent PC-relative specifier (e.g. `%pltpcrel`; 
which I actually thought about).... This is because 
in the code block around `llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:3477` 
(`AsmPrinter::lowerConstant`), the function doesn't actually know its current 
address. The function call needs a subtrahend. 
(`llvm/test/CodeGen/X86/x86-64-plt-relative-reloc.ll` contains a better test 
that demonstrates this: the subtrahend `vtable` might be a few bytes before the 
current address (that feature might be obsoleted by the dsolocal equivalent 
feature))

https://github.com/llvm/llvm-project/pull/132569
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to