Index: src/arm/stub-cache-arm.cc |
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc |
index 89b87acd4e261739d54fe1e4a78ac3429748493d..eca3e453c0e42780ef645837a872c928215f0fbf 100644 |
--- a/src/arm/stub-cache-arm.cc |
+++ b/src/arm/stub-cache-arm.cc |
@@ -1550,8 +1550,11 @@ MaybeObject* CallStubCompiler::CompileArrayPushCall(Object* object, |
__ ldr(elements, FieldMemOperand(receiver, JSArray::kElementsOffset)); |
// Check that the elements are in fast mode and writable. |
- __ CheckMap(elements, r0, |
- Heap::kFixedArrayMapRootIndex, &call_builtin, true); |
+ __ CheckMap(elements, |
+ r0, |
+ Heap::kFixedArrayMapRootIndex, |
+ &call_builtin, |
+ DONT_DO_SMI_CHECK); |
if (argc == 1) { // Otherwise fall through to call the builtin. |
Label exit, with_write_barrier, attempt_to_grow_elements; |
@@ -1700,7 +1703,11 @@ MaybeObject* CallStubCompiler::CompileArrayPopCall(Object* object, |
__ ldr(elements, FieldMemOperand(receiver, JSArray::kElementsOffset)); |
// Check that the elements are in fast mode and writable. |
- __ CheckMap(elements, r0, Heap::kFixedArrayMapRootIndex, &call_builtin, true); |
+ __ CheckMap(elements, |
+ r0, |
+ Heap::kFixedArrayMapRootIndex, |
+ &call_builtin, |
+ DONT_DO_SMI_CHECK); |
// Get the array's length into r4 and calculate new length. |
__ ldr(r4, FieldMemOperand(receiver, JSArray::kLengthOffset)); |
@@ -2042,7 +2049,7 @@ MaybeObject* CallStubCompiler::CompileMathFloorCall(Object* object, |
__ Drop(argc + 1, eq); |
__ Ret(eq); |
- __ CheckMap(r0, r1, Heap::kHeapNumberMapRootIndex, &slow, true); |
+ __ CheckMap(r0, r1, Heap::kHeapNumberMapRootIndex, &slow, DONT_DO_SMI_CHECK); |
Label wont_fit_smi, no_vfp_exception, restore_fpscr_and_return; |
@@ -2203,7 +2210,7 @@ MaybeObject* CallStubCompiler::CompileMathAbsCall(Object* object, |
// Check if the argument is a heap number and load its exponent and |
// sign. |
__ bind(¬_smi); |
- __ CheckMap(r0, r1, Heap::kHeapNumberMapRootIndex, &slow, true); |
+ __ CheckMap(r0, r1, Heap::kHeapNumberMapRootIndex, &slow, DONT_DO_SMI_CHECK); |
__ ldr(r1, FieldMemOperand(r0, HeapNumber::kExponentOffset)); |
// Check the sign of the argument. If the argument is positive, |