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

Side by Side Diff: test/unittests/interpreter/interpreter-assembler-unittest.cc

Issue 1986353002: Revert of [Interpreter] Remove InterpreterExitTrampoline and replace with returning to the entry trampoline. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 7 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/x64/builtins-x64.cc ('k') | no next file » | 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 "test/unittests/interpreter/interpreter-assembler-unittest.h" 5 #include "test/unittests/interpreter/interpreter-assembler-unittest.h"
6 6
7 #include "src/code-factory.h" 7 #include "src/code-factory.h"
8 #include "src/compiler/graph.h" 8 #include "src/compiler/graph.h"
9 #include "src/compiler/node.h" 9 #include "src/compiler/node.h"
10 #include "src/interface-descriptors.h" 10 #include "src/interface-descriptors.h"
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 _, code_target_matcher, 375 _, code_target_matcher,
376 IsParameter(InterpreterDispatchDescriptor::kAccumulatorParameter), 376 IsParameter(InterpreterDispatchDescriptor::kAccumulatorParameter),
377 next_bytecode_offset_matcher, _, 377 next_bytecode_offset_matcher, _,
378 IsParameter( 378 IsParameter(
379 InterpreterDispatchDescriptor::kDispatchTableParameter), 379 InterpreterDispatchDescriptor::kDispatchTableParameter),
380 _, _)); 380 _, _));
381 } 381 }
382 } 382 }
383 } 383 }
384 384
385 TARGET_TEST_F(InterpreterAssemblerTest, InterpreterReturn) {
386 // If debug code is enabled we emit extra code in InterpreterReturn.
387 if (FLAG_debug_code) return;
388
389 TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) {
390 InterpreterAssemblerForTest m(this, bytecode);
391 Node* tail_call_node = m.InterpreterReturn();
392
393 Handle<HeapObject> exit_trampoline =
394 isolate()->builtins()->InterpreterExitTrampoline();
395 Matcher<Node*> exit_trampoline_entry_matcher =
396 IsIntPtrAdd(IsHeapConstant(exit_trampoline),
397 IsIntPtrConstant(Code::kHeaderSize - kHeapObjectTag));
398 EXPECT_THAT(
399 tail_call_node,
400 IsTailCall(
401 _, exit_trampoline_entry_matcher,
402 IsParameter(InterpreterDispatchDescriptor::kAccumulatorParameter),
403 IsParameter(
404 InterpreterDispatchDescriptor::kBytecodeOffsetParameter),
405 _,
406 IsParameter(InterpreterDispatchDescriptor::kDispatchTableParameter),
407 _, _));
408 }
409 }
410
385 TARGET_TEST_F(InterpreterAssemblerTest, BytecodeOperand) { 411 TARGET_TEST_F(InterpreterAssemblerTest, BytecodeOperand) {
386 static const OperandScale kOperandScales[] = { 412 static const OperandScale kOperandScales[] = {
387 OperandScale::kSingle, OperandScale::kDouble, OperandScale::kQuadruple}; 413 OperandScale::kSingle, OperandScale::kDouble, OperandScale::kQuadruple};
388 TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) { 414 TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) {
389 TRACED_FOREACH(interpreter::OperandScale, operand_scale, kOperandScales) { 415 TRACED_FOREACH(interpreter::OperandScale, operand_scale, kOperandScales) {
390 InterpreterAssemblerForTest m(this, bytecode, operand_scale); 416 InterpreterAssemblerForTest m(this, bytecode, operand_scale);
391 int number_of_operands = 417 int number_of_operands =
392 interpreter::Bytecodes::NumberOfOperands(bytecode); 418 interpreter::Bytecodes::NumberOfOperands(bytecode);
393 for (int i = 0; i < number_of_operands; i++) { 419 for (int i = 0; i < number_of_operands; i++) {
394 int offset = interpreter::Bytecodes::GetOperandOffset(bytecode, i, 420 int offset = interpreter::Bytecodes::GetOperandOffset(bytecode, i,
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
701 feedback_vector, 727 feedback_vector,
702 m.IsLoad(MachineType::AnyTagged(), load_shared_function_info_matcher, 728 m.IsLoad(MachineType::AnyTagged(), load_shared_function_info_matcher,
703 IsIntPtrConstant(SharedFunctionInfo::kFeedbackVectorOffset - 729 IsIntPtrConstant(SharedFunctionInfo::kFeedbackVectorOffset -
704 kHeapObjectTag))); 730 kHeapObjectTag)));
705 } 731 }
706 } 732 }
707 733
708 } // namespace interpreter 734 } // namespace interpreter
709 } // namespace internal 735 } // namespace internal
710 } // namespace v8 736 } // namespace v8
OLDNEW
« no previous file with comments | « src/x64/builtins-x64.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698