Index: src/arm/lithium-gap-resolver-arm.cc |
diff --git a/src/arm/lithium-gap-resolver-arm.cc b/src/arm/lithium-gap-resolver-arm.cc |
index c100720d89cd6130ad3e3a04a9528c48c045f5f7..e510dc1412dece9aeeffdea66774655daad32c91 100644 |
--- a/src/arm/lithium-gap-resolver-arm.cc |
+++ b/src/arm/lithium-gap-resolver-arm.cc |
@@ -171,8 +171,12 @@ void LGapResolver::BreakCycle(int index) { |
} else if (source->IsStackSlot()) { |
__ ldr(kSavedValueRegister, cgen_->ToMemOperand(source)); |
} else if (source->IsDoubleRegister()) { |
+ ASSERT(CpuFeatures::IsSupported(VFP2)); |
Jakob Kummerow
2012/11/28 16:28:22
nit: not needed
danno
2012/11/30 16:23:24
Done.
|
+ CpuFeatures::Scope scope(VFP2); |
__ vmov(kScratchDoubleReg, cgen_->ToDoubleRegister(source)); |
} else if (source->IsDoubleStackSlot()) { |
+ ASSERT(CpuFeatures::IsSupported(VFP2)); |
Jakob Kummerow
2012/11/28 16:28:22
nit: not needed
danno
2012/11/30 16:23:24
Done.
|
+ CpuFeatures::Scope scope(VFP2); |
__ vldr(kScratchDoubleReg, cgen_->ToMemOperand(source)); |
} else { |
UNREACHABLE(); |
@@ -192,8 +196,12 @@ void LGapResolver::RestoreValue() { |
} else if (saved_destination_->IsStackSlot()) { |
__ str(kSavedValueRegister, cgen_->ToMemOperand(saved_destination_)); |
} else if (saved_destination_->IsDoubleRegister()) { |
+ ASSERT(CpuFeatures::IsSupported(VFP2)); |
Jakob Kummerow
2012/11/28 16:28:22
nit: not needed
danno
2012/11/30 16:23:24
Done.
|
+ CpuFeatures::Scope scope(VFP2); |
__ vmov(cgen_->ToDoubleRegister(saved_destination_), kScratchDoubleReg); |
} else if (saved_destination_->IsDoubleStackSlot()) { |
+ ASSERT(CpuFeatures::IsSupported(VFP2)); |
Jakob Kummerow
2012/11/28 16:28:22
nit: not needed
danno
2012/11/30 16:23:24
Done.
|
+ CpuFeatures::Scope scope(VFP2); |
__ vstr(kScratchDoubleReg, cgen_->ToMemOperand(saved_destination_)); |
} else { |
UNREACHABLE(); |
@@ -229,7 +237,9 @@ void LGapResolver::EmitMove(int index) { |
MemOperand destination_operand = cgen_->ToMemOperand(destination); |
if (in_cycle_) { |
if (!destination_operand.OffsetIsUint12Encodable()) { |
- // ip is overwritten while saving the value to the destination. |
+ ASSERT(CpuFeatures::IsSupported(VFP2)); |
Jakob Kummerow
2012/11/28 16:28:22
nit: not needed
danno
2012/11/30 16:23:24
Done.
|
+ CpuFeatures::Scope scope(VFP2); |
+ // ip is overwritten while saving the value to the destination. |
// Therefore we can't use ip. It is OK if the read from the source |
// destroys ip, since that happens before the value is read. |
__ vldr(kScratchDoubleReg.low(), source_operand); |
@@ -267,7 +277,9 @@ void LGapResolver::EmitMove(int index) { |
} |
} else if (source->IsDoubleRegister()) { |
- DoubleRegister source_register = cgen_->ToDoubleRegister(source); |
+ ASSERT(CpuFeatures::IsSupported(VFP2)); |
Jakob Kummerow
2012/11/28 16:28:22
nit: not needed
danno
2012/11/30 16:23:24
Done.
|
+ CpuFeatures::Scope scope(VFP2); |
+ DwVfpRegister source_register = cgen_->ToDoubleRegister(source); |
if (destination->IsDoubleRegister()) { |
__ vmov(cgen_->ToDoubleRegister(destination), source_register); |
} else { |
@@ -276,7 +288,9 @@ void LGapResolver::EmitMove(int index) { |
} |
} else if (source->IsDoubleStackSlot()) { |
- MemOperand source_operand = cgen_->ToMemOperand(source); |
+ ASSERT(CpuFeatures::IsSupported(VFP2)); |
Jakob Kummerow
2012/11/28 16:28:22
nit: not needed
danno
2012/11/30 16:23:24
Done.
|
+ CpuFeatures::Scope scope(VFP2); |
+ MemOperand source_operand = cgen_->ToMemOperand(source); |
if (destination->IsDoubleRegister()) { |
__ vldr(cgen_->ToDoubleRegister(destination), source_operand); |
} else { |