Changeset 96436 in webkit
- Timestamp:
- Sep 30, 2011 4:05:59 PM (13 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r96432 r96436 1 2011-09-30 Gavin Barraclough <barraclough@apple.com> 2 3 DFG JIT, Branch on integer can always be a 32-bit compare. 4 https://bugs.webkit.org/show_bug.cgi?id=69174 5 6 Reviewed by Sam Weinig. 7 8 if (shouldSpeculateInteger(node.child1()) && !isStrictInt32(node.child1())), 9 the JSVALUE64 JIT will currently compare all 64bits in the register, but in 10 these cases the DataFormat is always a JS boxed integer. In these cases we 11 can just compare the low 32bits anyway - no need to check the tag. 12 This allows the code to be unified with the JSVALUE32_64 JIT. 13 14 * dfg/DFGSpeculativeJIT32_64.cpp: 15 (JSC::DFG::SpeculativeJIT::compile): 16 * dfg/DFGSpeculativeJIT64.cpp: 17 (JSC::DFG::SpeculativeJIT::compile): 18 1 19 2011-09-30 Oliver Hunt <oliver@apple.com> 2 20 -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
r96415 r96436 1271 1271 case Branch: 1272 1272 if (isStrictInt32(node.child1()) || shouldSpeculateInteger(node.child1())) { 1273 Speculate StrictInt32Operand op(this, node.child1());1273 SpeculateIntegerOperand op(this, node.child1()); 1274 1274 1275 1275 BlockIndex taken = m_jit.graph().blockIndexForBytecodeOffset(node.takenBytecodeOffset()); -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
r96415 r96436 1364 1364 1365 1365 case Branch: 1366 if (isStrictInt32(node.child1()) ) {1367 Speculate StrictInt32Operand op(this, node.child1());1366 if (isStrictInt32(node.child1()) || shouldSpeculateInteger(node.child1())) { 1367 SpeculateIntegerOperand op(this, node.child1()); 1368 1368 1369 1369 BlockIndex taken = m_jit.graph().blockIndexForBytecodeOffset(node.takenBytecodeOffset()); … … 1380 1380 1381 1381 addBranch(m_jit.branchTest32(condition, op.gpr()), taken); 1382 if (notTaken != (m_block + 1))1383 addBranch(m_jit.jump(), notTaken);1384 1385 noResult(m_compileIndex);1386 break;1387 }1388 if (shouldSpeculateInteger(node.child1())) {1389 SpeculateIntegerOperand op(this, node.child1());1390 1391 BlockIndex taken = m_jit.graph().blockIndexForBytecodeOffset(node.takenBytecodeOffset());1392 BlockIndex notTaken = m_jit.graph().blockIndexForBytecodeOffset(node.notTakenBytecodeOffset());1393 1394 MacroAssembler::RelationalCondition condition = MacroAssembler::NotEqual;1395 1396 if (taken == (m_block + 1)) {1397 condition = MacroAssembler::Equal;1398 BlockIndex tmp = taken;1399 taken = notTaken;1400 notTaken = tmp;1401 }1402 1403 addBranch(m_jit.branchPtr(condition, op.gpr(), GPRInfo::tagTypeNumberRegister), taken);1404 1405 1382 if (notTaken != (m_block + 1)) 1406 1383 addBranch(m_jit.jump(), notTaken);
Note: See TracChangeset
for help on using the changeset viewer.