Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(295)

Side by Side Diff: src/interpreter/bytecode-decoder.cc

Issue 2894293003: Save/restore only live registers in the generator suspend/resume. (Closed)
Patch Set: Tweak Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/interpreter/bytecode-array-builder.cc ('k') | src/interpreter/bytecode-generator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/interpreter/bytecode-decoder.h" 5 #include "src/interpreter/bytecode-decoder.h"
6 6
7 #include <iomanip> 7 #include <iomanip>
8 8
9 #include "src/interpreter/interpreter-intrinsics.h" 9 #include "src/interpreter/interpreter-intrinsics.h"
10 #include "src/objects-inl.h" 10 #include "src/objects-inl.h"
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 break; 167 break;
168 } 168 }
169 case interpreter::OperandType::kRegOutPair: 169 case interpreter::OperandType::kRegOutPair:
170 case interpreter::OperandType::kRegPair: { 170 case interpreter::OperandType::kRegPair: {
171 RegisterList reg_list = 171 RegisterList reg_list =
172 DecodeRegisterListOperand(operand_start, 2, op_type, operand_scale); 172 DecodeRegisterListOperand(operand_start, 2, op_type, operand_scale);
173 os << reg_list.first_register().ToString(parameter_count) << "-" 173 os << reg_list.first_register().ToString(parameter_count) << "-"
174 << reg_list.last_register().ToString(parameter_count); 174 << reg_list.last_register().ToString(parameter_count);
175 break; 175 break;
176 } 176 }
177 case interpreter::OperandType::kRegOutList:
177 case interpreter::OperandType::kRegList: { 178 case interpreter::OperandType::kRegList: {
178 DCHECK_LT(i, number_of_operands - 1); 179 DCHECK_LT(i, number_of_operands - 1);
179 DCHECK_EQ(Bytecodes::GetOperandType(bytecode, i + 1), 180 DCHECK_EQ(Bytecodes::GetOperandType(bytecode, i + 1),
180 OperandType::kRegCount); 181 OperandType::kRegCount);
181 int reg_count_offset = 182 int reg_count_offset =
182 Bytecodes::GetOperandOffset(bytecode, i + 1, operand_scale); 183 Bytecodes::GetOperandOffset(bytecode, i + 1, operand_scale);
183 const uint8_t* reg_count_operand = 184 const uint8_t* reg_count_operand =
184 &bytecode_start[prefix_offset + reg_count_offset]; 185 &bytecode_start[prefix_offset + reg_count_offset];
185 uint32_t count = DecodeUnsignedOperand( 186 uint32_t count = DecodeUnsignedOperand(
186 reg_count_operand, OperandType::kRegCount, operand_scale); 187 reg_count_operand, OperandType::kRegCount, operand_scale);
(...skipping 12 matching lines...) Expand all
199 if (i != number_of_operands - 1) { 200 if (i != number_of_operands - 1) {
200 os << ", "; 201 os << ", ";
201 } 202 }
202 } 203 }
203 return os; 204 return os;
204 } 205 }
205 206
206 } // namespace interpreter 207 } // namespace interpreter
207 } // namespace internal 208 } // namespace internal
208 } // namespace v8 209 } // namespace v8
OLDNEW
« no previous file with comments | « src/interpreter/bytecode-array-builder.cc ('k') | src/interpreter/bytecode-generator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698