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