| Index: src/deoptimizer.h
|
| diff --git a/src/deoptimizer.h b/src/deoptimizer.h
|
| index 89955b38bde84d67790ef01e5d3c87d7ad9b260a..dbcdf615b108e6759399bc5f49e95409cc66a4f5 100644
|
| --- a/src/deoptimizer.h
|
| +++ b/src/deoptimizer.h
|
| @@ -135,6 +135,8 @@ class Deoptimizer : public Malloced {
|
|
|
| int output_count() const { return output_count_; }
|
|
|
| + Code::Kind compiled_code_kind() const { return compiled_code_->kind(); }
|
| +
|
| // Number of created JS frames. Not all created frames are necessarily JS.
|
| int jsframe_count() const { return jsframe_count_; }
|
|
|
| @@ -297,6 +299,9 @@ class Deoptimizer : public Malloced {
|
|
|
| static size_t GetMaxDeoptTableSize();
|
|
|
| + static void EnsureCodeForDeoptimizationEntry(BailoutType type,
|
| + int max_entry_id);
|
| +
|
| private:
|
| static const int kMinNumberOfEntries = 64;
|
| static const int kMaxNumberOfEntries = 16384;
|
| @@ -320,6 +325,8 @@ class Deoptimizer : public Malloced {
|
| void DoComputeAccessorStubFrame(TranslationIterator* iterator,
|
| int frame_index,
|
| bool is_setter_stub_frame);
|
| + void DoCompiledStubFrame(TranslationIterator* iterator,
|
| + int frame_index);
|
| void DoTranslateCommand(TranslationIterator* iterator,
|
| int frame_index,
|
| unsigned output_offset);
|
| @@ -342,8 +349,6 @@ class Deoptimizer : public Malloced {
|
| void AddArgumentsObjectValue(intptr_t value);
|
| void AddDoubleValue(intptr_t slot_address, double value);
|
|
|
| - static void EnsureCodeForDeoptimizationEntry(BailoutType type,
|
| - int max_entry_id);
|
| static void GenerateDeoptimizationEntries(
|
| MacroAssembler* masm, int count, BailoutType type);
|
|
|
| @@ -360,7 +365,7 @@ class Deoptimizer : public Malloced {
|
|
|
| Isolate* isolate_;
|
| JSFunction* function_;
|
| - Code* optimized_code_;
|
| + Code* compiled_code_;
|
| unsigned bailout_id_;
|
| BailoutType bailout_type_;
|
| Address from_;
|
| @@ -530,7 +535,7 @@ class FrameDescription {
|
| uintptr_t frame_size_; // Number of bytes.
|
| JSFunction* function_;
|
| intptr_t registers_[Register::kNumRegisters];
|
| - double double_registers_[DoubleRegister::kNumAllocatableRegisters];
|
| + double double_registers_[DoubleRegister::kMaxNumAllocatableRegisters];
|
| intptr_t top_;
|
| intptr_t pc_;
|
| intptr_t fp_;
|
| @@ -600,6 +605,7 @@ class Translation BASE_EMBEDDED {
|
| GETTER_STUB_FRAME,
|
| SETTER_STUB_FRAME,
|
| ARGUMENTS_ADAPTOR_FRAME,
|
| + COMPILED_STUB_FRAME,
|
| REGISTER,
|
| INT32_REGISTER,
|
| UINT32_REGISTER,
|
| @@ -630,6 +636,7 @@ class Translation BASE_EMBEDDED {
|
|
|
| // Commands.
|
| void BeginJSFrame(BailoutId node_id, int literal_id, unsigned height);
|
| + void BeginCompiledStubFrame();
|
| void BeginArgumentsAdaptorFrame(int literal_id, unsigned height);
|
| void BeginConstructStubFrame(int literal_id, unsigned height);
|
| void BeginGetterStubFrame(int literal_id);
|
|
|