Index: src/mips/lithium-mips.h |
diff --git a/src/mips/lithium-mips.h b/src/mips/lithium-mips.h |
index a48422eecf5e4e132afd1e2c4fb3f340286c3573..71360bda299f5e61a6d4aea12e2bf17dfd85ebf3 100644 |
--- a/src/mips/lithium-mips.h |
+++ b/src/mips/lithium-mips.h |
@@ -274,7 +274,7 @@ class LInstruction : public ZoneObject { |
// Interface to the register allocator and iterators. |
bool ClobbersTemps() const { return IsCall(); } |
bool ClobbersRegisters() const { return IsCall(); } |
- bool ClobbersDoubleRegisters() const { return IsCall(); } |
+ virtual bool ClobbersDoubleRegisters() const { return IsCall(); } |
// Interface to the register allocator and iterators. |
bool IsMarkedAsCall() const { return IsCall(); } |
@@ -1963,8 +1963,13 @@ class LCallRuntime V8_FINAL : public LTemplateInstruction<1, 0, 0> { |
DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime") |
DECLARE_HYDROGEN_ACCESSOR(CallRuntime) |
+ virtual bool ClobbersDoubleRegisters() const V8_OVERRIDE { |
+ return save_doubles() == kDontSaveFPRegs; |
+ } |
+ |
const Runtime::Function* function() const { return hydrogen()->function(); } |
int arity() const { return hydrogen()->argument_count(); } |
+ SaveFPRegsMode save_doubles() const { return hydrogen()->save_doubles(); } |
}; |