| Index: src/deoptimizer.h
|
| diff --git a/src/deoptimizer.h b/src/deoptimizer.h
|
| index 19ea416a387de4c0452ba65c91f6bf91e70cc53f..551efe3564a4bfd4f83919bbee9b615e10f9d3d6 100644
|
| --- a/src/deoptimizer.h
|
| +++ b/src/deoptimizer.h
|
| @@ -159,6 +159,8 @@ class TranslatedFrame {
|
| kArgumentsAdaptor,
|
| kConstructStub,
|
| kCompiledStub,
|
| + kBuiltinContinuation,
|
| + kJavaScriptBuiltinContinuation,
|
| kInvalid
|
| };
|
|
|
| @@ -230,6 +232,10 @@ class TranslatedFrame {
|
| static TranslatedFrame ConstructStubFrame(BailoutId bailout_id,
|
| SharedFunctionInfo* shared_info,
|
| int height);
|
| + static TranslatedFrame BuiltinContinuationFrame(
|
| + BailoutId bailout_id, SharedFunctionInfo* shared_info, int height);
|
| + static TranslatedFrame JavaScriptBuiltinContinuationFrame(
|
| + BailoutId bailout_id, SharedFunctionInfo* shared_info, int height);
|
| static TranslatedFrame CompiledStubFrame(int height, Isolate* isolate) {
|
| return TranslatedFrame(kCompiledStub, isolate, nullptr, height);
|
| }
|
| @@ -568,6 +574,8 @@ class Deoptimizer : public Malloced {
|
| int frame_index, bool is_setter_stub_frame);
|
| void DoComputeCompiledStubFrame(TranslatedFrame* translated_frame,
|
| int frame_index);
|
| + void DoComputeBuiltinContinuation(TranslatedFrame* translated_frame,
|
| + int frame_index, bool java_script_frame);
|
|
|
| void WriteTranslatedValueToOutput(
|
| TranslatedFrame::iterator* iterator, int* input_index, int frame_index,
|
| @@ -921,33 +929,35 @@ class TranslationIterator BASE_EMBEDDED {
|
| int index_;
|
| };
|
|
|
| -#define TRANSLATION_OPCODE_LIST(V) \
|
| - V(BEGIN) \
|
| - V(JS_FRAME) \
|
| - V(INTERPRETED_FRAME) \
|
| - V(CONSTRUCT_STUB_FRAME) \
|
| - V(GETTER_STUB_FRAME) \
|
| - V(SETTER_STUB_FRAME) \
|
| - V(ARGUMENTS_ADAPTOR_FRAME) \
|
| - V(TAIL_CALLER_FRAME) \
|
| - V(COMPILED_STUB_FRAME) \
|
| - V(DUPLICATED_OBJECT) \
|
| - V(ARGUMENTS_OBJECT) \
|
| - V(ARGUMENTS_ELEMENTS) \
|
| - V(ARGUMENTS_LENGTH) \
|
| - V(CAPTURED_OBJECT) \
|
| - V(REGISTER) \
|
| - V(INT32_REGISTER) \
|
| - V(UINT32_REGISTER) \
|
| - V(BOOL_REGISTER) \
|
| - V(FLOAT_REGISTER) \
|
| - V(DOUBLE_REGISTER) \
|
| - V(STACK_SLOT) \
|
| - V(INT32_STACK_SLOT) \
|
| - V(UINT32_STACK_SLOT) \
|
| - V(BOOL_STACK_SLOT) \
|
| - V(FLOAT_STACK_SLOT) \
|
| - V(DOUBLE_STACK_SLOT) \
|
| +#define TRANSLATION_OPCODE_LIST(V) \
|
| + V(BEGIN) \
|
| + V(JS_FRAME) \
|
| + V(INTERPRETED_FRAME) \
|
| + V(BUILTIN_CONTINUATION_FRAME) \
|
| + V(JAVA_SCRIPT_BUILTIN_CONTINUATION_FRAME) \
|
| + V(CONSTRUCT_STUB_FRAME) \
|
| + V(GETTER_STUB_FRAME) \
|
| + V(SETTER_STUB_FRAME) \
|
| + V(ARGUMENTS_ADAPTOR_FRAME) \
|
| + V(TAIL_CALLER_FRAME) \
|
| + V(COMPILED_STUB_FRAME) \
|
| + V(DUPLICATED_OBJECT) \
|
| + V(ARGUMENTS_OBJECT) \
|
| + V(ARGUMENTS_ELEMENTS) \
|
| + V(ARGUMENTS_LENGTH) \
|
| + V(CAPTURED_OBJECT) \
|
| + V(REGISTER) \
|
| + V(INT32_REGISTER) \
|
| + V(UINT32_REGISTER) \
|
| + V(BOOL_REGISTER) \
|
| + V(FLOAT_REGISTER) \
|
| + V(DOUBLE_REGISTER) \
|
| + V(STACK_SLOT) \
|
| + V(INT32_STACK_SLOT) \
|
| + V(UINT32_STACK_SLOT) \
|
| + V(BOOL_STACK_SLOT) \
|
| + V(FLOAT_STACK_SLOT) \
|
| + V(DOUBLE_STACK_SLOT) \
|
| V(LITERAL)
|
|
|
| class Translation BASE_EMBEDDED {
|
| @@ -980,6 +990,10 @@ class Translation BASE_EMBEDDED {
|
| void BeginTailCallerFrame(int literal_id);
|
| void BeginConstructStubFrame(BailoutId bailout_id, int literal_id,
|
| unsigned height);
|
| + void BeginBuiltinContinuationFrame(BailoutId bailout_id, int literal_id,
|
| + unsigned height);
|
| + void BeginJavaScriptBuiltinContinuationFrame(BailoutId bailout_id,
|
| + int literal_id, unsigned height);
|
| void BeginGetterStubFrame(int literal_id);
|
| void BeginSetterStubFrame(int literal_id);
|
| void BeginArgumentsObject(int args_length);
|
|
|