Index: src/arm/macro-assembler-arm.cc |
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc |
index 2a543c37ccd6e03fc79eb90b6bd41b04986f96e6..2800005796564b7f4ece953600bc2906d60902c9 100644 |
--- a/src/arm/macro-assembler-arm.cc |
+++ b/src/arm/macro-assembler-arm.cc |
@@ -884,6 +884,7 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space) { |
// Optionally save all double registers. |
if (save_doubles) { |
+ CpuFeatures::Scope scope(VFP2); |
// Check CPU flags for number of registers, setting the Z condition flag. |
CheckFor32DRegs(ip); |
@@ -893,7 +894,7 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space) { |
sub(sp, sp, Operand(16 * kDoubleSize), LeaveCC, eq); |
vstm(db_w, sp, d0, d15); |
// Note that d0 will be accessible at |
- // fp - 2 * kPointerSize - DwVfpRegister::kNumRegisters * kDoubleSize, |
+ // fp - 2 * kPointerSize - DwVfpRegister::kMaxNumRegisters * kDoubleSize, |
// since the sp slot and code slot were pushed after the fp. |
} |
@@ -948,9 +949,11 @@ void MacroAssembler::LeaveExitFrame(bool save_doubles, |
Register argument_count) { |
// Optionally restore all double registers. |
if (save_doubles) { |
+ CpuFeatures::Scope scope(VFP2); |
// Calculate the stack location of the saved doubles and restore them. |
const int offset = 2 * kPointerSize; |
- sub(r3, fp, Operand(offset + DwVfpRegister::kNumRegisters * kDoubleSize)); |
+ sub(r3, fp, |
+ Operand(offset + DwVfpRegister::kMaxNumRegisters * kDoubleSize)); |
// Check CPU flags for number of registers, setting the Z condition flag. |
CheckFor32DRegs(ip); |
@@ -3903,8 +3906,7 @@ void MacroAssembler::CheckEnumCache(Register null_value, Label* call_runtime) { |
void MacroAssembler::TestJSArrayForAllocationSiteInfo( |
Register receiver_reg, |
- Register scratch_reg, |
- Label* allocation_info_present) { |
+ Register scratch_reg) { |
Label no_info_available; |
ExternalReference new_space_start = |
ExternalReference::new_space_start(isolate()); |
@@ -3921,7 +3923,6 @@ void MacroAssembler::TestJSArrayForAllocationSiteInfo( |
ldr(scratch_reg, MemOperand(scratch_reg, -AllocationSiteInfo::kSize)); |
cmp(scratch_reg, |
Operand(Handle<Map>(isolate()->heap()->allocation_site_info_map()))); |
- b(eq, allocation_info_present); |
bind(&no_info_available); |
} |