Changeset 37602 in webkit for trunk/JavaScriptCore


Ignore:
Timestamp:
Oct 15, 2008, 2:35:10 AM (17 years ago)
Author:
[email protected]
Message:

2008-10-15 Gabor Loki <[email protected]>

Reviewed by Cameron Zwarich.

<https://bugs.webkit.org/show_bug.cgi?id=20912>
Use simple uint32_t multiplication on op_mul if both operands are
immediate number and they are between zero and 0x7FFF.

  • VM/Machine.cpp: (JSC::Machine::privateExecute):
Location:
trunk/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r37600 r37602  
     12008-10-15  Gabor Loki  <[email protected]>
     2
     3        Reviewed by Cameron Zwarich.
     4
     5        <https://bugs.webkit.org/show_bug.cgi?id=20912>
     6        Use simple uint32_t multiplication on op_mul if both operands are
     7        immediate number and they are between zero and 0x7FFF.
     8
     9        * VM/Machine.cpp:
     10        (JSC::Machine::privateExecute):
     11
    1122008-10-09  Darin Fisher  <[email protected]>
    213
  • trunk/JavaScriptCore/VM/Machine.cpp

    r37597 r37602  
    18651865        double left;
    18661866        double right;
    1867         if (fastIsNumber(src1, left) && fastIsNumber(src2, right))
     1867        if (JSImmediate::areBothImmediateNumbers(src1, src2)) {
     1868            int32_t left = JSImmediate::getTruncatedInt32(src1);
     1869            int32_t right = JSImmediate::getTruncatedInt32(src2);
     1870            if ((left | right) >> 15 == 0)
     1871                callFrame[dst] = jsNumber(callFrame, left * right);
     1872            else
     1873                callFrame[dst] = jsNumber(callFrame, static_cast<double>(left) * static_cast<double>(right));
     1874        } else if (fastIsNumber(src1, left) && fastIsNumber(src2, right))
    18681875            callFrame[dst] = jsNumber(callFrame, left * right);
    18691876        else {
Note: See TracChangeset for help on using the changeset viewer.