Hello community, here is the log from the commit of package libQtWebKit4 for openSUSE:Factory checked in at 2014-01-29 07:15:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libQtWebKit4 (Old) and /work/SRC/openSUSE:Factory/.libQtWebKit4.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libQtWebKit4" Changes: -------- --- /work/SRC/openSUSE:Factory/libQtWebKit4/libQtWebKit4.changes 2013-12-23 12:33:09.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libQtWebKit4.new/libQtWebKit4.changes 2014-01-29 07:15:49.000000000 +0100 @@ -1,0 +2,6 @@ +Sun Jan 26 20:24:38 UTC 2014 - [email protected] + +- lowlevelinterpreter-bigendian.patch: fix LLInt for big endian (webkit#103128) +- Remove extra / from RPM_OPT_FLAGS + +------------------------------------------------------------------- New: ---- lowlevelinterpreter-bigendian.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libQtWebKit4.spec ++++++ --- /var/tmp/diff_new_pack.CybWP8/_old 2014-01-29 07:15:51.000000000 +0100 +++ /var/tmp/diff_new_pack.CybWP8/_new 2014-01-29 07:15:51.000000000 +0100 @@ -54,6 +54,8 @@ Patch13: bison3.patch # PATCH-FIX-UPSTREAM ppc64le-support.diff [email protected] -- add support for ppc64le Patch14: ppc64le-support.patch +# PATCH-FIX-UPSTREAM lowlevelinterpreter-bigendian.patch -- Fix LLInt for big endian, webkit#103128 +Patch15: lowlevelinterpreter-bigendian.patch BuildRequires: bison BuildRequires: fdupes BuildRequires: flex @@ -131,12 +133,13 @@ %patch12 -p1 %patch13 -p1 %patch14 -p1 +%patch15 -p1 %build # runs out of memory or creates static archives > 2/4GB boundary otherwise %ifarch %arm aarch64 RPM_OPT_FLAGS="$RPM_OPT_FLAGS " -export RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-g / /} +export RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-g / } %endif %ifnarch x86_64 ++++++ lowlevelinterpreter-bigendian.patch ++++++ 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 -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
