Revision: 14552
Author:   [email protected]
Date:     Mon May  6 05:52:31 2013
Log:      Merged r13828, r13847 into 3.17 branch.

Properly handle misses for StoreArrayLengthStub on ia32 and x64

Fix Array.length, String.length and Function.prototype LoadICs on x64.

BUG=v8:2566,v8:2568
[email protected]

Review URL: https://chromiumcodereview.appspot.com/14649015
http://code.google.com/p/v8/source/detail?r=14552

Modified:
 /branches/3.17/src/ia32/code-stubs-ia32.cc
 /branches/3.17/src/version.cc
 /branches/3.17/src/x64/code-stubs-x64.cc

=======================================
--- /branches/3.17/src/ia32/code-stubs-ia32.cc  Thu Feb 28 07:55:26 2013
+++ /branches/3.17/src/ia32/code-stubs-ia32.cc  Mon May  6 05:52:31 2013
@@ -3323,7 +3323,7 @@
   Register value = eax;
   Register scratch = ebx;

-  if (kind() == Code::KEYED_LOAD_IC) {
+  if (kind() == Code::KEYED_STORE_IC) {
     __ cmp(ecx, Immediate(masm->isolate()->factory()->length_symbol()));
     __ j(not_equal, &miss);
   }
=======================================
--- /branches/3.17/src/version.cc       Thu May  2 02:57:44 2013
+++ /branches/3.17/src/version.cc       Mon May  6 05:52:31 2013
@@ -35,7 +35,7 @@
 #define MAJOR_VERSION     3
 #define MINOR_VERSION     17
 #define BUILD_NUMBER      6
-#define PATCH_LEVEL       11
+#define PATCH_LEVEL       12
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)
 #define IS_CANDIDATE_VERSION 0
=======================================
--- /branches/3.17/src/x64/code-stubs-x64.cc    Thu Feb 28 07:55:26 2013
+++ /branches/3.17/src/x64/code-stubs-x64.cc    Mon May  6 05:52:31 2013
@@ -2351,6 +2351,7 @@
     //  -- rsp[0] : return address
     // -----------------------------------
     __ Cmp(rax, masm->isolate()->factory()->length_symbol());
+    __ j(not_equal, &miss);
     receiver = rdx;
   } else {
     ASSERT(kind() == Code::LOAD_IC);
@@ -2378,6 +2379,7 @@
     //  -- rsp[0] : return address
     // -----------------------------------
     __ Cmp(rax, masm->isolate()->factory()->prototype_symbol());
+    __ j(not_equal, &miss);
     receiver = rdx;
   } else {
     ASSERT(kind() == Code::LOAD_IC);
@@ -2405,6 +2407,7 @@
     //  -- rsp[0] : return address
     // -----------------------------------
     __ Cmp(rax, masm->isolate()->factory()->length_symbol());
+    __ j(not_equal, &miss);
     receiver = rdx;
   } else {
     ASSERT(kind() == Code::LOAD_IC);
@@ -2443,6 +2446,7 @@
   Register scratch = rbx;
   if (kind() == Code::KEYED_STORE_IC) {
     __ Cmp(rcx, masm->isolate()->factory()->length_symbol());
+    __ j(not_equal, &miss);
   }

   // Check that the receiver isn't a smi.

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to