diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-16 14:56:46 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-16 14:57:30 +0200 |
commit | b297e0fa5c217c9467033b7c8b46891a52870120 (patch) | |
tree | 43fc14689295e9e64f2719d05aad94e3049f6cd7 /Source/JavaScriptCore/llint/LowLevelInterpreter.asm | |
parent | 69d517dbfa69903d8593cc1737f0474b21e3251e (diff) | |
download | qtwebkit-b297e0fa5c217c9467033b7c8b46891a52870120.tar.gz |
Revert "Imported WebKit commit 0dc6cd75e1d4836eaffbb520be96fac4847cc9d2 (http://svn.webkit.org/repository/webkit/trunk@131300)"
This reverts commit 5466563f4b5b6b86523e3f89bb7f77e5b5270c78.
Caused OOM issues on some CI machines :(
Diffstat (limited to 'Source/JavaScriptCore/llint/LowLevelInterpreter.asm')
-rw-r--r-- | Source/JavaScriptCore/llint/LowLevelInterpreter.asm | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm index a971abf4f..e347ccc70 100644 --- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm @@ -24,13 +24,7 @@ # First come the common protocols that both interpreters use. Note that each # of these must have an ASSERT() in LLIntData.cpp -# Work-around for the fact that the toolchain's awareness of armv7s results in -# a separate slab in the fat binary, yet the offlineasm doesn't know to expect -# it. -if ARMv7s -end - -# These declarations must match interpreter/JSStack.h. +# These declarations must match interpreter/RegisterFile.h. const CallFrameHeaderSize = 48 const ArgumentCount = -48 const CallerFrame = -40 @@ -44,7 +38,7 @@ const ThisArgumentOffset = -CallFrameHeaderSize - 8 # Some register conventions. if JSVALUE64 # - Use a pair of registers to represent the PC: one register for the - # base of the stack, and one register for the index. + # base of the register file, and one register for the index. # - The PC base (or PB for short) should be stored in the csr. It will # get clobbered on calls to other JS code, but will get saved on calls # to C functions. @@ -69,10 +63,8 @@ end # Constant for reasoning about butterflies. const IsArray = 1 -const IndexingShapeMask = 30 -const ContiguousShape = 26 -const ArrayStorageShape = 28 -const SlowPutArrayStorageShape = 30 +const HasArrayStorage = 8 +const AllArrayTypes = 15 # Type constants. const StringType = 5 @@ -97,8 +89,12 @@ const LLIntReturnPC = ArgumentCount + TagOffset # String flags. const HashFlags8BitBuffer = 64 -# Copied from PropertyOffset.h -const firstOutOfLineOffset = 100 +# Property storage constants +if JSVALUE64 + const InlineStorageCapacity = 6 +else + const InlineStorageCapacity = 7 +end # Allocation constants if JSVALUE64 @@ -323,13 +319,13 @@ macro functionInitialization(profileArgSkip) # Check stack height. loadi CodeBlock::m_numCalleeRegisters[t1], t0 loadp CodeBlock::m_globalData[t1], t2 - loadp JSGlobalData::interpreter[t2], t2 # FIXME: Can get to the JSStack from the JITStackFrame + loadp JSGlobalData::interpreter[t2], t2 # FIXME: Can get to the RegisterFile from the JITStackFrame lshifti 3, t0 addp t0, cfr, t0 - bpaeq Interpreter::m_stack + JSStack::m_end[t2], t0, .stackHeightOK + bpaeq Interpreter::m_registerFile + RegisterFile::m_end[t2], t0, .stackHeightOK # Stack height check failed - need to call a slow_path. - callSlowPath(_llint_stack_check) + callSlowPath(_llint_register_file_check) .stackHeightOK: end @@ -914,4 +910,3 @@ _llint_op_put_by_id_transition: # Indicate the end of LLInt. _llint_end: crash() - |