Ignore:
Timestamp:
Mar 19, 2009, 9:28:35 PM (16 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

2009-03-19 Geoffrey Garen <[email protected]>

Reviewed by Cameron Zwarich and Oliver Hunt.

Fixed <rdar://problem/6406045> REGRESSION: Stack overflow on PowerPC on
fast/workers/use-machine-stack.html (22531)

Dialed down the re-entry allowance to 64 (from 128).


On a 512K stack, this leaves about 64K for other code on the stack while
JavaScript is running. Not perfect, but it solves our crash on PPC.

Different platforms may want to dial this down even more.

Also, substantially shrunk BytecodeGenerator. Since we allocate one on
the stack in order to throw a stack overflow exception -- well, let's
just say the old code had an appreciation for irony.

SunSpider reports no change.

  • bytecompiler/BytecodeGenerator.h:
  • interpreter/Interpreter.h: (JSC::):

LayoutTests:

2009-03-19 Geoffrey Garen <[email protected]>

Reviewed by Cameron Zwarich and Oliver Hunt.

Re-enabled this test, since it no longer crashes when JavaScriptCore is
compiled in non-JIT mode.

  • fast/workers/use-machine-stack.html: Copied from fast/workers/use-machine-stack.html-disabled.
  • fast/workers/use-machine-stack.html-disabled: Removed.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/bytecompiler/BytecodeGenerator.h

    r41806 r41852  
    439439        RegisterID m_argumentsRegister;
    440440        int m_activationRegisterIndex;
    441         SegmentedVector<RegisterID, 512> m_calleeRegisters;
    442         SegmentedVector<RegisterID, 512> m_parameters;
    443         SegmentedVector<RegisterID, 512> m_globals;
    444         SegmentedVector<LabelScope, 256> m_labelScopes;
    445         SegmentedVector<Label, 256> m_labels;
     441        SegmentedVector<RegisterID, 32> m_calleeRegisters;
     442        SegmentedVector<RegisterID, 32> m_parameters;
     443        SegmentedVector<RegisterID, 32> m_globals;
     444        SegmentedVector<LabelScope, 8> m_labelScopes;
     445        SegmentedVector<Label, 32> m_labels;
    446446        RefPtr<RegisterID> m_lastConstant;
    447447        int m_finallyDepth;
Note: See TracChangeset for help on using the changeset viewer.