[x32] Allow R_X86_64_64
H.J. Lu
hjl.tools@gmail.com
Mon Aug 1 22:16:00 GMT 2011
More information about the Binutils mailing list
Mon Aug 1 22:16:00 GMT 2011
- Previous message (by thread): Calling equ'd symbols in GAS
- Next message (by thread): [x32] Allow R_X86_64_64
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
It turns out that x32 needs R_X86_64_64. One major reason is
the displacement range of x32 is -2G to +2G. It isn't a problem
for compiler since only small model is required for x32.
However, to address 0 to 4G directly in assembly code, we have
to use R_X86_64_64 with movabs. I am checking the follow patch
into x32 psABI to allow R_X86_64_64.
--
H.J.
diff --git a/object-files.tex b/object-files.tex
index 3c9b9c6..7f0fd14 100644
--- a/object-files.tex
+++ b/object-files.tex
@@ -451,7 +451,7 @@ or \texttt{Elf32_Rel} relocation.
\multicolumn{1}{c}{Calculation} \\
\hline
\texttt{R_X86_64_NONE} & 0 & none & none \\
- \texttt{R_X86_64_64} $^\dagger$ & 1 & \textit{word64} & \texttt{S + A} \\
+ \texttt{R_X86_64_64} & 1 & \textit{word64} & \texttt{S + A} \\
\texttt{R_X86_64_PC32} & 2 & \textit{word32} & \texttt{S + A - P} \\
\texttt{R_X86_64_GOT32} & 3 & \textit{word32} & \texttt{G + A} \\
\texttt{R_X86_64_PLT32} & 4 & \textit{word32} & \texttt{L + A - P} \\
- Previous message (by thread): Calling equ'd symbols in GAS
- Next message (by thread): [x32] Allow R_X86_64_64
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list