win64.S: Make use of ffi_closure_win64_inner symbol pc-relative.
authorKai Tietz <ktietz@redhat.com>
Fri, 22 Mar 2013 09:38:55 +0000 (10:38 +0100)
committerKai Tietz <ktietz@gcc.gnu.org>
Fri, 22 Mar 2013 09:38:55 +0000 (10:38 +0100)
* src/x86/win64.S: Make use of ffi_closure_win64_inner
symbol pc-relative.

From-SVN: r196900

libffi/ChangeLog
libffi/src/x86/win64.S

index 57cf35672130f6bad8353925ac36e7752536ec10..23a6a7800a49471b06569d1e5d678c6dfe851b02 100644 (file)
@@ -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]):
index fcdb270faf587743626a9a65aa0cf25ea79205f1..1394cf177b69e879315614044317dc4090fd0428 100644 (file)
@@ -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,