Changeset 71220 in webkit


Ignore:
Timestamp:
Nov 3, 2010 1:21:58 AM (13 years ago)
Author:
loki@webkit.org
Message:

2010-11-03 Gabor Loki <loki@webkit.org>

Reviewed by Geoffrey Garen.

Unused class: JSFastMath with JSValue64
https://bugs.webkit.org/show_bug.cgi?id=48835

Remove unused JSFastMath class.

  • runtime/JSImmediate.h:
Location:
trunk/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r71155 r71220  
     12010-11-03  Gabor Loki  <loki@webkit.org>
     2
     3        Reviewed by Geoffrey Garen.
     4
     5        Unused class: JSFastMath with JSValue64
     6        https://bugs.webkit.org/show_bug.cgi?id=48835
     7
     8        Remove unused JSFastMath class.
     9
     10        * runtime/JSImmediate.h:
     11
    1122010-11-02  Adam Roben  <aroben@apple.com>
    213
  • trunk/JavaScriptCore/runtime/JSImmediate.h

    r70111 r71220  
    4040    class ExecState;
    4141    class JSCell;
    42     class JSFastMath;
    4342    class JSGlobalData;
    4443    class JSObject;
     
    134133        friend class JIT;
    135134        friend class JSValue;
    136         friend class JSFastMath;
    137135        friend class JSInterfaceJIT;
    138136        friend class SpecializedThunkJIT;
     
    564562    }
    565563
    566     class JSFastMath {
    567     public:
    568         static ALWAYS_INLINE bool canDoFastBitwiseOperations(JSValue v1, JSValue v2)
    569         {
    570             return JSImmediate::areBothImmediateIntegerNumbers(v1, v2);
    571         }
    572 
    573         static ALWAYS_INLINE JSValue equal(JSValue v1, JSValue v2)
    574         {
    575             ASSERT(canDoFastBitwiseOperations(v1, v2));
    576             return jsBoolean(v1 == v2);
    577         }
    578 
    579         static ALWAYS_INLINE JSValue notEqual(JSValue v1, JSValue v2)
    580         {
    581             ASSERT(canDoFastBitwiseOperations(v1, v2));
    582             return jsBoolean(v1 != v2);
    583         }
    584 
    585         static ALWAYS_INLINE JSValue andImmediateNumbers(JSValue v1, JSValue v2)
    586         {
    587             ASSERT(canDoFastBitwiseOperations(v1, v2));
    588             return JSImmediate::makeValue(JSImmediate::rawValue(v1) & JSImmediate::rawValue(v2));
    589         }
    590 
    591         static ALWAYS_INLINE JSValue xorImmediateNumbers(JSValue v1, JSValue v2)
    592         {
    593             ASSERT(canDoFastBitwiseOperations(v1, v2));
    594             return JSImmediate::makeValue((JSImmediate::rawValue(v1) ^ JSImmediate::rawValue(v2)) | JSImmediate::TagTypeNumber);
    595         }
    596 
    597         static ALWAYS_INLINE JSValue orImmediateNumbers(JSValue v1, JSValue v2)
    598         {
    599             ASSERT(canDoFastBitwiseOperations(v1, v2));
    600             return JSImmediate::makeValue(JSImmediate::rawValue(v1) | JSImmediate::rawValue(v2));
    601         }
    602 
    603         static ALWAYS_INLINE bool canDoFastRshift(JSValue v1, JSValue v2)
    604         {
    605             return JSImmediate::areBothImmediateIntegerNumbers(v1, v2);
    606         }
    607 
    608         static ALWAYS_INLINE bool canDoFastUrshift(JSValue v1, JSValue v2)
    609         {
    610             return JSImmediate::areBothImmediateIntegerNumbers(v1, v2) && !(JSImmediate::rawValue(v1) & JSImmediate::signBit);
    611         }
    612 
    613         static ALWAYS_INLINE JSValue rightShiftImmediateNumbers(JSValue val, JSValue shift)
    614         {
    615             ASSERT(canDoFastRshift(val, shift) || canDoFastUrshift(val, shift));
    616             return JSImmediate::makeValue(static_cast<intptr_t>(static_cast<uint32_t>(static_cast<int32_t>(JSImmediate::rawValue(val)) >> ((JSImmediate::rawValue(shift) >> JSImmediate::IntegerPayloadShift) & 0x1f))) | JSImmediate::TagTypeNumber);
    617         }
    618 
    619         static ALWAYS_INLINE bool canDoFastAdditiveOperations(JSValue v)
    620         {
    621             // Number is non-negative and an operation involving two of these can't overflow.
    622             // Checking for allowed negative numbers takes more time than it's worth on SunSpider.
    623             return (JSImmediate::rawValue(v) & (JSImmediate::TagTypeNumber + (JSImmediate::signBit | (JSImmediate::signBit >> 1)))) == JSImmediate::TagTypeNumber;
    624         }
    625 
    626         static ALWAYS_INLINE bool canDoFastAdditiveOperations(JSValue v1, JSValue v2)
    627         {
    628             // Number is non-negative and an operation involving two of these can't overflow.
    629             // Checking for allowed negative numbers takes more time than it's worth on SunSpider.
    630             return canDoFastAdditiveOperations(v1) && canDoFastAdditiveOperations(v2);
    631         }
    632 
    633         static ALWAYS_INLINE JSValue addImmediateNumbers(JSValue v1, JSValue v2)
    634         {
    635             ASSERT(canDoFastAdditiveOperations(v1, v2));
    636             return JSImmediate::makeValue(JSImmediate::rawValue(v1) + JSImmediate::rawValue(v2) - JSImmediate::TagTypeNumber);
    637         }
    638 
    639         static ALWAYS_INLINE JSValue subImmediateNumbers(JSValue v1, JSValue v2)
    640         {
    641             ASSERT(canDoFastAdditiveOperations(v1, v2));
    642             return JSImmediate::makeValue(JSImmediate::rawValue(v1) - JSImmediate::rawValue(v2) + JSImmediate::TagTypeNumber);
    643         }
    644 
    645         static ALWAYS_INLINE JSValue incImmediateNumber(JSValue v)
    646         {
    647             ASSERT(canDoFastAdditiveOperations(v));
    648             return JSImmediate::makeValue(JSImmediate::rawValue(v) + (1 << JSImmediate::IntegerPayloadShift));
    649         }
    650 
    651         static ALWAYS_INLINE JSValue decImmediateNumber(JSValue v)
    652         {
    653             ASSERT(canDoFastAdditiveOperations(v));
    654             return JSImmediate::makeValue(JSImmediate::rawValue(v) - (1 << JSImmediate::IntegerPayloadShift));
    655         }
    656     };
    657 
    658564} // namespace JSC
    659565
Note: See TracChangeset for help on using the changeset viewer.