Title: [197660] releases/WebKitGTK/webkit-2.4/Source/_javascript_Core
Revision
197660
Author
[email protected]
Date
2016-03-06 23:54:15 -0800 (Sun, 06 Mar 2016)

Log Message

Merge r173886 - [CLoop] - Fix CLoop on the 32-bit Big-Endians
https://bugs.webkit.org/show_bug.cgi?id=137020

Patch by Tomas Popela <[email protected]> on 2014-09-23
Reviewed by Mark Lam.

* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/ChangeLog (197659 => 197660)


--- releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/ChangeLog	2016-03-07 06:41:51 UTC (rev 197659)
+++ releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/ChangeLog	2016-03-07 07:54:15 UTC (rev 197660)
@@ -1,3 +1,13 @@
+2014-09-23  Tomas Popela  <[email protected]>
+
+        [CLoop] - Fix CLoop on the 32-bit Big-Endians
+        https://bugs.webkit.org/show_bug.cgi?id=137020
+
+        Reviewed by Mark Lam.
+
+        * llint/LowLevelInterpreter.asm:
+        * llint/LowLevelInterpreter32_64.asm:
+
 2015-12-07  Alberto Garcia  <[email protected]>
 
         Crashes on PPC64 due to mprotect() on address not aligned to the page size

Modified: releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LLIntSlowPaths.cpp (197659 => 197660)


--- releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LLIntSlowPaths.cpp	2016-03-07 06:41:51 UTC (rev 197659)
+++ releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LLIntSlowPaths.cpp	2016-03-07 07:54:15 UTC (rev 197660)
@@ -1354,7 +1354,7 @@
             CodeBlock* codeBlock = exec->codeBlock();
             ConcurrentJITLocker locker(codeBlock->m_lock);
             pc[5].u.structure.set(exec->vm(), codeBlock->ownerExecutable(), scope->structure());
-            pc[6].u.operand = slot.cachedOffset();
+            pc[6].u.pointer = reinterpret_cast<void*>(slot.cachedOffset());
         }
     }
 
@@ -1381,7 +1381,7 @@
         if (slot.isCacheable() && slot.base() == scope && scope->structure()->propertyAccessesAreCacheable()) {
             ConcurrentJITLocker locker(codeBlock->m_lock);
             pc[5].u.structure.set(exec->vm(), codeBlock->ownerExecutable(), scope->structure());
-            pc[6].u.operand = slot.cachedOffset();
+            pc[6].u.pointer = reinterpret_cast<void*>(slot.cachedOffset());
         }
     }
 

Modified: releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter.asm (197659 => 197660)


--- releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter.asm	2016-03-07 06:41:51 UTC (rev 197659)
+++ releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter.asm	2016-03-07 07:54:15 UTC (rev 197660)
@@ -299,13 +299,21 @@
 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

Modified: releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm (197659 => 197660)


--- releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2016-03-07 06:41:51 UTC (rev 197659)
+++ releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2016-03-07 07:54:15 UTC (rev 197660)
@@ -321,7 +321,7 @@
 
 .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 @@
 
 
 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
@@ -2002,7 +2002,7 @@
     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
@@ -2039,7 +2039,7 @@
     # 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
@@ -2135,7 +2135,7 @@
         move t0, cfr
         call executableOffsetToFunction[t1]
         addp 16 - 4, sp
-        loadp ScopeChain[cfr], t3
+        loadp ScopeChain + PayloadOffset[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
@@ -2159,7 +2159,7 @@
         andp MarkedBlockMask, t3
         loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
     elsif C_LOOP
-        loadp ScopeChain[cfr], t3
+        loadp ScopeChain + PayloadOffset[cfr], t3
         andp MarkedBlockMask, t3
         loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
         storep cfr, VM::topCallFrame[t3]
@@ -2172,7 +2172,7 @@
         move t2, cfr
         cloopCallNative executableOffsetToFunction[t1]
         restoreReturnAddressBeforeReturn(t3)
-        loadp ScopeChain[cfr], t3
+        loadp ScopeChain + PayloadOffset[cfr], t3
         andp MarkedBlockMask, t3
         loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
     else
@@ -2212,7 +2212,7 @@
     addi 1, t2
 
 .resolveScopeAfterActivationCheck:
-    loadp ScopeChain[cfr], t0
+    loadp ScopeChain + PayloadOffset[cfr], t0
     btiz t2, .resolveScopeLoopEnd
 
 .resolveScopeLoop:
@@ -2271,13 +2271,13 @@
 
 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
 
 macro getProperty()
-    loadisFromInstruction(6, t3)
+    loadpFromInstruction(6, t3)
     loadPropertyAtVariableOffset(t3, t0, t1, t2)
     valueProfile(t1, t2, 28, t0)
     loadisFromInstruction(1, t0)
@@ -2297,7 +2297,7 @@
 
 macro getClosureVar()
     loadp JSVariableObject::m_registers[t0], t0
-    loadisFromInstruction(6, t3)
+    loadpFromInstruction(6, t3)
     loadp TagOffset[t0, t3, 8], t1
     loadp PayloadOffset[t0, t3, 8], t2
     valueProfile(t1, t2, 28, t0)
@@ -2356,7 +2356,7 @@
 macro putProperty()
     loadisFromInstruction(3, t1)
     loadConstantOrVariable(t1, t2, t3)
-    loadisFromInstruction(6, t1)
+    loadpFromInstruction(6, t1)
     storePropertyAtVariableOffset(t1, t0, t2, t3)
 end
 
@@ -2374,7 +2374,7 @@
     loadisFromInstruction(3, t1)
     loadConstantOrVariable(t1, t2, t3)
     loadp JSVariableObject::m_registers[t0], t0
-    loadisFromInstruction(6, t1)
+    loadpFromInstruction(6, t1)
     storei t2, TagOffset[t0, t1, 8]
     storei t3, PayloadOffset[t0, t1, 8]
 end

Modified: releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter64.asm (197659 => 197660)


--- releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter64.asm	2016-03-07 06:41:51 UTC (rev 197659)
+++ releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter64.asm	2016-03-07 07:54:15 UTC (rev 197660)
@@ -2047,7 +2047,7 @@
 end
 
 macro getProperty()
-    loadisFromInstruction(6, t1)
+    loadpFromInstruction(6, t1)
     loadPropertyAtVariableOffset(t1, t0, t2)
     valueProfile(t2, 7, t0)
     loadisFromInstruction(1, t0)
@@ -2064,7 +2064,7 @@
 
 macro getClosureVar()
     loadp JSVariableObject::m_registers[t0], t0
-    loadisFromInstruction(6, t1)
+    loadpFromInstruction(6, t1)
     loadq [t0, t1, 8], t0
     valueProfile(t0, 7, t1)
     loadisFromInstruction(1, t1)
@@ -2121,7 +2121,7 @@
 macro putProperty()
     loadisFromInstruction(3, t1)
     loadConstantOrVariable(t1, t2)
-    loadisFromInstruction(6, t1)
+    loadpFromInstruction(6, t1)
     storePropertyAtVariableOffset(t1, t0, t2)
 end
 
@@ -2138,7 +2138,7 @@
     loadisFromInstruction(3, t1)
     loadConstantOrVariable(t1, t2)
     loadp JSVariableObject::m_registers[t0], t0
-    loadisFromInstruction(6, t1)
+    loadpFromInstruction(6, t1)
     storeq t2, [t0, t1, 8]
 end
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to