- Revision
- 99745
- Author
- [email protected]
- Date
- 2011-11-09 12:01:24 -0800 (Wed, 09 Nov 2011)
Log Message
https://bugs.webkit.org/show_bug.cgi?id=71873
Reviewed by Geoff Garen.
Incrementally re-landing these changes, trying to determine what went wrong.
(The whole patch failed tests on the build bot but worked locally.
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::supportsFloatingPoint):
(JSC::MacroAssemblerARM::supportsFloatingPointTruncate):
(JSC::MacroAssemblerARM::supportsFloatingPointSqrt):
(JSC::MacroAssemblerARM::supportsFloatingPointAbs):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::supportsFloatingPoint):
(JSC::MacroAssemblerARMv7::supportsFloatingPointTruncate):
(JSC::MacroAssemblerARMv7::supportsFloatingPointSqrt):
(JSC::MacroAssemblerARMv7::supportsFloatingPointAbs):
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::supportsFloatingPoint):
(JSC::MacroAssemblerMIPS::supportsFloatingPointTruncate):
(JSC::MacroAssemblerMIPS::supportsFloatingPointSqrt):
(JSC::MacroAssemblerMIPS::supportsFloatingPointAbs):
* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::supportsFloatingPoint):
(JSC::MacroAssemblerSH4::supportsFloatingPointTruncate):
(JSC::MacroAssemblerSH4::supportsFloatingPointSqrt):
(JSC::MacroAssemblerSH4::supportsFloatingPointAbs):
* assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::supportsFloatingPoint):
(JSC::MacroAssemblerX86::supportsFloatingPointTruncate):
(JSC::MacroAssemblerX86::supportsFloatingPointSqrt):
(JSC::MacroAssemblerX86::supportsFloatingPointAbs):
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::supportsFloatingPoint):
(JSC::MacroAssemblerX86_64::supportsFloatingPointTruncate):
(JSC::MacroAssemblerX86_64::supportsFloatingPointSqrt):
(JSC::MacroAssemblerX86_64::supportsFloatingPointAbs):
* jit/ThunkGenerators.cpp:
(JSC::absThunkGenerator):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (99744 => 99745)
--- trunk/Source/_javascript_Core/ChangeLog 2011-11-09 19:57:16 UTC (rev 99744)
+++ trunk/Source/_javascript_Core/ChangeLog 2011-11-09 20:01:24 UTC (rev 99745)
@@ -1,3 +1,45 @@
+2011-11-09 Gavin Barraclough <[email protected]>
+
+ https://bugs.webkit.org/show_bug.cgi?id=71873
+
+ Reviewed by Geoff Garen.
+
+ Incrementally re-landing these changes, trying to determine what went wrong.
+ (The whole patch failed tests on the build bot but worked locally.
+
+ * assembler/MacroAssemblerARM.h:
+ (JSC::MacroAssemblerARM::supportsFloatingPoint):
+ (JSC::MacroAssemblerARM::supportsFloatingPointTruncate):
+ (JSC::MacroAssemblerARM::supportsFloatingPointSqrt):
+ (JSC::MacroAssemblerARM::supportsFloatingPointAbs):
+ * assembler/MacroAssemblerARMv7.h:
+ (JSC::MacroAssemblerARMv7::supportsFloatingPoint):
+ (JSC::MacroAssemblerARMv7::supportsFloatingPointTruncate):
+ (JSC::MacroAssemblerARMv7::supportsFloatingPointSqrt):
+ (JSC::MacroAssemblerARMv7::supportsFloatingPointAbs):
+ * assembler/MacroAssemblerMIPS.h:
+ (JSC::MacroAssemblerMIPS::supportsFloatingPoint):
+ (JSC::MacroAssemblerMIPS::supportsFloatingPointTruncate):
+ (JSC::MacroAssemblerMIPS::supportsFloatingPointSqrt):
+ (JSC::MacroAssemblerMIPS::supportsFloatingPointAbs):
+ * assembler/MacroAssemblerSH4.h:
+ (JSC::MacroAssemblerSH4::supportsFloatingPoint):
+ (JSC::MacroAssemblerSH4::supportsFloatingPointTruncate):
+ (JSC::MacroAssemblerSH4::supportsFloatingPointSqrt):
+ (JSC::MacroAssemblerSH4::supportsFloatingPointAbs):
+ * assembler/MacroAssemblerX86.h:
+ (JSC::MacroAssemblerX86::supportsFloatingPoint):
+ (JSC::MacroAssemblerX86::supportsFloatingPointTruncate):
+ (JSC::MacroAssemblerX86::supportsFloatingPointSqrt):
+ (JSC::MacroAssemblerX86::supportsFloatingPointAbs):
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::supportsFloatingPoint):
+ (JSC::MacroAssemblerX86_64::supportsFloatingPointTruncate):
+ (JSC::MacroAssemblerX86_64::supportsFloatingPointSqrt):
+ (JSC::MacroAssemblerX86_64::supportsFloatingPointAbs):
+ * jit/ThunkGenerators.cpp:
+ (JSC::absThunkGenerator):
+
2011-11-08 Darin Adler <[email protected]>
Add code path in HashTable for emptyValueIsZero that does not require copying the empty value
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h (99744 => 99745)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h 2011-11-09 19:57:16 UTC (rev 99744)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h 2011-11-09 20:01:24 UTC (rev 99745)
@@ -780,21 +780,21 @@
}
// Floating point operators
- bool supportsFloatingPoint() const
+ static bool supportsFloatingPoint()
{
return s_isVFPPresent;
}
- bool supportsFloatingPointTruncate() const
+ static bool supportsFloatingPointTruncate()
{
return false;
}
- bool supportsFloatingPointSqrt() const
+ static bool supportsFloatingPointSqrt()
{
return s_isVFPPresent;
}
- bool supportsDoubleBitops() const { return false; }
+ static bool supportsFloatingPointAbs() { return false; }
void loadDouble(ImplicitAddress address, FPRegisterID dest)
{
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h (99744 => 99745)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h 2011-11-09 19:57:16 UTC (rev 99744)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h 2011-11-09 20:01:24 UTC (rev 99745)
@@ -564,7 +564,7 @@
// Floating-point operations:
- bool supportsFloatingPoint() const { return true; }
+ static bool supportsFloatingPoint() { return true; }
// On x86(_64) the MacroAssembler provides an interface to truncate a double to an integer.
// If a value is not representable as an integer, and possibly for some values that are,
// (on x86 INT_MIN, since this is indistinguishable from results for out-of-range/NaN input)
@@ -576,13 +576,13 @@
// generic, or decide that the MacroAssembler cannot practically be used to abstracted these
// operations, and make clients go directly to the m_assembler to plant truncation instructions.
// In short, FIXME:.
- bool supportsFloatingPointTruncate() const { return false; }
+ static bool supportsFloatingPointTruncate() { return false; }
- bool supportsFloatingPointSqrt() const
+ static bool supportsFloatingPointSqrt()
{
return false;
}
- bool supportsDoubleBitops() const { return false; }
+ static bool supportsFloatingPointAbs() { return false; }
void loadDouble(ImplicitAddress address, FPRegisterID dest)
{
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h (99744 => 99745)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h 2011-11-09 19:57:16 UTC (rev 99744)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h 2011-11-09 20:01:24 UTC (rev 99745)
@@ -834,7 +834,7 @@
// Floating-point operations:
- bool supportsFloatingPoint() const
+ static bool supportsFloatingPoint()
{
#if WTF_MIPS_DOUBLE_FLOAT
return true;
@@ -843,7 +843,7 @@
#endif
}
- bool supportsFloatingPointTruncate() const
+ static bool supportsFloatingPointTruncate()
{
#if WTF_MIPS_DOUBLE_FLOAT && WTF_MIPS_ISA_AT_LEAST(2)
return true;
@@ -852,7 +852,7 @@
#endif
}
- bool supportsFloatingPointSqrt() const
+ static bool supportsFloatingPointSqrt()
{
#if WTF_MIPS_DOUBLE_FLOAT && WTF_MIPS_ISA_AT_LEAST(2)
return true;
@@ -860,7 +860,7 @@
return false;
#endif
}
- bool supportsDoubleBitops() const { return false; }
+ static bool supportsFloatingPointAbs() { return false; }
// Stack manipulation operations:
//
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h (99744 => 99745)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h 2011-11-09 19:57:16 UTC (rev 99744)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.h 2011-11-09 20:01:24 UTC (rev 99745)
@@ -786,10 +786,10 @@
// Floating-point operations
- bool supportsFloatingPoint() const { return true; }
- bool supportsFloatingPointTruncate() const { return true; }
- bool supportsFloatingPointSqrt() const { return true; }
- bool supportsDoubleBitops() const { return false; }
+ static bool supportsFloatingPoint() { return true; }
+ static bool supportsFloatingPointTruncate() { return true; }
+ static bool supportsFloatingPointSqrt() { return true; }
+ static bool supportsFloatingPointAbs() { return false; }
void loadDouble(ImplicitAddress address, FPRegisterID dest)
{
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h (99744 => 99745)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h 2011-11-09 19:57:16 UTC (rev 99744)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h 2011-11-09 20:01:24 UTC (rev 99745)
@@ -34,11 +34,6 @@
class MacroAssemblerX86 : public MacroAssemblerX86Common {
public:
- MacroAssemblerX86()
- : m_isSSE2Present(isSSE2Present())
- {
- }
-
static const Scale ScalePtr = TimesFour;
using MacroAssemblerX86Common::add32;
@@ -189,15 +184,13 @@
return DataLabelPtr(this);
}
- bool supportsFloatingPoint() const { return m_isSSE2Present; }
+ static bool supportsFloatingPoint() { return isSSE2Present(); }
// See comment on MacroAssemblerARMv7::supportsFloatingPointTruncate()
- bool supportsFloatingPointTruncate() const { return m_isSSE2Present; }
- bool supportsFloatingPointSqrt() const { return m_isSSE2Present; }
- bool supportsDoubleBitops() const { return m_isSSE2Present; }
+ static bool supportsFloatingPointTruncate() { return isSSE2Present(); }
+ static bool supportsFloatingPointSqrt() { return isSSE2Present(); }
+ static bool supportsFloatingPointAbs() { return isSSE2Present(); }
private:
- const bool m_isSSE2Present;
-
friend class LinkBuffer;
friend class RepatchBuffer;
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h (99744 => 99745)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h 2011-11-09 19:57:16 UTC (rev 99744)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h 2011-11-09 20:01:24 UTC (rev 99745)
@@ -461,11 +461,11 @@
return MacroAssemblerX86Common::branchTest8(cond, BaseIndex(scratchRegister, address.base, TimesOne), mask);
}
- bool supportsFloatingPoint() const { return true; }
+ static bool supportsFloatingPoint() { return true; }
// See comment on MacroAssemblerARMv7::supportsFloatingPointTruncate()
- bool supportsFloatingPointTruncate() const { return true; }
- bool supportsFloatingPointSqrt() const { return true; }
- bool supportsDoubleBitops() const { return true; }
+ static bool supportsFloatingPointTruncate() { return true; }
+ static bool supportsFloatingPointSqrt() { return true; }
+ static bool supportsFloatingPointAbs() { return true; }
private:
friend class LinkBuffer;
Modified: trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp (99744 => 99745)
--- trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp 2011-11-09 19:57:16 UTC (rev 99744)
+++ trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp 2011-11-09 20:01:24 UTC (rev 99745)
@@ -277,7 +277,7 @@
MacroAssemblerCodeRef absThunkGenerator(JSGlobalData* globalData)
{
SpecializedThunkJIT jit(1, globalData);
- if (!jit.supportsDoubleBitops())
+ if (!jit.supportsFloatingPointAbs())
return MacroAssemblerCodeRef::createSelfManagedCodeRef(globalData->jitStubs->ctiNativeCall());
MacroAssembler::Jump nonIntJump;
jit.loadInt32Argument(0, SpecializedThunkJIT::regT0, nonIntJump);