| Index: src/x64/lithium-x64.h
|
| diff --git a/src/x64/lithium-x64.h b/src/x64/lithium-x64.h
|
| index f827ef6badc9ddaa84354d3c2f8ef5f0fe83441b..1cd186da5c627aec9e031475d722150be7d37553 100644
|
| --- a/src/x64/lithium-x64.h
|
| +++ b/src/x64/lithium-x64.h
|
| @@ -272,7 +272,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(); }
|
|
|
| virtual void SetDeferredLazyDeoptimizationEnvironment(LEnvironment* env) { }
|
|
|
| @@ -1919,8 +1919,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(); }
|
| };
|
|
|
|
|
|
|