Jit: Save/restore callee-save floating point registers at interpreter entry/exit
diff --git a/vm/interp/Interp.c b/vm/interp/Interp.c
index 10b9bb1..2a7476c 100644
--- a/vm/interp/Interp.c
+++ b/vm/interp/Interp.c
@@ -1219,6 +1219,9 @@
     InterpState interpState;
     bool change;
 #if defined(WITH_JIT)
+    /* Target-specific save/restore */
+    extern void dvmJitCalleeSave(double *saveArea);
+    extern void dvmJitCalleeRestore(double *saveArea);
     /* Interpreter entry points from compiled code */
     extern void dvmJitToInterpNormal();
     extern void dvmJitToInterpNoChain();
@@ -1256,6 +1259,7 @@
     interpState.debugIsMethodEntry = true;
 #endif
 #if defined(WITH_JIT)
+    dvmJitCalleeSave(interpState.calleeSave);
     interpState.jitState = gDvmJit.pJitEntryTable ? kJitNormal : kJitOff;
 
     /* Setup the Jit-to-interpreter entry points */
@@ -1333,4 +1337,7 @@
     }
 
     *pResult = interpState.retval;
+#if defined(WITH_JIT)
+    dvmJitCalleeRestore(interpState.calleeSave);
+#endif
 }