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

Side by Side Diff: src/mips64/code-stubs-mips64.cc

Issue 2033423002: [builtins] Turn LoadIC_Miss and LoadIC_Slow builtins to TurboFan code stubs. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@load-ic-stub-tf
Patch Set: Created 4 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #if V8_TARGET_ARCH_MIPS64 5 #if V8_TARGET_ARCH_MIPS64
6 6
7 #include "src/code-stubs.h" 7 #include "src/code-stubs.h"
8 #include "src/api-arguments.h" 8 #include "src/api-arguments.h"
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 1414 matching lines...) Expand 10 before | Expand all | Expand 10 after
1425 &miss, // When not a number. 1425 &miss, // When not a number.
1426 &miss, // When index out of range. 1426 &miss, // When index out of range.
1427 RECEIVER_IS_STRING); 1427 RECEIVER_IS_STRING);
1428 char_at_generator.GenerateFast(masm); 1428 char_at_generator.GenerateFast(masm);
1429 __ Ret(); 1429 __ Ret();
1430 1430
1431 StubRuntimeCallHelper call_helper; 1431 StubRuntimeCallHelper call_helper;
1432 char_at_generator.GenerateSlow(masm, PART_OF_IC_HANDLER, call_helper); 1432 char_at_generator.GenerateSlow(masm, PART_OF_IC_HANDLER, call_helper);
1433 1433
1434 __ bind(&miss); 1434 __ bind(&miss);
1435 PropertyAccessCompiler::TailCallBuiltin( 1435 PropertyAccessCompiler::TailCallMissHandler(masm, Code::KEYED_LOAD_IC);
1436 masm, PropertyAccessCompiler::MissBuiltin(Code::KEYED_LOAD_IC));
1437 } 1436 }
1438 1437
1439 1438
1440 void FunctionPrototypeStub::Generate(MacroAssembler* masm) { 1439 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
1441 Label miss; 1440 Label miss;
1442 Register receiver = LoadDescriptor::ReceiverRegister(); 1441 Register receiver = LoadDescriptor::ReceiverRegister();
1443 // Ensure that the vector and slot registers won't be clobbered before 1442 // Ensure that the vector and slot registers won't be clobbered before
1444 // calling the miss handler. 1443 // calling the miss handler.
1445 DCHECK(!AreAliased(a4, a5, LoadWithVectorDescriptor::VectorRegister(), 1444 DCHECK(!AreAliased(a4, a5, LoadWithVectorDescriptor::VectorRegister(),
1446 LoadWithVectorDescriptor::SlotRegister())); 1445 LoadWithVectorDescriptor::SlotRegister()));
1447 1446
1448 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, a4, 1447 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, a4,
1449 a5, &miss); 1448 a5, &miss);
1450 __ bind(&miss); 1449 __ bind(&miss);
1451 PropertyAccessCompiler::TailCallBuiltin( 1450 PropertyAccessCompiler::TailCallMissHandler(masm, Code::LOAD_IC);
1452 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC));
1453 } 1451 }
1454 1452
1455 1453
1456 void RegExpExecStub::Generate(MacroAssembler* masm) { 1454 void RegExpExecStub::Generate(MacroAssembler* masm) {
1457 // Just jump directly to runtime if native RegExp is not selected at compile 1455 // Just jump directly to runtime if native RegExp is not selected at compile
1458 // time or if regexp entry in generated code is turned off runtime switch or 1456 // time or if regexp entry in generated code is turned off runtime switch or
1459 // at compilation. 1457 // at compilation.
1460 #ifdef V8_INTERPRETED_REGEXP 1458 #ifdef V8_INTERPRETED_REGEXP
1461 __ TailCallRuntime(Runtime::kRegExpExec); 1459 __ TailCallRuntime(Runtime::kRegExpExec);
1462 #else // V8_INTERPRETED_REGEXP 1460 #else // V8_INTERPRETED_REGEXP
(...skipping 4196 matching lines...) Expand 10 before | Expand all | Expand 10 after
5659 kStackUnwindSpace, kInvalidStackOffset, 5657 kStackUnwindSpace, kInvalidStackOffset,
5660 return_value_operand, NULL); 5658 return_value_operand, NULL);
5661 } 5659 }
5662 5660
5663 #undef __ 5661 #undef __
5664 5662
5665 } // namespace internal 5663 } // namespace internal
5666 } // namespace v8 5664 } // namespace v8
5667 5665
5668 #endif // V8_TARGET_ARCH_MIPS64 5666 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« src/code-stubs.h ('K') | « src/mips/code-stubs-mips.cc ('k') | src/ppc/code-stubs-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698