[Webkit-unassigned] [Bug 158083] LLInt should support other types of prototype GetById caching.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Jul 10 12:59:46 PDT 2016


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

Keith Miller <keith_miller at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #282418|review?                     |review-
              Flags|                            |

--- Comment #106 from Keith Miller <keith_miller at apple.com> ---
Comment on attachment 282418
  --> https://bugs.webkit.org/attachment.cgi?id=282418
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=282418&action=review

> Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:686
> +        } else if (UNLIKELY(pc[7].u.operand && (slot.isValue() || slot.isUnset() || ((slot.isAccessor() || slot.isCustom()) && (slot.slotBase() != baseValue))))) {

I think this could just be:

if (UNLIKELY(pc[7].u.operand && (slot.slotBase() != baseValue)))))

> Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:1476
> +        push t1 # Load arg3 JSObject *
> +        push t2 # Load arg2 PropertyName
> +        move CellTag, t3
> +        if BIG_ENDIAN
> +            push t1 # Load arg1 Payload of EncodedJSValue
> +            push t3 # Load arg1 Tag of EncodedJSValue
> +        else
> +            push t3 # Load arg1 Tag of EncodedJSValue
> +            push t1 # Load arg1 Payload of EncodedJSValue
> +        end
> +        push cfr # Loading exec

Looking at this closer. I don't think this is going to work on ARM. The ARM calling convention passes the first four arguments in r0-r3. Additionally, depending on whether or not the device is using the EABI 64-bit values need to start in r0 or r2.

> Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1333
> +        loadp Callee[cfr], t0
> +        andp MarkedBlockMask, t0, t1
> +        loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t1], t1

It is probably worthwhile to make this a macro in LowLevelInterpreter.asm, loadVM(register) or something.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160710/84f54b70/attachment.html>


More information about the webkit-unassigned mailing list