2008-09-24 Maciej Stachowiak <mjs@apple.com>
[WebKit.git] / JavaScriptCore / VM / Machine.cpp
index 8c7b624a9676a17139065904ccc9aca65fa69448..4512b0cfe8f2065e084726b11b35e85f8f7335e7 100644 (file)
@@ -1561,7 +1561,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         if (JSImmediate::areBothImmediateNumbers(src1, src2))
             r[dst] = jsBoolean(reinterpret_cast<intptr_t>(src1) == reinterpret_cast<intptr_t>(src2));
         else {
         if (JSImmediate::areBothImmediateNumbers(src1, src2))
             r[dst] = jsBoolean(reinterpret_cast<intptr_t>(src1) == reinterpret_cast<intptr_t>(src2));
         else {
-            JSValue* result = jsBoolean(equal(exec, src1, src2));
+            JSValue* result = jsBoolean(equalSlowCase(exec, src1, src2));
             VM_CHECK_EXCEPTION();
             r[dst] = result;
         }
             VM_CHECK_EXCEPTION();
             r[dst] = result;
         }
@@ -1601,7 +1601,7 @@ JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFi
         if (JSImmediate::areBothImmediateNumbers(src1, src2))
             r[dst] = jsBoolean(src1 != src2);
         else {
         if (JSImmediate::areBothImmediateNumbers(src1, src2))
             r[dst] = jsBoolean(src1 != src2);
         else {
-            JSValue* result = jsBoolean(!equal(exec, src1, src2));
+            JSValue* result = jsBoolean(!equalSlowCase(exec, src1, src2));
             VM_CHECK_EXCEPTION();
             r[dst] = result;
         }
             VM_CHECK_EXCEPTION();
             r[dst] = result;
         }
@@ -5020,7 +5020,7 @@ JSValue* Machine::cti_op_eq(CTI_ARGS)
     ExecState* exec = ARG_exec;
 
     ASSERT(!JSImmediate::areBothImmediateNumbers(src1, src2));
     ExecState* exec = ARG_exec;
 
     ASSERT(!JSImmediate::areBothImmediateNumbers(src1, src2));
-    JSValue* result = jsBoolean(equal(exec, src1, src2));
+    JSValue* result = jsBoolean(equalSlowCaseInline(exec, src1, src2));
     VM_CHECK_EXCEPTION_AT_END();
     return result;
 }
     VM_CHECK_EXCEPTION_AT_END();
     return result;
 }
@@ -5163,14 +5163,12 @@ JSValue* Machine::cti_op_neq(CTI_ARGS)
     JSValue* src1 = ARG_src1;
     JSValue* src2 = ARG_src2;
 
     JSValue* src1 = ARG_src1;
     JSValue* src2 = ARG_src2;
 
-    if (JSImmediate::areBothImmediateNumbers(src1, src2))
-        return jsBoolean(reinterpret_cast<intptr_t>(src1) != reinterpret_cast<intptr_t>(src2));
-    else {
-        ExecState* exec = ARG_exec;
-        JSValue* result = jsBoolean(!equal(exec, src1, src2));
-        VM_CHECK_EXCEPTION_AT_END();
-        return result;
-    }
+    ASSERT(!JSImmediate::areBothImmediateNumbers(src1, src2));
+
+    ExecState* exec = ARG_exec;
+    JSValue* result = jsBoolean(!equalSlowCaseInline(exec, src1, src2));
+    VM_CHECK_EXCEPTION_AT_END();
+    return result;
 }
 
 JSValue* Machine::cti_op_post_dec(CTI_ARGS)
 }
 
 JSValue* Machine::cti_op_post_dec(CTI_ARGS)