[Webkit-unassigned] [Bug 48060] Speed up op_jeq_null and op_jneq_null in JIT

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Oct 22 13:11:27 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=48060


Oliver Hunt <oliver at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #71421|review?, commit-queue?      |review-, commit-queue-
               Flag|                            |




--- Comment #2 from Oliver Hunt <oliver at apple.com>  2010-10-22 13:11:26 PST ---
(From update of attachment 71421)
I think we can do better than this.  Currently there's
        enum { Int32Tag =        0xffffffff };
        enum { CellTag =         0xfffffffe };
        enum { TrueTag =         0xfffffffd };
        enum { FalseTag =        0xfffffffc };
        enum { NullTag =         0xfffffffb };
        enum { UndefinedTag =    0xfffffffa };
        enum { EmptyValueTag =   0xfffffff9 };
        enum { DeletedValueTag = 0xfffffff8 };

If we reorder these as:
        enum { NullTag =         0xfffffffb };
        enum { UndefinedTag =    0xfffffffe };
        enum { Int32Tag =        0xfffffffd };
        enum { CellTag =         0xfffffffc };
        enum { TrueTag =         0xfffffffb };
        enum { FalseTag =        0xfffffffa };
        enum { EmptyValueTag =   0xfffffff9 };
        enum { DeletedValueTag = 0xfffffff8 };

Then we don't need any bit logic at all, and can replace it with
addJump(branch32(GreaterOrEqual, regT1, Imm32(JSValue::UndefinedTag)), target);

(or whichever is the unsigned >= condition)

Gavin is there any reason this would not work?

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list