Changeset 34784 in webkit for trunk/JavaScriptCore
- Timestamp:
- Jun 24, 2008, 5:41:40 PM (17 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r34781 r34784 1 2008-06-24 Cameron Zwarich <[email protected]> 2 3 Reviewed by Maciej. 4 5 Make the conversion of the pair (less, jtrue) to jless use register 6 reference counting information for safety instead of requiring callers 7 to decide whether it is safe. 8 9 No changes on SunSpider codegen. 10 11 * VM/CodeGenerator.cpp: 12 (KJS::CodeGenerator::emitJumpIfTrue): 13 * VM/CodeGenerator.h: 14 * kjs/nodes.cpp: 15 (KJS::DoWhileNode::emitCode): 16 (KJS::WhileNode::emitCode): 17 (KJS::ForNode::emitCode): 18 (KJS::CaseBlockNode::emitCodeForBlock): 19 1 20 2008-06-24 Kevin McCullough <[email protected]> 2 21 -
trunk/JavaScriptCore/VM/CodeGenerator.cpp
r34781 r34784 426 426 } 427 427 428 PassRefPtr<LabelID> CodeGenerator::emitJumpIfTrue MayCombine(RegisterID* cond, LabelID* target)428 PassRefPtr<LabelID> CodeGenerator::emitJumpIfTrue(RegisterID* cond, LabelID* target) 429 429 { 430 430 if (m_lastOpcodeID == op_less) { … … 435 435 retrieveLastBinaryOp(dstIndex, src1Index, src2Index); 436 436 437 if (cond->index() == dstIndex ) {437 if (cond->index() == dstIndex && !cond->refCount()) { 438 438 rewindBinaryOp(); 439 439 emitOpcode(op_jless); … … 445 445 } 446 446 447 return emitJumpIfTrue(cond, target);448 }449 450 PassRefPtr<LabelID> CodeGenerator::emitJumpIfTrue(RegisterID* cond, LabelID* target)451 {452 447 emitOpcode(op_jtrue); 453 448 instructions().append(cond->index()); -
trunk/JavaScriptCore/VM/CodeGenerator.h
r34659 r34784 246 246 PassRefPtr<LabelID> emitLabel(LabelID*); 247 247 PassRefPtr<LabelID> emitJump(LabelID* target); 248 PassRefPtr<LabelID> emitJumpIfTrueMayCombine(RegisterID* cond, LabelID* target);249 248 PassRefPtr<LabelID> emitJumpIfTrue(RegisterID* cond, LabelID* target); 250 249 PassRefPtr<LabelID> emitJumpIfFalse(RegisterID* cond, LabelID* target); -
trunk/JavaScriptCore/kjs/nodes.cpp
r34770 r34784 1201 1201 generator.emitLabel(continueTarget.get()); 1202 1202 RegisterID* cond = generator.emitNode(m_expr.get()); 1203 generator.emitJumpIfTrue MayCombine(cond, topOfLoop.get());1203 generator.emitJumpIfTrue(cond, topOfLoop.get()); 1204 1204 generator.emitLabel(breakTarget.get()); 1205 1205 return result.get(); … … 1223 1223 generator.emitLabel(continueTarget.get()); 1224 1224 RegisterID* cond = generator.emitNode(m_expr.get()); 1225 generator.emitJumpIfTrue MayCombine(cond, topOfLoop.get());1225 generator.emitJumpIfTrue(cond, topOfLoop.get()); 1226 1226 1227 1227 generator.emitLabel(breakTarget.get()); … … 1255 1255 if (m_expr2) { 1256 1256 RegisterID* cond = generator.emitNode(m_expr2.get()); 1257 generator.emitJumpIfTrue MayCombine(cond, topOfLoop.get());1257 generator.emitJumpIfTrue(cond, topOfLoop.get()); 1258 1258 } else { 1259 1259 generator.emitJump(topOfLoop.get()); … … 1423 1423 generator.emitBinaryOp(op_stricteq, clauseVal, clauseVal, switchExpression); 1424 1424 labelVector.append(generator.newLabel()); 1425 generator.emitJumpIfTrue MayCombine(clauseVal, labelVector[labelVector.size() - 1].get());1425 generator.emitJumpIfTrue(clauseVal, labelVector[labelVector.size() - 1].get()); 1426 1426 } 1427 1427 … … 1430 1430 generator.emitBinaryOp(op_stricteq, clauseVal, clauseVal, switchExpression); 1431 1431 labelVector.append(generator.newLabel()); 1432 generator.emitJumpIfTrue MayCombine(clauseVal, labelVector[labelVector.size() - 1].get());1432 generator.emitJumpIfTrue(clauseVal, labelVector[labelVector.size() - 1].get()); 1433 1433 } 1434 1434
Note:
See TracChangeset
for help on using the changeset viewer.