Index: src/arm/stub-cache-arm.cc |
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc |
index d7b1b55c20a06589f472cb39f0eb022e7ff41490..f7fa9efaca78df41622188a906040f24172a7472 100644 |
--- a/src/arm/stub-cache-arm.cc |
+++ b/src/arm/stub-cache-arm.cc |
@@ -479,10 +479,9 @@ void BaseStoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm, |
Representation representation = details.representation(); |
ASSERT(!representation.IsNone()); |
- if (details.type() == CONSTANT_FUNCTION) { |
- Handle<HeapObject> constant( |
- HeapObject::cast(descriptors->GetValue(descriptor))); |
- __ LoadHeapObject(scratch1, constant); |
+ if (details.type() == CONSTANT) { |
+ Handle<Object> constant(descriptors->GetValue(descriptor), masm->isolate()); |
+ __ LoadObject(scratch1, constant); |
__ cmp(value_reg, scratch1); |
__ b(ne, miss_label); |
} else if (FLAG_track_fields && representation.IsSmi()) { |
@@ -543,7 +542,7 @@ void BaseStoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm, |
OMIT_REMEMBERED_SET, |
OMIT_SMI_CHECK); |
- if (details.type() == CONSTANT_FUNCTION) { |
+ if (details.type() == CONSTANT) { |
ASSERT(value_reg.is(r0)); |
__ Ret(); |
return; |
@@ -1399,9 +1398,9 @@ void BaseLoadStubCompiler::GenerateLoadField(Register reg, |
} |
-void BaseLoadStubCompiler::GenerateLoadConstant(Handle<JSFunction> value) { |
+void BaseLoadStubCompiler::GenerateLoadConstant(Handle<Object> value) { |
// Return the constant value. |
- __ LoadHeapObject(r0, value); |
+ __ LoadObject(r0, value); |
__ Ret(); |
} |
@@ -1814,7 +1813,7 @@ Handle<Code> CallStubCompiler::CompileArrayPushCall( |
__ b(gt, &call_builtin); |
__ ldr(r4, MemOperand(sp, (argc - 1) * kPointerSize)); |
- __ StoreNumberToDoubleElements(r4, r0, elements, r5, |
+ __ StoreNumberToDoubleElements(r4, r0, elements, r5, d0, |
&call_builtin, argc * kDoubleSize); |
// Save new length. |
@@ -2670,7 +2669,7 @@ Handle<Code> CallStubCompiler::CompileCallConstant( |
Handle<Code> code = CompileCustomCall(object, holder, |
Handle<Cell>::null(), |
function, Handle<String>::cast(name), |
- Code::CONSTANT_FUNCTION); |
+ Code::CONSTANT); |
// A null handle means bail out to the regular compiler code below. |
if (!code.is_null()) return code; |
} |
@@ -3195,7 +3194,7 @@ static void GenerateSmiKeyCheck(MacroAssembler* masm, |
Register key, |
Register scratch0, |
DwVfpRegister double_scratch0, |
- DwVfpRegister double_scratch1, |
+ LowDwVfpRegister double_scratch1, |
Label* fail) { |
Label key_ok; |
// Check for smi or a smi inside a heap number. We convert the heap |
@@ -3604,7 +3603,7 @@ void KeyedStoreStubCompiler::GenerateStoreFastDoubleElement( |
__ bind(&finish_store); |
__ StoreNumberToDoubleElements(value_reg, key_reg, elements_reg, |
- scratch1, &transition_elements_kind); |
+ scratch1, d0, &transition_elements_kind); |
__ Ret(); |
// Handle store cache miss, replacing the ic with the generic stub. |
@@ -3652,7 +3651,7 @@ void KeyedStoreStubCompiler::GenerateStoreFastDoubleElement( |
__ mov(scratch1, elements_reg); |
__ StoreNumberToDoubleElements(value_reg, key_reg, scratch1, |
- scratch2, &transition_elements_kind); |
+ scratch2, d0, &transition_elements_kind); |
__ mov(scratch1, Operand(kHoleNanLower32)); |
__ mov(scratch2, Operand(kHoleNanUpper32)); |