| Index: src/ia32/lithium-ia32.h
|
| diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h
|
| index f5b56188735883d967ec4c20f49a93f4d4c3e304..b4f4d5de97d210ff7adef81fdd962868d9ff531c 100644
|
| --- a/src/ia32/lithium-ia32.h
|
| +++ b/src/ia32/lithium-ia32.h
|
| @@ -2052,8 +2052,13 @@ class LCallRuntime V8_FINAL : public LTemplateInstruction<1, 1, 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(); }
|
| };
|
|
|
|
|
| @@ -2736,8 +2741,8 @@ class LPlatformChunk V8_FINAL : public LChunk {
|
| : LChunk(info, graph),
|
| num_double_slots_(0) { }
|
|
|
| - int GetNextSpillIndex(bool is_double);
|
| - LOperand* GetNextSpillSlot(bool is_double);
|
| + int GetNextSpillIndex(RegisterKind kind);
|
| + LOperand* GetNextSpillSlot(RegisterKind kind);
|
|
|
| int num_double_slots() const { return num_double_slots_; }
|
|
|
| @@ -2766,6 +2771,8 @@ class LChunkBuilder V8_FINAL BASE_EMBEDDED {
|
| // Build the sequence for the graph.
|
| LPlatformChunk* Build();
|
|
|
| + LInstruction* CheckElideControlInstruction(HControlInstruction* instr);
|
| +
|
| // Declare methods that deal with the individual node types.
|
| #define DECLARE_DO(type) LInstruction* Do##type(H##type* node);
|
| HYDROGEN_CONCRETE_INSTRUCTION_LIST(DECLARE_DO)
|
|
|