summaryrefslogtreecommitdiffstats
path: root/vm/compiler/codegen
diff options
context:
space:
mode:
authorDouglas Leung <douglas@mips.com>2012-11-26 18:57:38 -0800
committerPaul Lind <plind@mips.com>2012-11-26 18:58:40 -0800
commit6e3967d1cca2f8baee1fa6e90f511553dd8651e5 (patch)
tree6c5ff74974220c566a0a138e6d908d875a142924 /vm/compiler/codegen
parent15d51db11420b8ec3dd885f5e790dab6b79ce1be (diff)
downloadandroid_dalvik-6e3967d1cca2f8baee1fa6e90f511553dd8651e5.tar.gz
android_dalvik-6e3967d1cca2f8baee1fa6e90f511553dd8651e5.tar.bz2
android_dalvik-6e3967d1cca2f8baee1fa6e90f511553dd8651e5.zip
[MIPS] Fixing FP registers fs0 and fs1 corruption bug.
For performance reasons, we don't want to use "callee saved" FP registers. The fix is to just use temporary FP registers instead. Change-Id: Ifae20c707ff7022905a080892348bfbc151e4935 Signed-off-by: Douglas Leung <douglas@mips.com>
Diffstat (limited to 'vm/compiler/codegen')
-rw-r--r--vm/compiler/codegen/mips/mips/CallingConvention.S8
1 files changed, 8 insertions, 0 deletions
diff --git a/vm/compiler/codegen/mips/mips/CallingConvention.S b/vm/compiler/codegen/mips/mips/CallingConvention.S
index ab9765512..cfe2695fc 100644
--- a/vm/compiler/codegen/mips/mips/CallingConvention.S
+++ b/vm/compiler/codegen/mips/mips/CallingConvention.S
@@ -24,9 +24,17 @@
.global dvmJitCalleeSave
.type dvmJitCalleeSave, %function
dvmJitCalleeSave:
+#ifdef __mips_hard_float
+ /* For performance reasons, we are not using any "callee saved" */
+ /* fp registers, thus no need to save them. */
+#endif
jr $31
.global dvmJitCalleeRestore
.type dvmJitCalleeRestore, %function
dvmJitCalleeRestore:
+#ifdef __mips_hard_float
+ /* For performance reasons, we are not using any "callee saved" */
+ /* fp registers, thus no need to restore them. */
+#endif
jr $31