diff -up webkitgtk-2.4.9/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix_2_4 webkitgtk-2.4.9/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
--- webkitgtk-2.4.9/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix_2_4 2016-03-07 11:32:36.130671900 +0100
+++ webkitgtk-2.4.9/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm 2016-03-07 13:15:35.451673413 +0100
@@ -321,7 +321,7 @@ macro doCallToJavaScript(makeCall, doRet
.calleeFramePopped:
loadp Callee[cfr], temp3 # VM.topCallFrame
- loadp ScopeChain[cfr], temp4
+ loadp ScopeChain + PayloadOffset[cfr], temp4
storep temp4, [temp3]
doReturn(extraStackSpace)
@@ -598,7 +598,7 @@ end
macro branchIfException(label)
- loadp ScopeChain[cfr], t3
+ loadp ScopeChain + PayloadOffset[cfr], t3
andp MarkedBlockMask, t3
loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
bieq VM::m_exception + TagOffset[t3], EmptyValueTag, .noException
@@ -2039,7 +2039,7 @@ _llint_op_catch:
# the interpreter's throw trampoline (see _llint_throw_trampoline).
# The throwing code must have known that we were throwing to the interpreter,
# and have set VM::targetInterpreterPCForThrow.
- loadp ScopeChain[cfr], t3
+ loadp ScopeChain + PayloadOffset[cfr], t3
andp MarkedBlockMask, t3
loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
loadp VM::callFrameForThrow[t3], cfr
@@ -2122,7 +2122,7 @@ macro nativeCallTrampoline(executableOff
storei CellTag, ScopeChain + TagOffset[cfr]
storei t1, ScopeChain + PayloadOffset[cfr]
if X86
- loadp ScopeChain[cfr], t3
+ loadp PayloadOffset + ScopeChain[cfr], t3
andp MarkedBlockMask, t3
loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
storep cfr, VM::topCallFrame[t3]
@@ -2135,11 +2135,11 @@ macro nativeCallTrampoline(executableOff
move t0, cfr
call executableOffsetToFunction[t1]
addp 16 - 4, sp
- loadp ScopeChain[cfr], t3
+ loadp PayloadOffset + ScopeChain[cfr], t3
andp MarkedBlockMask, t3
loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
elsif ARM or ARMv7 or ARMv7_TRADITIONAL or MIPS or SH4
- loadp ScopeChain[cfr], t3
+ loadp PayloadOffset + ScopeChain[cfr], t3
andp MarkedBlockMask, t3
loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
storep cfr, VM::topCallFrame[t3]
@@ -2155,11 +2155,11 @@ macro nativeCallTrampoline(executableOff
end
call executableOffsetToFunction[t1]
restoreReturnAddressBeforeReturn(t3)
- loadp ScopeChain[cfr], t3
+ loadp PayloadOffset + ScopeChain[cfr], t3
andp MarkedBlockMask, t3
loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
elsif C_LOOP
- loadp ScopeChain[cfr], t3
+ loadp PayloadOffset + ScopeChain[cfr], t3
andp MarkedBlockMask, t3
loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
storep cfr, VM::topCallFrame[t3]
@@ -2172,7 +2172,7 @@ macro nativeCallTrampoline(executableOff
move t2, cfr
cloopCallNative executableOffsetToFunction[t1]
restoreReturnAddressBeforeReturn(t3)
- loadp ScopeChain[cfr], t3
+ loadp PayloadOffset + ScopeChain[cfr], t3
andp MarkedBlockMask, t3
loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
else
@@ -2212,7 +2212,7 @@ macro resolveScope()
addi 1, t2
.resolveScopeAfterActivationCheck:
- loadp ScopeChain[cfr], t0
+ loadp ScopeChain + PayloadOffset[cfr], t0
btiz t2, .resolveScopeLoopEnd
.resolveScopeLoop:
@@ -2271,7 +2271,7 @@ _llint_op_resolve_scope:
macro loadWithStructureCheck(operand, slowPath)
loadisFromInstruction(operand, t0)
- loadp [cfr, t0, 8], t0
+ loadp PayloadOffset[cfr, t0, 8], t0
loadpFromInstruction(5, t1)
bpneq JSCell::m_structure[t0], t1, slowPath
end
diff -up webkitgtk-2.4.9/Source/JavaScriptCore/llint/LowLevelInterpreter.asm.cloop_fix_2_4 webkitgtk-2.4.9/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
--- webkitgtk-2.4.9/Source/JavaScriptCore/llint/LowLevelInterpreter.asm.cloop_fix_2_4 2015-05-20 11:03:24.000000000 +0200
+++ webkitgtk-2.4.9/Source/JavaScriptCore/llint/LowLevelInterpreter.asm 2016-03-07 11:32:36.129671904 +0100
@@ -299,13 +299,21 @@ macro assertNotConstant(index)
end
macro functionForCallCodeBlockGetter(targetRegister)
- loadp Callee[cfr], targetRegister
+ if JSVALUE64
+ loadp Callee[cfr], targetRegister
+ else
+ loadp Callee + PayloadOffset[cfr], targetRegister
+ end
loadp JSFunction::m_executable[targetRegister], targetRegister
loadp FunctionExecutable::m_codeBlockForCall[targetRegister], targetRegister
end
macro functionForConstructCodeBlockGetter(targetRegister)
- loadp Callee[cfr], targetRegister
+ if JSVALUE64
+ loadp Callee[cfr], targetRegister
+ else
+ loadp Callee + PayloadOffset[cfr], targetRegister
+ end
loadp JSFunction::m_executable[targetRegister], targetRegister
loadp FunctionExecutable::m_codeBlockForConstruct[targetRegister], targetRegister
end