Linux/ppc64: Remove assumption on contents of r11 in closure

This commit is contained in:
Marcus Comstedt
2014-01-04 19:00:08 +01:00
parent 3dc3f32c35
commit fa5f25c20f
2 changed files with 6 additions and 1 deletions

View File

@@ -697,7 +697,8 @@ ffi_prep_closure_loc_linux64 (ffi_closure *closure,
/* Copy function address and TOC from ffi_closure_LINUX64. */
memcpy (tramp, (char *) ffi_closure_LINUX64, 16);
tramp[2] = codeloc;
tramp[2] = tramp[1];
tramp[1] = codeloc;
#endif
closure->cif = cif;

View File

@@ -100,6 +100,10 @@ ffi_closure_LINUX64:
# load up the pointer to the parm save area
mr %r5, %r12
# else
# copy r2 to r11 and load TOC into r2
mr %r11, %r2
ld %r2, 16(%r11)
mflr %r0
# Save general regs into parm save area
# This is the parameter save area set up by our caller.