A new user interface for you! Read more...

File lowlevelinterpreter-bigendian.patch of Package libQtWebKit4

Index: webkit-qtwebkit-23/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
===================================================================
--- webkit-qtwebkit-23.orig/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
+++ webkit-qtwebkit-23/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
@@ -86,6 +86,11 @@ else
     const TagOffset = 4
     const PayloadOffset = 0
 end
+if JSVALUE64
+    const CellOffset = 0
+else
+    const CellOffset = PayloadOffset
+end
 
 # Constant for reasoning about butterflies.
 const IsArray                  = 1
@@ -263,13 +268,13 @@ macro assertNotConstant(index)
 end
 
 macro functionForCallCodeBlockGetter(targetRegister)
-    loadp Callee[cfr], targetRegister
+    loadp Callee + CellOffset[cfr], targetRegister
     loadp JSFunction::m_executable[targetRegister], targetRegister
     loadp FunctionExecutable::m_codeBlockForCall[targetRegister], targetRegister
 end
 
 macro functionForConstructCodeBlockGetter(targetRegister)
-    loadp Callee[cfr], targetRegister
+    loadp Callee + CellOffset[cfr], targetRegister
     loadp JSFunction::m_executable[targetRegister], targetRegister
     loadp FunctionExecutable::m_codeBlockForConstruct[targetRegister], targetRegister
 end
@@ -555,7 +560,11 @@ end
 
 macro putToBaseVariableBody(variableOffset, scratch1, scratch2, scratch3)
     loadisFromInstruction(1, scratch1)
-    loadp PayloadOffset[cfr, scratch1, 8], scratch1
+    if JSVALUE64
+        loadp [cfr, scratch1, 8], scratch1
+    else
+        loadp PayloadOffset[cfr, scratch1, 8], scratch1
+    end
     loadp JSVariableObject::m_registers[scratch1], scratch1
     loadisFromInstruction(3, scratch2)
     if JSVALUE64
@@ -684,7 +693,7 @@ _llint_op_resolve_global_var:
 macro resolveScopedVarBody(resolveOperations)
     # First ResolveOperation is to skip scope chain nodes
     getScope(macro(dest)
-                 loadp ScopeChain + PayloadOffset[cfr], dest
+                 loadp ScopeChain + CellOffset[cfr], dest
              end,
              ResolveOperation::m_scopesToSkip[resolveOperations], t1, t2)
     loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers
@@ -709,7 +718,7 @@ _llint_op_resolve_scoped_var_on_top_scop
     loadisFromInstruction(1, t3)
 
     # We know we want the top scope chain entry
-    loadp ScopeChain + PayloadOffset[cfr], t1
+    loadp ScopeChain + CellOffset[cfr], t1
     loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers
     
     # Second ResolveOperation tells us what offset to use
@@ -724,14 +733,18 @@ _llint_op_resolve_scoped_var_with_top_sc
     # First ResolveOperation tells us what register to check
     loadis ResolveOperation::m_activationRegister[t0], t1
 
-    loadp PayloadOffset[cfr, t1, 8], t1
+    if JSVALUE64
+        loadp [cfr, t1, 8], t1
+    else
+        loadp PayloadOffset[cfr, t1, 8], t1
+    end
 
     getScope(macro(dest)
                  btpz t1, .scopeChainNotCreated
                      loadp JSScope::m_next[t1], dest
                  jmp .done
                  .scopeChainNotCreated:
-                     loadp ScopeChain + PayloadOffset[cfr], dest
+                     loadp ScopeChain + CellOffset[cfr], dest
                  .done:
              end, 
              # Second ResolveOperation tells us how many more nodes to skip
@@ -786,7 +799,7 @@ _llint_op_resolve_base_to_scope:
     getResolveOperation(4, t0, t1)
     # First ResolveOperation is to skip scope chain nodes
     getScope(macro(dest)
-                 loadp ScopeChain + PayloadOffset[cfr], dest
+                 loadp ScopeChain + CellOffset[cfr], dest
              end,
              ResolveOperation::m_scopesToSkip[t0], t1, t2)
     loadisFromInstruction(1, t3)
@@ -804,14 +817,18 @@ _llint_op_resolve_base_to_scope_with_top
     # First ResolveOperation tells us what register to check
     loadis ResolveOperation::m_activationRegister[t0], t1
 
-    loadp PayloadOffset[cfr, t1, 8], t1
+    if JSVALUE64
+        loadp [cfr, t1, 8], t1
+    else
+        loadp PayloadOffset[cfr, t1, 8], t1
+    end
 
     getScope(macro(dest)
                  btpz t1, .scopeChainNotCreated
                      loadp JSScope::m_next[t1], dest
                  jmp .done
                  .scopeChainNotCreated:
-                     loadp ScopeChain + PayloadOffset[cfr], dest
+                     loadp ScopeChain + CellOffset[cfr], dest
                  .done:
              end, 
              # Second ResolveOperation tells us how many more nodes to skip
@@ -841,7 +858,7 @@ macro interpretResolveWithBase(opcodeLen
     getResolveOperation(4, t0, t1)
     btpz t0, .slowPath
 
-    loadp ScopeChain[cfr], t3
+    loadp ScopeChain + CellOffset[cfr], t3
     # Get the base
     loadis ResolveOperation::m_operation[t0], t2
 
@@ -856,14 +873,18 @@ macro interpretResolveWithBase(opcodeLen
 
     bineq t2, ResolveOperationSkipTopScopeNode, .notSkipTopScopeNode
         loadis ResolveOperation::m_activationRegister[t0], t1
-        loadp PayloadOffset[cfr, t1, 8], t1
+        if JSVALUE64
+            loadp [cfr, t1, 8], t1
+        else
+            loadp PayloadOffset[cfr, t1, 8], t1
+        end
 
         getScope(macro(dest)
                      btpz t1, .scopeChainNotCreated
                          loadp JSScope::m_next[t1], dest
                      jmp .done
                      .scopeChainNotCreated:
-                         loadp ScopeChain + PayloadOffset[cfr], dest
+                         loadp ScopeChain + CellOffset[cfr], dest
                      .done:
                  end,
                  sizeof ResolveOperation + ResolveOperation::m_scopesToSkip[t0], t1, t2)
Index: webkit-qtwebkit-23/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
===================================================================
--- webkit-qtwebkit-23.orig/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
+++ webkit-qtwebkit-23/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
@@ -1287,7 +1287,7 @@ _llint_op_get_by_pname:
     loadp JSCell::m_structure[t2], t0
     bpneq t0, JSPropertyNameIterator::m_cachedStructure[t3], .opGetByPnameSlow
     loadi 24[PC], t0
-    loadi [cfr, t0, 8], t0
+    loadi PayloadOffset[cfr, t0, 8], t0
     subi 1, t0
     biaeq t0, JSPropertyNameIterator::m_numCacheableSlots[t3], .opGetByPnameSlow
     bilt t0, JSPropertyNameIterator::m_cachedStructureInlineCapacity[t3], .opGetByPnameInlineProperty
@@ -1718,7 +1718,7 @@ _llint_op_next_pname:
     loadi 20[PC], t2
     loadi PayloadOffset[cfr, t2, 8], t2
     loadp JSPropertyNameIterator::m_jsStrings[t2], t3
-    loadi [t3, t0, 8], t3
+    loadi PayloadOffset[t3, t0, 8], t3
     addi 1, t0
     storei t0, PayloadOffset[cfr, t1, 8]
     loadi 4[PC], t1