x86_64: Fixups for x32

This commit is contained in:
Richard Henderson
2014-10-27 13:41:39 -07:00
parent ebd82769de
commit 2e9dc16556
2 changed files with 19 additions and 6 deletions

View File

@@ -568,6 +568,7 @@ ffi_prep_closure_loc (ffi_closure* closure,
0x0f, 0x1f, 0x00
};
void (*dest)(void);
char *tramp = closure->tramp;
if (cif->abi != FFI_UNIX64)
return FFI_BAD_ABI;
@@ -577,8 +578,8 @@ ffi_prep_closure_loc (ffi_closure* closure,
else
dest = ffi_closure_unix64;
memcpy (closure->tramp, trampoline, sizeof(trampoline));
*(UINT64 *)(closure->tramp + 16) = (uintptr_t)dest;
memcpy (tramp, trampoline, sizeof(trampoline));
*(UINT64 *)(tramp + 16) = (uintptr_t)dest;
closure->cif = cif;
closure->fun = fun;