Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 775791 | Differences between
and this patch

Collapse All | Expand All

(-)file_not_specified_in_diff (-5 / +5 lines)
Line  Link Here
0
-- a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
0
++ b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
Lines 1579-1591 llintOpWithMetadata(op_put_by_id, OpPutById, macro (size, get, dispatch, metadat Link Here
1579
    loadp StructureChain::m_vector[t3], t3
1579
    loadp StructureChain::m_vector[t3], t3
1580
    assert(macro (ok) btpnz t3, ok end)
1580
    assert(macro (ok) btpnz t3, ok end)
1581
1581
1582
    loadp Structure::m_prototype[t2], t2
1582
    loadp Structure::m_prototype + PayloadOffset[t2], t2
1583
    btpz t2, .opPutByIdTransitionChainDone
1583
    btpz t2, .opPutByIdTransitionChainDone
1584
.opPutByIdTransitionChainLoop:
1584
.opPutByIdTransitionChainLoop:
1585
    loadp [t3], t1
1585
    loadp [t3], t1
1586
    bineq t1, JSCell::m_structureID[t2], .opPutByIdSlow
1586
    bineq t1, JSCell::m_structureID[t2], .opPutByIdSlow
1587
    addp 4, t3
1587
    addp 4, t3
1588
    loadp Structure::m_prototype[t1], t2
1588
    loadp Structure::m_prototype + PayloadOffset[t1], t2
1589
    btpnz t2, .opPutByIdTransitionChainLoop
1589
    btpnz t2, .opPutByIdTransitionChainLoop
1590
1590
1591
.opPutByIdTransitionChainDone:
1591
.opPutByIdTransitionChainDone:
Lines 2251-2257 end) Link Here
2251
2251
2252
2252
2253
op(llint_throw_from_slow_path_trampoline, macro()
2253
op(llint_throw_from_slow_path_trampoline, macro()
2254
    loadp Callee[cfr], t1
2254
    loadp Callee + PayloadOffset[cfr], t1
2255
    convertCalleeToVM(t1)
2255
    convertCalleeToVM(t1)
2256
    copyCalleeSavesToVMEntryFrameCalleeSavesBuffer(t1, t2)
2256
    copyCalleeSavesToVMEntryFrameCalleeSavesBuffer(t1, t2)
2257
2257
Lines 2260-2266 op(llint_throw_from_slow_path_trampoline, macro() Link Here
2260
    # When throwing from the interpreter (i.e. throwing from LLIntSlowPaths), so
2260
    # When throwing from the interpreter (i.e. throwing from LLIntSlowPaths), so
2261
    # the throw target is not necessarily interpreted code, we come to here.
2261
    # the throw target is not necessarily interpreted code, we come to here.
2262
    # This essentially emulates the JIT's throwing protocol.
2262
    # This essentially emulates the JIT's throwing protocol.
2263
    loadp Callee[cfr], t1
2263
    loadp Callee + PayloadOffset[cfr], t1
2264
    convertCalleeToVM(t1)
2264
    convertCalleeToVM(t1)
2265
    jmp VM::targetMachinePCForThrow[t1]
2265
    jmp VM::targetMachinePCForThrow[t1]
2266
end)
2266
end)

Return to bug 775791