2009-05-07 Maciej Stachowiak <mjs@apple.com>
authormjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 May 2009 20:42:59 +0000 (20:42 +0000)
committermjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 May 2009 20:42:59 +0000 (20:42 +0000)
commit4ff53cc665ed2258395c9937128b56a8c65c1780
treeea7750197b27e9507c155659c445fbc60a00709a
parent407e99f6a5a3eba0ac228ad49c904b550dbb1ef0
2009-05-07  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Sam Weinig.

        - optimize various cases of branch-fused less

        1% speedup on SunSpider overall
        13% speedup on math-cordic

        * jit/JIT.cpp:
        (JSC::JIT::privateCompileMainPass):
        op_loop_if_less: Optimize case of constant as first operand, just as case of constant as
        second operand.
        op_jnless: Factored out into compileFastArith_op_jnless.
        (JSC::JIT::privateCompileSlowCases):
        op_jnless: Factored out into compileFastArithSlow_op_jnless.
        * jit/JIT.h:
        * jit/JITArithmetic.cpp:
        (JSC::JIT::compileFastArith_op_jnless): Factored out from main compile loop.
        - Generate inline code for comparison of constant immediate int as first operand to another
        immediate int, as for loop_if_less

        (JSC::JIT::compileFastArithSlow_op_jnless):
        - Generate inline code for comparing two floating point numbers.
        - Generate code for both cases of comparing a floating point number to a constant immediate
        int.
        * bytecode/CodeBlock.cpp:
        (JSC::CodeBlock::dump): Fix dumping of op_jnless (tangentially related bugfix).

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43363 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/bytecode/CodeBlock.cpp
JavaScriptCore/jit/JIT.cpp
JavaScriptCore/jit/JIT.h
JavaScriptCore/jit/JITArithmetic.cpp