Title: [163887] trunk/Source
Revision
163887
Author
[email protected]
Date
2014-02-11 10:09:36 -0800 (Tue, 11 Feb 2014)

Log Message

32-bit LLInt writeBarrierOnGlobalObject is wrong
https://bugs.webkit.org/show_bug.cgi?id=128556

Reviewed by Geoffrey Garen.

Source/_javascript_Core:

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm: Also fixed the value check on 64-bit.

Source/WTF:

* wtf/Platform.h: Removed OBJECT_MARK_LOGGING from Platform.h since it already exists in FeatureDefines.h

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (163886 => 163887)


--- trunk/Source/_javascript_Core/ChangeLog	2014-02-11 18:00:45 UTC (rev 163886)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-02-11 18:09:36 UTC (rev 163887)
@@ -1,3 +1,13 @@
+2014-02-11  Mark Hahnenberg  <[email protected]>
+
+        32-bit LLInt writeBarrierOnGlobalObject is wrong
+        https://bugs.webkit.org/show_bug.cgi?id=128556
+
+        Reviewed by Geoffrey Garen.
+
+        * llint/LowLevelInterpreter32_64.asm:
+        * llint/LowLevelInterpreter64.asm: Also fixed the value check on 64-bit.
+
 2014-02-11  Gabor Rapcsanyi  <[email protected]>
 
         LLInt typo error after r139004.

Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm (163886 => 163887)


--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2014-02-11 18:00:45 UTC (rev 163886)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2014-02-11 18:09:36 UTC (rev 163887)
@@ -556,6 +556,7 @@
 macro writeBarrierOnGlobalObject(valueOperand)
     if GGC
         loadisFromInstruction(valueOperand, t1)
+        loadConstantOrVariableTag(t1, t0)
         bineq t0, CellTag, .writeBarrierDone
     
         loadp CodeBlock[cfr], t3

Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm (163886 => 163887)


--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm	2014-02-11 18:00:45 UTC (rev 163886)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm	2014-02-11 18:09:36 UTC (rev 163887)
@@ -409,7 +409,7 @@
 macro writeBarrierOnOperands(cellOperand, valueOperand)
     if GGC
         loadisFromInstruction(valueOperand, t1)
-        loadConstantOrVariable(t1, t0)
+        loadConstantOrVariableCell(t1, t0, .writeBarrierDone)
         btpz t0, .writeBarrierDone
     
         writeBarrierOnOperand(cellOperand)
@@ -420,7 +420,7 @@
 macro writeBarrierOnGlobalObject(valueOperand)
     if GGC
         loadisFromInstruction(valueOperand, t1)
-        loadConstantOrVariable(t1, t0)
+        loadConstantOrVariableCell(t1, t0, .writeBarrierDone)
         btpz t0, .writeBarrierDone
     
         loadp CodeBlock[cfr], t3

Modified: trunk/Source/WTF/ChangeLog (163886 => 163887)


--- trunk/Source/WTF/ChangeLog	2014-02-11 18:00:45 UTC (rev 163886)
+++ trunk/Source/WTF/ChangeLog	2014-02-11 18:09:36 UTC (rev 163887)
@@ -1,3 +1,12 @@
+2014-02-11  Mark Hahnenberg  <[email protected]>
+
+        32-bit LLInt writeBarrierOnGlobalObject is wrong
+        https://bugs.webkit.org/show_bug.cgi?id=128556
+
+        Reviewed by Geoffrey Garen.
+
+        * wtf/Platform.h: Removed OBJECT_MARK_LOGGING from Platform.h since it already exists in FeatureDefines.h
+
 2014-02-11  [email protected]  <[email protected]>
 
         [WinCairo] Compile error, deleted file in WTF.

Modified: trunk/Source/WTF/wtf/Platform.h (163886 => 163887)


--- trunk/Source/WTF/wtf/Platform.h	2014-02-11 18:00:45 UTC (rev 163886)
+++ trunk/Source/WTF/wtf/Platform.h	2014-02-11 18:09:36 UTC (rev 163887)
@@ -935,8 +935,6 @@
 #define ENABLE_COMPARE_AND_SWAP 1
 #endif
 
-#define ENABLE_OBJECT_MARK_LOGGING 0
-
 #if !defined(ENABLE_PARALLEL_GC) && !ENABLE(OBJECT_MARK_LOGGING) && (OS(DARWIN) && !PLATFORM(EFL) || PLATFORM(GTK)) && ENABLE(COMPARE_AND_SWAP)
 #define ENABLE_PARALLEL_GC 1
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to