|
|
2b8e7b |
diff -up webkitgtk-2.0.4/Source/JavaScriptCore/llint/LowLevelInterpreter.asm.cloop_fix webkitgtk-2.0.4/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
|
|
|
2b8e7b |
--- webkitgtk-2.0.4/Source/JavaScriptCore/llint/LowLevelInterpreter.asm.cloop_fix 2014-05-12 15:38:39.748538807 +0200
|
|
|
2b8e7b |
+++ webkitgtk-2.0.4/Source/JavaScriptCore/llint/LowLevelInterpreter.asm 2014-05-12 15:36:46.908580462 +0200
|
|
|
2b8e7b |
@@ -541,7 +541,7 @@ end
|
|
|
2b8e7b |
|
|
|
2b8e7b |
macro putToBaseVariableBody(variableOffset, scratch1, scratch2, scratch3)
|
|
|
2b8e7b |
loadisFromInstruction(1, scratch1)
|
|
|
2b8e7b |
- loadp PayloadOffset[cfr, scratch1, 8], scratch1
|
|
|
2b8e7b |
+ loadp [cfr, scratch1, 8], scratch1
|
|
|
2b8e7b |
loadp JSVariableObject::m_registers[scratch1], scratch1
|
|
|
2b8e7b |
loadisFromInstruction(3, scratch2)
|
|
|
2b8e7b |
if JSVALUE64
|
|
|
2b8e7b |
@@ -667,7 +667,7 @@ _llint_op_resolve_global_var:
|
|
|
2b8e7b |
macro resolveScopedVarBody(resolveOperations)
|
|
|
2b8e7b |
# First ResolveOperation is to skip scope chain nodes
|
|
|
2b8e7b |
getScope(macro(dest)
|
|
|
2b8e7b |
- loadp ScopeChain + PayloadOffset[cfr], dest
|
|
|
2b8e7b |
+ loadp ScopeChain[cfr], dest
|
|
|
2b8e7b |
end,
|
|
|
2b8e7b |
ResolveOperation::m_scopesToSkip[resolveOperations], t1, t2)
|
|
|
2b8e7b |
loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers
|
|
|
2b8e7b |
@@ -692,7 +692,7 @@ _llint_op_resolve_scoped_var_on_top_scop
|
|
|
2b8e7b |
loadisFromInstruction(1, t3)
|
|
|
2b8e7b |
|
|
|
2b8e7b |
# We know we want the top scope chain entry
|
|
|
2b8e7b |
- loadp ScopeChain + PayloadOffset[cfr], t1
|
|
|
2b8e7b |
+ loadp ScopeChain[cfr], t1
|
|
|
2b8e7b |
loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers
|
|
|
2b8e7b |
|
|
|
2b8e7b |
# Second ResolveOperation tells us what offset to use
|
|
|
2b8e7b |
@@ -707,14 +707,14 @@ _llint_op_resolve_scoped_var_with_top_sc
|
|
|
2b8e7b |
# First ResolveOperation tells us what register to check
|
|
|
2b8e7b |
loadis ResolveOperation::m_activationRegister[t0], t1
|
|
|
2b8e7b |
|
|
|
2b8e7b |
- loadp PayloadOffset[cfr, t1, 8], t1
|
|
|
2b8e7b |
+ loadp [cfr, t1, 8], t1
|
|
|
2b8e7b |
|
|
|
2b8e7b |
getScope(macro(dest)
|
|
|
2b8e7b |
btpz t1, .scopeChainNotCreated
|
|
|
2b8e7b |
loadp JSScope::m_next[t1], dest
|
|
|
2b8e7b |
jmp .done
|
|
|
2b8e7b |
.scopeChainNotCreated:
|
|
|
2b8e7b |
- loadp ScopeChain + PayloadOffset[cfr], dest
|
|
|
2b8e7b |
+ loadp ScopeChain[cfr], dest
|
|
|
2b8e7b |
.done:
|
|
|
2b8e7b |
end,
|
|
|
2b8e7b |
# Second ResolveOperation tells us how many more nodes to skip
|
|
|
2b8e7b |
@@ -769,7 +769,7 @@ _llint_op_resolve_base_to_scope:
|
|
|
2b8e7b |
getResolveOperation(4, t0)
|
|
|
2b8e7b |
# First ResolveOperation is to skip scope chain nodes
|
|
|
2b8e7b |
getScope(macro(dest)
|
|
|
2b8e7b |
- loadp ScopeChain + PayloadOffset[cfr], dest
|
|
|
2b8e7b |
+ loadp ScopeChain[cfr], dest
|
|
|
2b8e7b |
end,
|
|
|
2b8e7b |
ResolveOperation::m_scopesToSkip[t0], t1, t2)
|
|
|
2b8e7b |
loadisFromInstruction(1, t3)
|
|
|
2b8e7b |
@@ -787,14 +787,14 @@ _llint_op_resolve_base_to_scope_with_top
|
|
|
2b8e7b |
# First ResolveOperation tells us what register to check
|
|
|
2b8e7b |
loadis ResolveOperation::m_activationRegister[t0], t1
|
|
|
2b8e7b |
|
|
|
2b8e7b |
- loadp PayloadOffset[cfr, t1, 8], t1
|
|
|
2b8e7b |
+ loadp [cfr, t1, 8], t1
|
|
|
2b8e7b |
|
|
|
2b8e7b |
getScope(macro(dest)
|
|
|
2b8e7b |
btpz t1, .scopeChainNotCreated
|
|
|
2b8e7b |
loadp JSScope::m_next[t1], dest
|
|
|
2b8e7b |
jmp .done
|
|
|
2b8e7b |
.scopeChainNotCreated:
|
|
|
2b8e7b |
- loadp ScopeChain + PayloadOffset[cfr], dest
|
|
|
2b8e7b |
+ loadp ScopeChain[cfr], dest
|
|
|
2b8e7b |
.done:
|
|
|
2b8e7b |
end,
|
|
|
2b8e7b |
# Second ResolveOperation tells us how many more nodes to skip
|
|
|
2b8e7b |
@@ -839,14 +839,14 @@ macro interpretResolveWithBase(opcodeLen
|
|
|
2b8e7b |
|
|
|
2b8e7b |
bineq t2, ResolveOperationSkipTopScopeNode, .notSkipTopScopeNode
|
|
|
2b8e7b |
loadis ResolveOperation::m_activationRegister[t0], t1
|
|
|
2b8e7b |
- loadp PayloadOffset[cfr, t1, 8], t1
|
|
|
2b8e7b |
+ loadp [cfr, t1, 8], t1
|
|
|
2b8e7b |
|
|
|
2b8e7b |
getScope(macro(dest)
|
|
|
2b8e7b |
btpz t1, .scopeChainNotCreated
|
|
|
2b8e7b |
loadp JSScope::m_next[t1], dest
|
|
|
2b8e7b |
jmp .done
|
|
|
2b8e7b |
.scopeChainNotCreated:
|
|
|
2b8e7b |
- loadp ScopeChain + PayloadOffset[cfr], dest
|
|
|
2b8e7b |
+ loadp ScopeChain[cfr], dest
|
|
|
2b8e7b |
.done:
|
|
|
2b8e7b |
end,
|
|
|
2b8e7b |
sizeof ResolveOperation + ResolveOperation::m_scopesToSkip[t0], t1, t2)
|