OLD | NEW |
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-array-builder.h" | 5 #include "src/interpreter/bytecode-array-builder.h" |
6 | 6 |
7 namespace v8 { | 7 namespace v8 { |
8 namespace internal { | 8 namespace internal { |
9 namespace interpreter { | 9 namespace interpreter { |
10 | 10 |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 if (FitsInIdx8Operand(feedback_slot)) { | 336 if (FitsInIdx8Operand(feedback_slot)) { |
337 Output(bytecode, object.ToOperand(), key.ToOperand(), | 337 Output(bytecode, object.ToOperand(), key.ToOperand(), |
338 static_cast<uint8_t>(feedback_slot)); | 338 static_cast<uint8_t>(feedback_slot)); |
339 } else { | 339 } else { |
340 UNIMPLEMENTED(); | 340 UNIMPLEMENTED(); |
341 } | 341 } |
342 return *this; | 342 return *this; |
343 } | 343 } |
344 | 344 |
345 | 345 |
| 346 BytecodeArrayBuilder& BytecodeArrayBuilder::GenericStoreKeyedProperty( |
| 347 Register object, Register key) { |
| 348 Output(Bytecode::kKeyedStoreICGeneric, object.ToOperand(), key.ToOperand()); |
| 349 return *this; |
| 350 } |
| 351 |
| 352 |
346 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateClosure( | 353 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateClosure( |
347 PretenureFlag tenured) { | 354 PretenureFlag tenured) { |
348 DCHECK(FitsInImm8Operand(tenured)); | 355 DCHECK(FitsInImm8Operand(tenured)); |
349 Output(Bytecode::kCreateClosure, static_cast<uint8_t>(tenured)); | 356 Output(Bytecode::kCreateClosure, static_cast<uint8_t>(tenured)); |
350 return *this; | 357 return *this; |
351 } | 358 } |
352 | 359 |
353 | 360 |
| 361 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateArrayLiteral( |
| 362 int literal_index, int flags) { |
| 363 DCHECK(FitsInImm8Operand(flags)); // Flags should fit in 8 bytes. |
| 364 if (FitsInIdx8Operand(literal_index)) { |
| 365 Output(Bytecode::kCreateArrayLiteral, static_cast<uint8_t>(literal_index), |
| 366 static_cast<uint8_t>(flags)); |
| 367 } else { |
| 368 UNIMPLEMENTED(); |
| 369 } |
| 370 return *this; |
| 371 } |
| 372 |
| 373 |
354 BytecodeArrayBuilder& BytecodeArrayBuilder::PushContext(Register context) { | 374 BytecodeArrayBuilder& BytecodeArrayBuilder::PushContext(Register context) { |
355 Output(Bytecode::kPushContext, context.ToOperand()); | 375 Output(Bytecode::kPushContext, context.ToOperand()); |
356 return *this; | 376 return *this; |
357 } | 377 } |
358 | 378 |
359 | 379 |
360 BytecodeArrayBuilder& BytecodeArrayBuilder::PopContext(Register context) { | 380 BytecodeArrayBuilder& BytecodeArrayBuilder::PopContext(Register context) { |
361 Output(Bytecode::kPopContext, context.ToOperand()); | 381 Output(Bytecode::kPopContext, context.ToOperand()); |
362 return *this; | 382 return *this; |
363 } | 383 } |
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
797 | 817 |
798 Register TemporaryRegisterScope::NewRegister() { | 818 Register TemporaryRegisterScope::NewRegister() { |
799 count_++; | 819 count_++; |
800 last_register_index_ = builder_->BorrowTemporaryRegister(); | 820 last_register_index_ = builder_->BorrowTemporaryRegister(); |
801 return Register(last_register_index_); | 821 return Register(last_register_index_); |
802 } | 822 } |
803 | 823 |
804 } // namespace interpreter | 824 } // namespace interpreter |
805 } // namespace internal | 825 } // namespace internal |
806 } // namespace v8 | 826 } // namespace v8 |
OLD | NEW |