Title: [126924] trunk/Source/_javascript_Core
Revision
126924
Author
[email protected]
Date
2012-08-28 13:44:58 -0700 (Tue, 28 Aug 2012)

Log Message

LLInt should not rely on ordering of global labels
https://bugs.webkit.org/show_bug.cgi?id=95221

Reviewed by Oliver Hunt.

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

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (126923 => 126924)


--- trunk/Source/_javascript_Core/ChangeLog	2012-08-28 20:36:18 UTC (rev 126923)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-08-28 20:44:58 UTC (rev 126924)
@@ -1,3 +1,14 @@
+2012-08-28  Filip Pizlo  <[email protected]>
+
+        LLInt should not rely on ordering of global labels
+        https://bugs.webkit.org/show_bug.cgi?id=95221
+
+        Reviewed by Oliver Hunt.
+
+        * llint/LowLevelInterpreter.asm:
+        * llint/LowLevelInterpreter32_64.asm:
+        * llint/LowLevelInterpreter64.asm:
+
 2012-08-28  Caio Marcelo de Oliveira Filho  <[email protected]>
 
         Rename first/second to key/value in HashMap iterators

Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm (126923 => 126924)


--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm	2012-08-28 20:36:18 UTC (rev 126923)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm	2012-08-28 20:44:58 UTC (rev 126924)
@@ -532,7 +532,12 @@
 
 
 _llint_op_loop_if_true:
-    nop
+    traceExecution()
+    jumpTrueOrFalse(
+        macro (value, target) btinz value, target end,
+        _llint_slow_path_jtrue)
+
+
 _llint_op_jtrue:
     traceExecution()
     jumpTrueOrFalse(
@@ -541,7 +546,12 @@
 
 
 _llint_op_loop_if_false:
-    nop
+    traceExecution()
+    jumpTrueOrFalse(
+        macro (value, target) btiz value, target end,
+        _llint_slow_path_jfalse)
+
+
 _llint_op_jfalse:
     traceExecution()
     jumpTrueOrFalse(
@@ -550,7 +560,13 @@
 
 
 _llint_op_loop_if_less:
-    nop
+    traceExecution()
+    compare(
+        macro (left, right, target) bilt left, right, target end,
+        macro (left, right, target) bdlt left, right, target end,
+        _llint_slow_path_jless)
+
+
 _llint_op_jless:
     traceExecution()
     compare(
@@ -568,7 +584,13 @@
 
 
 _llint_op_loop_if_greater:
-    nop
+    traceExecution()
+    compare(
+        macro (left, right, target) bigt left, right, target end,
+        macro (left, right, target) bdgt left, right, target end,
+        _llint_slow_path_jgreater)
+
+
 _llint_op_jgreater:
     traceExecution()
     compare(
@@ -586,7 +608,13 @@
 
 
 _llint_op_loop_if_lesseq:
-    nop
+    traceExecution()
+    compare(
+        macro (left, right, target) bilteq left, right, target end,
+        macro (left, right, target) bdlteq left, right, target end,
+        _llint_slow_path_jlesseq)
+
+
 _llint_op_jlesseq:
     traceExecution()
     compare(
@@ -604,7 +632,13 @@
 
 
 _llint_op_loop_if_greatereq:
-    nop
+    traceExecution()
+    compare(
+        macro (left, right, target) bigteq left, right, target end,
+        macro (left, right, target) bdgteq left, right, target end,
+        _llint_slow_path_jgreatereq)
+
+
 _llint_op_jgreatereq:
     traceExecution()
     compare(

Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm (126923 => 126924)


--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2012-08-28 20:36:18 UTC (rev 126923)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2012-08-28 20:44:58 UTC (rev 126924)
@@ -1397,7 +1397,10 @@
 
 
 _llint_op_loop:
-    nop
+    traceExecution()
+    dispatchBranch(4[PC])
+
+
 _llint_op_jmp:
     traceExecution()
     dispatchBranch(4[PC])

Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm (126923 => 126924)


--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm	2012-08-28 20:36:18 UTC (rev 126923)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm	2012-08-28 20:44:58 UTC (rev 126924)
@@ -1234,7 +1234,10 @@
 
 
 _llint_op_loop:
-    nop
+    traceExecution()
+    dispatchInt(8[PB, PC, 8])
+
+
 _llint_op_jmp:
     traceExecution()
     dispatchInt(8[PB, PC, 8])
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to