Index: src/arm/code-stubs-arm.cc |
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc |
index 558f5e17061a905db1bb2edfb39ff6001eed00bb..8222c43edf818e1f039e173617cfdf62a7e76805 100644 |
--- a/src/arm/code-stubs-arm.cc |
+++ b/src/arm/code-stubs-arm.cc |
@@ -490,7 +490,7 @@ void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm) { |
int param_count = descriptor->register_param_count_; |
{ |
// Call the runtime system in a fresh internal frame. |
- FrameScope scope(masm, StackFrame::INTERNAL); |
+ FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL); |
ASSERT(descriptor->register_param_count_ == 0 || |
r0.is(descriptor->register_params_[param_count - 1])); |
// Push arguments |
@@ -1606,14 +1606,15 @@ void CEntryStub::GenerateCore(MacroAssembler* masm, |
JumpIfOOM(masm, r0, ip, throw_out_of_memory_exception); |
// Clear the pending exception. |
- __ mov(r3, Operand(isolate->factory()->the_hole_value())); |
+ __ LoadRoot(r3, Heap::kTheHoleValueRootIndex); |
__ mov(ip, Operand(ExternalReference(Isolate::kPendingExceptionAddress, |
isolate))); |
__ str(r3, MemOperand(ip)); |
// Special handling of termination exceptions which are uncatchable |
// by javascript code. |
- __ cmp(r0, Operand(isolate->factory()->termination_exception())); |
+ __ LoadRoot(r3, Heap::kTerminationExceptionRootIndex); |
+ __ cmp(r0, r3); |
__ b(eq, throw_termination_exception); |
// Handle normal exception. |
@@ -1645,7 +1646,7 @@ void CEntryStub::Generate(MacroAssembler* masm) { |
__ sub(r6, r6, Operand(kPointerSize)); |
// Enter the exit frame that transitions from JavaScript to C++. |
- FrameScope scope(masm, StackFrame::MANUAL); |
+ FrameAndConstantPoolScope scope(masm, StackFrame::MANUAL); |
__ EnterExitFrame(save_doubles_); |
// Set up argc and the builtin function in callee-saved registers. |
@@ -2057,7 +2058,7 @@ void InstanceofStub::Generate(MacroAssembler* masm) { |
__ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_FUNCTION); |
} else { |
{ |
- FrameScope scope(masm, StackFrame::INTERNAL); |
+ FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL); |
__ Push(r0, r1); |
__ InvokeBuiltin(Builtins::INSTANCE_OF, CALL_FUNCTION); |
} |
@@ -3066,7 +3067,7 @@ static void GenerateRecordCallTarget(MacroAssembler* masm) { |
// The target function is the Array constructor, |
// Create an AllocationSite if we don't already have it, store it in the slot. |
{ |
- FrameScope scope(masm, StackFrame::INTERNAL); |
+ FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL); |
// Arguments register must be smi-tagged to call out. |
__ SmiTag(r0); |
@@ -3189,7 +3190,7 @@ void CallFunctionStub::Generate(MacroAssembler* masm) { |
if (CallAsMethod()) { |
__ bind(&wrap); |
// Wrap the receiver and patch it back onto the stack. |
- { FrameScope frame_scope(masm, StackFrame::INTERNAL); |
+ { FrameAndConstantPoolScope frame_scope(masm, StackFrame::INTERNAL); |
__ Push(r1, r3); |
__ InvokeBuiltin(Builtins::TO_OBJECT, CALL_FUNCTION); |
__ pop(r1); |
@@ -4474,7 +4475,7 @@ void ICCompareStub::GenerateMiss(MacroAssembler* masm) { |
ExternalReference miss = |
ExternalReference(IC_Utility(IC::kCompareIC_Miss), masm->isolate()); |
- FrameScope scope(masm, StackFrame::INTERNAL); |
+ FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL); |
__ Push(r1, r0); |
__ Push(lr, r1, r0); |
__ mov(ip, Operand(Smi::FromInt(op_))); |
@@ -5496,7 +5497,7 @@ void CallApiFunctionStub::Generate(MacroAssembler* masm) { |
// it's not controlled by GC. |
const int kApiStackSpace = 4; |
- FrameScope frame_scope(masm, StackFrame::MANUAL); |
+ FrameAndConstantPoolScope frame_scope(masm, StackFrame::MANUAL); |
__ EnterExitFrame(false, kApiStackSpace); |
ASSERT(!api_function_address.is(r0) && !scratch.is(r0)); |
@@ -5556,7 +5557,7 @@ void CallApiGetterStub::Generate(MacroAssembler* masm) { |
__ add(r1, r0, Operand(1 * kPointerSize)); // r1 = PCA |
const int kApiStackSpace = 1; |
- FrameScope frame_scope(masm, StackFrame::MANUAL); |
+ FrameAndConstantPoolScope frame_scope(masm, StackFrame::MANUAL); |
__ EnterExitFrame(false, kApiStackSpace); |
// Create PropertyAccessorInfo instance on the stack above the exit frame with |