Changeset 34149 in webkit for trunk/JavaScriptCore/VM/Machine.cpp
- Timestamp:
- May 27, 2008, 7:43:36 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/Machine.cpp
r34135 r34149 1309 1309 int src1 = (++vPC)->u.operand; 1310 1310 int src2 = (++vPC)->u.operand; 1311 JSValue* result = jsNumber((r[src1].u.jsValue->toInt32(exec)) & (r[src2].u.jsValue->toInt32(exec))); 1312 VM_CHECK_EXCEPTION(); 1311 JSValue* v1 = r[src1].u.jsValue; 1312 JSValue* v2 = r[src2].u.jsValue; 1313 JSValue* result; 1314 if (JSImmediate::areBothImmediateNumbers(v1, v2)) 1315 result = JSImmediate::andImmediateNumbers(v1, v2); 1316 else { 1317 result = jsNumber(v1->toInt32(exec) & v2->toInt32(exec)); 1318 VM_CHECK_EXCEPTION(); 1319 } 1313 1320 r[dst].u.jsValue = result; 1314 1321 … … 1326 1333 int src1 = (++vPC)->u.operand; 1327 1334 int src2 = (++vPC)->u.operand; 1328 JSValue* result = jsNumber((r[src1].u.jsValue->toInt32(exec)) ^ (r[src2].u.jsValue->toInt32(exec))); 1329 VM_CHECK_EXCEPTION(); 1335 JSValue* v1 = r[src1].u.jsValue; 1336 JSValue* v2 = r[src2].u.jsValue; 1337 JSValue* result; 1338 if (JSImmediate::areBothImmediateNumbers(v1, v2)) 1339 result = JSImmediate::xorImmediateNumbers(v1, v2); 1340 else { 1341 result = jsNumber(v1->toInt32(exec) ^ v2->toInt32(exec)); 1342 VM_CHECK_EXCEPTION(); 1343 } 1330 1344 r[dst].u.jsValue = result; 1331 1345 … … 1343 1357 int src1 = (++vPC)->u.operand; 1344 1358 int src2 = (++vPC)->u.operand; 1345 JSValue* result = jsNumber((r[src1].u.jsValue->toInt32(exec)) | (r[src2].u.jsValue->toInt32(exec))); 1346 VM_CHECK_EXCEPTION(); 1359 JSValue* v1 = r[src1].u.jsValue; 1360 JSValue* v2 = r[src2].u.jsValue; 1361 JSValue* result; 1362 if (JSImmediate::areBothImmediateNumbers(v1, v2)) 1363 result = JSImmediate::orImmediateNumbers(v1, v2); 1364 else { 1365 result = jsNumber(v1->toInt32(exec) | v2->toInt32(exec)); 1366 VM_CHECK_EXCEPTION(); 1367 } 1347 1368 r[dst].u.jsValue = result; 1348 1369
Note:
See TracChangeset
for help on using the changeset viewer.