aboutsummaryrefslogtreecommitdiff
path: root/libffi
diff options
context:
space:
mode:
authorktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>2013-03-22 09:38:55 +0000
committerktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>2013-03-22 09:38:55 +0000
commit817902a3ca95466ec0be43f40bfbcb8018cd8f3e (patch)
tree2e6b7d6106dcba32051d6efc757c5e79155f45b3 /libffi
parent5c8a8be3eeae58a74aaf61046781fbc296e3ddda (diff)
* src/x86/win64.S: Make use of ffi_closure_win64_inner
symbol pc-relative. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196900 138bc75d-0d04-0410-961f-82ee72b054a4
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 57cf3567213..23a6a7800a4 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 fcdb270faf5..1394cf177b6 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,