Title: [159873] trunk/Source/_javascript_Core
- Revision
- 159873
- Author
- [email protected]
- Date
- 2013-11-29 09:25:55 -0800 (Fri, 29 Nov 2013)
Log Message
Use moveDoubleToInts in SpecializedThunkJIT::returnDouble for non-X86 JSVALUE32_64 ports.
https://bugs.webkit.org/show_bug.cgi?id=124936
Patch by Julien Brianceau <[email protected]> on 2013-11-29
Reviewed by Zoltan Herczeg.
The moveDoubleToInts implementations in ARM, MIPS and SH4 macro assemblers do not clobber
src FPRegister and are likely to be more efficient than the current generic implementation
using the stack.
* jit/SpecializedThunkJIT.h:
(JSC::SpecializedThunkJIT::returnDouble):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (159872 => 159873)
--- trunk/Source/_javascript_Core/ChangeLog 2013-11-29 14:32:53 UTC (rev 159872)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-11-29 17:25:55 UTC (rev 159873)
@@ -1,5 +1,19 @@
2013-11-29 Julien Brianceau <[email protected]>
+ Use moveDoubleToInts in SpecializedThunkJIT::returnDouble for non-X86 JSVALUE32_64 ports.
+ https://bugs.webkit.org/show_bug.cgi?id=124936
+
+ Reviewed by Zoltan Herczeg.
+
+ The moveDoubleToInts implementations in ARM, MIPS and SH4 macro assemblers do not clobber
+ src FPRegister and are likely to be more efficient than the current generic implementation
+ using the stack.
+
+ * jit/SpecializedThunkJIT.h:
+ (JSC::SpecializedThunkJIT::returnDouble):
+
+2013-11-29 Julien Brianceau <[email protected]>
+
Merge arm and sh4 paths in nativeForGenerator and privateCompileCTINativeCall functions.
https://bugs.webkit.org/show_bug.cgi?id=124892
Modified: trunk/Source/_javascript_Core/jit/SpecializedThunkJIT.h (159872 => 159873)
--- trunk/Source/_javascript_Core/jit/SpecializedThunkJIT.h 2013-11-29 14:32:53 UTC (rev 159872)
+++ trunk/Source/_javascript_Core/jit/SpecializedThunkJIT.h 2013-11-29 17:25:55 UTC (rev 159873)
@@ -121,9 +121,14 @@
move(tagTypeNumberRegister, regT0);
done.link(this);
#else
+#if !CPU(X86)
+ // The src register is not clobbered by moveDoubleToInts with ARM, MIPS and SH4 macro assemblers, so let's use it.
+ moveDoubleToInts(src, regT0, regT1);
+#else
storeDouble(src, Address(stackPointerRegister, -(int)sizeof(double)));
loadPtr(Address(stackPointerRegister, OBJECT_OFFSETOF(JSValue, u.asBits.tag) - sizeof(double)), regT1);
loadPtr(Address(stackPointerRegister, OBJECT_OFFSETOF(JSValue, u.asBits.payload) - sizeof(double)), regT0);
+#endif
Jump lowNonZero = branchTestPtr(NonZero, regT1);
Jump highNonZero = branchTestPtr(NonZero, regT0);
move(TrustedImm32(0), regT0);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes