Show
Ignore:
Timestamp:
08/06/08 13:29:36 (5 months ago)
Author:
mbensi
Message:

merge with webkit revision 35588

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/JavaScriptCore/VM/Machine.cpp

    r429 r431  
    14331433        int dividend = (++vPC)->u.operand; 
    14341434        int divisor = (++vPC)->u.operand; 
    1435         double d = r[dividend].jsValue(exec)->toNumber(exec); 
    1436         JSValue* result = jsNumber(exec, fmod(d, r[divisor].jsValue(exec)->toNumber(exec))); 
     1435 
     1436        JSValue* dividendValue = r[dividend].jsValue(exec); 
     1437        JSValue* divisorValue = r[divisor].jsValue(exec); 
     1438 
     1439        if (JSImmediate::areBothImmediateNumbers(dividendValue, divisorValue) && divisorValue != JSImmediate::from(0)) { 
     1440            r[dst] = JSImmediate::from(JSImmediate::getTruncatedInt32(dividendValue) % JSImmediate::getTruncatedInt32(divisorValue)); 
     1441            ++vPC; 
     1442            NEXT_OPCODE; 
     1443        } 
     1444 
     1445        double d = dividendValue->toNumber(exec); 
     1446        JSValue* result = jsNumber(exec, fmod(d, divisorValue->toNumber(exec))); 
    14371447        VM_CHECK_EXCEPTION(); 
    14381448        r[dst] = result;