Changeset 194042 in webkit
- Timestamp:
- Dec 14, 2015, 11:44:56 AM (9 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r194040 r194042 1 2015-12-14 Mark Lam <mark.lam@apple.com> 2 3 Misc. small fixes in snippet related code. 4 https://bugs.webkit.org/show_bug.cgi?id=152259 5 6 Reviewed by Saam Barati. 7 8 * dfg/DFGSpeculativeJIT.cpp: 9 (JSC::DFG::SpeculativeJIT::compileArithMul): 10 - When loading a constant JSValue for a node, use the one that the node already 11 provides instead of reconstructing it. This is not a bug, but the fix makes 12 the code cleaner. 13 14 * jit/JITBitAndGenerator.cpp: 15 (JSC::JITBitAndGenerator::generateFastPath): 16 - No need to do a bitand with a constant int 0xffffffff operand. 17 18 * jit/JITBitOrGenerator.cpp: 19 (JSC::JITBitOrGenerator::generateFastPath): 20 - Fix comments: bitor is '|', not '&'. 21 - No need to do a bitor with a constant int 0 operand. 22 23 * jit/JITBitXorGenerator.cpp: 24 (JSC::JITBitXorGenerator::generateFastPath): 25 - Fix comments: bitxor is '^', not '&'. 26 27 * jit/JITRightShiftGenerator.cpp: 28 (JSC::JITRightShiftGenerator::generateFastPath): 29 - Renamed a jump target name to be clearer about its purpose. 30 1 31 2015-12-14 Mark Lam <mark.lam@apple.com> 2 32 -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
r194036 r194042 3579 3579 if (leftOperand.isPositiveConstInt32()) { 3580 3580 leftRegs = resultRegs; 3581 int64_t leftConst = leftOperand.asConstInt32(); 3582 m_jit.moveValue(JSValue(leftConst), leftRegs); 3581 m_jit.moveValue(leftChild->asJSValue(), leftRegs); 3583 3582 } else if (rightOperand.isPositiveConstInt32()) { 3584 3583 rightRegs = resultRegs; 3585 int64_t rightConst = rightOperand.asConstInt32(); 3586 m_jit.moveValue(JSValue(rightConst), rightRegs); 3584 m_jit.moveValue(rightChild->asJSValue(), rightRegs); 3587 3585 } 3588 3586 -
trunk/Source/JavaScriptCore/jit/JITBitAndGenerator.cpp
r193471 r194042 53 53 54 54 jit.moveValueRegs(var, m_result); 55 if (constOpr.asConstInt32() != static_cast<int32_t>(0xffffffff)) { 55 56 #if USE(JSVALUE64) 56 jit.and64(CCallHelpers::Imm32(constOpr.asConstInt32()), m_result.payloadGPR());57 if (constOpr.asConstInt32() >= 0)58 jit.or64(GPRInfo::tagTypeNumberRegister, m_result.payloadGPR());57 jit.and64(CCallHelpers::Imm32(constOpr.asConstInt32()), m_result.payloadGPR()); 58 if (constOpr.asConstInt32() >= 0) 59 jit.or64(GPRInfo::tagTypeNumberRegister, m_result.payloadGPR()); 59 60 #else 60 jit.and32(CCallHelpers::Imm32(constOpr.asConstInt32()), m_result.payloadGPR());61 jit.and32(CCallHelpers::Imm32(constOpr.asConstInt32()), m_result.payloadGPR()); 61 62 #endif 62 63 } 64 63 65 } else { 64 66 ASSERT(!m_leftOperand.isConstInt32() && !m_rightOperand.isConstInt32()); -
trunk/Source/JavaScriptCore/jit/JITBitOrGenerator.cpp
r193471 r194042 41 41 SnippetOperand& constOpr = m_leftOperand.isConstInt32() ? m_leftOperand : m_rightOperand; 42 42 43 // Try to do intVar &intConstant.43 // Try to do intVar | intConstant. 44 44 m_slowPathJumpList.append(jit.branchIfNotInt32(var)); 45 45 46 46 jit.moveValueRegs(var, m_result); 47 if (constOpr.asConstInt32()) { 47 48 #if USE(JSVALUE64) 48 jit.or32(CCallHelpers::Imm32(constOpr.asConstInt32()), m_result.payloadGPR());49 jit.or64(GPRInfo::tagTypeNumberRegister, m_result.payloadGPR());49 jit.or32(CCallHelpers::Imm32(constOpr.asConstInt32()), m_result.payloadGPR()); 50 jit.or64(GPRInfo::tagTypeNumberRegister, m_result.payloadGPR()); 50 51 #else 51 jit.or32(CCallHelpers::Imm32(constOpr.asConstInt32()), m_result.payloadGPR());52 jit.or32(CCallHelpers::Imm32(constOpr.asConstInt32()), m_result.payloadGPR()); 52 53 #endif 53 54 } 55 54 56 } else { 55 57 ASSERT(!m_leftOperand.isConstInt32() && !m_rightOperand.isConstInt32()); 56 58 57 // Try to do intVar &intVar.59 // Try to do intVar | intVar. 58 60 m_slowPathJumpList.append(jit.branchIfNotInt32(m_left)); 59 61 m_slowPathJumpList.append(jit.branchIfNotInt32(m_right)); -
trunk/Source/JavaScriptCore/jit/JITBitXorGenerator.cpp
r193471 r194042 41 41 SnippetOperand& constOpr = m_leftOperand.isConstInt32() ? m_leftOperand : m_rightOperand; 42 42 43 // Try to do intVar &intConstant.43 // Try to do intVar ^ intConstant. 44 44 m_slowPathJumpList.append(jit.branchIfNotInt32(var)); 45 45 … … 55 55 ASSERT(!m_leftOperand.isConstInt32() && !m_rightOperand.isConstInt32()); 56 56 57 // Try to do intVar &intVar.57 // Try to do intVar ^ intVar. 58 58 m_slowPathJumpList.append(jit.branchIfNotInt32(m_left)); 59 59 m_slowPathJumpList.append(jit.branchIfNotInt32(m_right)); -
trunk/Source/JavaScriptCore/jit/JITRightShiftGenerator.cpp
r193788 r194042 88 88 m_slowPathJumpList.append(jit.branchIfNotInt32(m_right)); 89 89 90 CCallHelpers::Jump notInt;90 CCallHelpers::Jump leftNotInt; 91 91 if (m_leftOperand.isConstInt32()) { 92 92 #if USE(JSVALUE32_64) … … 95 95 jit.move(CCallHelpers::Imm32(m_leftOperand.asConstInt32()), m_result.payloadGPR()); 96 96 } else { 97 notInt = jit.branchIfNotInt32(m_left);97 leftNotInt = jit.branchIfNotInt32(m_left); 98 98 jit.moveValueRegs(m_left, m_result); 99 99 } … … 113 113 114 114 // Try to do (doubleVar >> intVar). 115 notInt.link(&jit);115 leftNotInt.link(&jit); 116 116 117 117 m_slowPathJumpList.append(jit.branchIfNotNumber(m_left, m_scratchGPR)); … … 126 126 127 127 } else 128 m_slowPathJumpList.append( notInt);128 m_slowPathJumpList.append(leftNotInt); 129 129 } 130 130 }
Note:
See TracChangeset
for help on using the changeset viewer.