Revision: 14547
Author:   mvstan...@chromium.org
Date:     Fri May  3 08:18:31 2013
Log: Before comparing input with a constant smi in GenerateRecordCallTarget(), make sure the input register is actually a smi.

BUG=

Review URL: https://codereview.chromium.org/14803005
http://code.google.com/p/v8/source/detail?r=14547

Modified:
 /branches/bleeding_edge/src/arm/code-stubs-arm.cc
 /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc
 /branches/bleeding_edge/src/x64/code-stubs-x64.cc

=======================================
--- /branches/bleeding_edge/src/arm/code-stubs-arm.cc Fri May 3 03:36:16 2013 +++ /branches/bleeding_edge/src/arm/code-stubs-arm.cc Fri May 3 08:18:31 2013
@@ -4750,6 +4750,7 @@
   Handle<Object> terminal_kind_sentinel =
       TypeFeedbackCells::MonomorphicArraySentinel(masm->isolate(),
                                                   LAST_FAST_ELEMENTS_KIND);
+  __ JumpIfNotSmi(r3, &miss);
   __ cmp(r3, Operand(terminal_kind_sentinel));
   __ b(gt, &miss);
   // Make sure the function is the Array() function
=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Fri May 3 03:36:16 2013 +++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Fri May 3 08:18:31 2013
@@ -4775,6 +4775,7 @@
   Handle<Object> terminal_kind_sentinel =
       TypeFeedbackCells::MonomorphicArraySentinel(isolate,
                                                   LAST_FAST_ELEMENTS_KIND);
+  __ JumpIfNotSmi(ecx, &miss);
   __ cmp(ecx, Immediate(terminal_kind_sentinel));
   __ j(above, &miss);
   // Load the global or builtins object from the current context
=======================================
--- /branches/bleeding_edge/src/x64/code-stubs-x64.cc Fri May 3 03:36:16 2013 +++ /branches/bleeding_edge/src/x64/code-stubs-x64.cc Fri May 3 08:18:31 2013
@@ -3835,6 +3835,7 @@
   Handle<Object> terminal_kind_sentinel =
       TypeFeedbackCells::MonomorphicArraySentinel(isolate,
                                                   LAST_FAST_ELEMENTS_KIND);
+  __ JumpIfNotSmi(rcx, &miss);
   __ Cmp(rcx, terminal_kind_sentinel);
   __ j(above, &miss);
   // Make sure the function is the Array() function

--
--
v8-dev mailing list
v8-dev@googlegroups.com
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 v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to