aboutsummaryrefslogtreecommitdiff
path: root/libffi
diff options
context:
space:
mode:
authorKai Tietz <ktietz@redhat.com>2013-03-22 10:38:55 +0100
committerKai Tietz <ktietz@gcc.gnu.org>2013-03-22 10:38:55 +0100
commit8280eba03b7fd7918058a6e1af51b014850909f3 (patch)
tree2e6b7d6106dcba32051d6efc757c5e79155f45b3 /libffi
parent15d19bf8d041f6afcf951f1bd130f36947634467 (diff)
downloadgcc-8280eba03b7fd7918058a6e1af51b014850909f3.zip
gcc-8280eba03b7fd7918058a6e1af51b014850909f3.tar.gz
gcc-8280eba03b7fd7918058a6e1af51b014850909f3.tar.bz2
win64.S: Make use of ffi_closure_win64_inner symbol pc-relative.
* src/x86/win64.S: Make use of ffi_closure_win64_inner symbol pc-relative. From-SVN: r196900
Diffstat (limited to 'libffi')
-rw-r--r--libffi/ChangeLog5
-rw-r--r--libffi/src/x86/win64.S2
2 files changed, 6 insertions, 1 deletions
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index 57cf356..23a6a78 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-22 Kai Tietz <ktietz@redhat.com>
+
+ * src/x86/win64.S: Make use of ffi_closure_win64_inner
+ symbol pc-relative.
+
2013-03-07 Dave Korn <dave.korn.cygwin@gmail.com>
* src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]):
diff --git a/libffi/src/x86/win64.S b/libffi/src/x86/win64.S
index fcdb270..1394cf1 100644
--- a/libffi/src/x86/win64.S
+++ b/libffi/src/x86/win64.S
@@ -295,7 +295,7 @@ SYMBOL_NAME(ffi_closure_win64):
mov %rax, %rcx # context is first parameter
mov %rsp, %rdx # stack is second parameter
add $48, %rdx # point to start of arguments
- mov $SYMBOL_NAME(ffi_closure_win64_inner), %rax
+ leaq SYMBOL_NAME(ffi_closure_win64_inner)(%rip), %rax
callq *%rax # call the real closure function
add $40, %rsp
movq %rax, %xmm0 # If the closure returned a float,