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); |