Ignore:
Timestamp:
Sep 14, 2008, 4:01:03 PM (17 years ago)
Author:
[email protected]
Message:

2008-09-14 Cameron Zwarich <[email protected]>

Reviewed by Oliver Hunt.

Bug 20816: op_lesseq should be optimized
<https://bugs.webkit.org/show_bug.cgi?id=20816>

Add a loop_if_lesseq opcode that is similar to the loop_if_less opcode.

This is a 9.4% speedup on the V8 Crypto benchmark.

  • VM/CTI.cpp: (JSC::CTI::privateCompileMainPass): (JSC::CTI::privateCompileSlowCases):
  • VM/CodeBlock.cpp: (JSC::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (JSC::CodeGenerator::emitJumpIfTrue):
  • VM/Machine.cpp: (JSC::Machine::privateExecute): (JSC::Machine::cti_op_loop_if_lesseq):
  • VM/Machine.h:
  • VM/Opcode.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/CodeBlock.cpp

    r36401 r36408  
    690690            break;
    691691        }
     692        case op_loop_if_lesseq: {
     693            int r0 = (++it)->u.operand;
     694            int r1 = (++it)->u.operand;
     695            int offset = (++it)->u.operand;
     696            printf("[%4d] loop_if_lesseq\t %s, %s, %d(->%d)\n", location, registerName(r0).c_str(), registerName(r1).c_str(), offset, jumpTarget(begin, it, offset));
     697            break;
     698        }
    692699        case op_switch_imm: {
    693700            int tableIndex = (++it)->u.operand;
Note: See TracChangeset for help on using the changeset viewer.