Index: src/interpreter/bytecode-array-builder.cc |
diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc |
index 11b1267172f8d6b780b52afaf19e959d3535d359..192421c1cbc3fd55b6e0d83d67054baa783d5924 100644 |
--- a/src/interpreter/bytecode-array-builder.cc |
+++ b/src/interpreter/bytecode-array-builder.cc |
@@ -262,6 +262,15 @@ class OperandHelper<OperandType::kRegOut> { |
}; |
template <> |
+class OperandHelper<OperandType::kRegOutList> { |
+ public: |
+ INLINE(static uint32_t Convert(BytecodeArrayBuilder* builder, |
+ RegisterList reg_list)) { |
+ return builder->GetOutputRegisterListOperand(reg_list); |
+ } |
+}; |
+ |
+template <> |
class OperandHelper<OperandType::kRegOutPair> { |
public: |
INLINE(static uint32_t Convert(BytecodeArrayBuilder* builder, |
@@ -1235,8 +1244,8 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::LoadModuleVariable(int cell_index, |
} |
BytecodeArrayBuilder& BytecodeArrayBuilder::SuspendGenerator( |
- Register generator, SuspendFlags flags) { |
- OutputSuspendGenerator(generator, |
+ Register generator, RegisterList registers, SuspendFlags flags) { |
+ OutputSuspendGenerator(generator, registers, registers.register_count(), |
SuspendGeneratorBytecodeFlags::Encode(flags)); |
return *this; |
} |
@@ -1247,6 +1256,13 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::ResumeGenerator( |
return *this; |
} |
+BytecodeArrayBuilder& BytecodeArrayBuilder::RestoreGeneratorRegisters( |
+ Register generator, RegisterList registers) { |
+ OutputRestoreGeneratorRegisters(generator, registers, |
+ registers.register_count()); |
+ return *this; |
+} |
+ |
BytecodeArrayBuilder& BytecodeArrayBuilder::MarkHandler( |
int handler_id, HandlerTable::CatchPrediction catch_prediction) { |
BytecodeLabel handler; |