Title: [94500] trunk/Source/_javascript_Core
- Revision
- 94500
- Author
- [email protected]
- Date
- 2011-09-03 22:43:47 -0700 (Sat, 03 Sep 2011)
Log Message
ThunkGenerators does not convert positive double zero into integer zero
https://bugs.webkit.org/show_bug.cgi?id=67553
Reviewed by Gavin Barraclough.
This is an 0.5% speed-up on V8 and neutral elsewhere.
* jit/SpecializedThunkJIT.h:
(JSC::SpecializedThunkJIT::returnDouble):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (94499 => 94500)
--- trunk/Source/_javascript_Core/ChangeLog 2011-09-04 02:58:46 UTC (rev 94499)
+++ trunk/Source/_javascript_Core/ChangeLog 2011-09-04 05:43:47 UTC (rev 94500)
@@ -1,3 +1,15 @@
+2011-09-03 Filip Pizlo <[email protected]>
+
+ ThunkGenerators does not convert positive double zero into integer zero
+ https://bugs.webkit.org/show_bug.cgi?id=67553
+
+ Reviewed by Gavin Barraclough.
+
+ This is an 0.5% speed-up on V8 and neutral elsewhere.
+
+ * jit/SpecializedThunkJIT.h:
+ (JSC::SpecializedThunkJIT::returnDouble):
+
2011-09-03 Kevin Ollivier <[email protected]>
[wx] Unreviewed build fix. Add wtf/dtoa directory to build.
Modified: trunk/Source/_javascript_Core/jit/SpecializedThunkJIT.h (94499 => 94500)
--- trunk/Source/_javascript_Core/jit/SpecializedThunkJIT.h 2011-09-04 02:58:46 UTC (rev 94499)
+++ trunk/Source/_javascript_Core/jit/SpecializedThunkJIT.h 2011-09-04 05:43:47 UTC (rev 94500)
@@ -95,11 +95,22 @@
{
#if USE(JSVALUE64)
moveDoubleToPtr(src, regT0);
+ Jump zero = branchTestPtr(Zero, regT0);
subPtr(tagTypeNumberRegister, regT0);
+ Jump done = jump();
+ zero.link(this);
+ move(tagTypeNumberRegister, regT0);
+ done.link(this);
#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);
+ Jump lowNonZero = branchTestPtr(NonZero, regT1);
+ Jump highNonZero = branchTestPtr(NonZero, regT0);
+ move(TrustedImm32(0), regT0);
+ move(TrustedImm32(Int32Tag), regT1);
+ lowNonZero.link(this);
+ highNonZero.link(this);
#endif
loadPtr(payloadFor(RegisterFile::CallerFrame, callFrameRegister), callFrameRegister);
ret();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes