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

Side by Side Diff: src/mips/code-stubs-mips.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_MIPS 5 #if V8_TARGET_ARCH_MIPS
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/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 1418 matching lines...) Expand 10 before | Expand all | Expand 10 after
1429 &miss, // When not a number. 1429 &miss, // When not a number.
1430 &miss, // When index out of range. 1430 &miss, // When index out of range.
1431 RECEIVER_IS_STRING); 1431 RECEIVER_IS_STRING);
1432 char_at_generator.GenerateFast(masm); 1432 char_at_generator.GenerateFast(masm);
1433 __ Ret(); 1433 __ Ret();
1434 1434
1435 StubRuntimeCallHelper call_helper; 1435 StubRuntimeCallHelper call_helper;
1436 char_at_generator.GenerateSlow(masm, PART_OF_IC_HANDLER, call_helper); 1436 char_at_generator.GenerateSlow(masm, PART_OF_IC_HANDLER, call_helper);
1437 1437
1438 __ bind(&miss); 1438 __ bind(&miss);
1439 PropertyAccessCompiler::TailCallBuiltin( 1439 PropertyAccessCompiler::TailCallMissHandler(masm, Code::KEYED_LOAD_IC);
1440 masm, PropertyAccessCompiler::MissBuiltin(Code::KEYED_LOAD_IC));
1441 } 1440 }
1442 1441
1443 1442
1444 void FunctionPrototypeStub::Generate(MacroAssembler* masm) { 1443 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
1445 Label miss; 1444 Label miss;
1446 Register receiver = LoadDescriptor::ReceiverRegister(); 1445 Register receiver = LoadDescriptor::ReceiverRegister();
1447 // Ensure that the vector and slot registers won't be clobbered before 1446 // Ensure that the vector and slot registers won't be clobbered before
1448 // calling the miss handler. 1447 // calling the miss handler.
1449 DCHECK(!AreAliased(t0, t1, LoadWithVectorDescriptor::VectorRegister(), 1448 DCHECK(!AreAliased(t0, t1, LoadWithVectorDescriptor::VectorRegister(),
1450 LoadWithVectorDescriptor::SlotRegister())); 1449 LoadWithVectorDescriptor::SlotRegister()));
1451 1450
1452 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, t0, 1451 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, t0,
1453 t1, &miss); 1452 t1, &miss);
1454 __ bind(&miss); 1453 __ bind(&miss);
1455 PropertyAccessCompiler::TailCallBuiltin( 1454 PropertyAccessCompiler::TailCallMissHandler(masm, Code::LOAD_IC);
1456 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC));
1457 } 1455 }
1458 1456
1459 void RegExpExecStub::Generate(MacroAssembler* masm) { 1457 void RegExpExecStub::Generate(MacroAssembler* masm) {
1460 // Just jump directly to runtime if native RegExp is not selected at compile 1458 // Just jump directly to runtime if native RegExp is not selected at compile
1461 // time or if regexp entry in generated code is turned off runtime switch or 1459 // time or if regexp entry in generated code is turned off runtime switch or
1462 // at compilation. 1460 // at compilation.
1463 #ifdef V8_INTERPRETED_REGEXP 1461 #ifdef V8_INTERPRETED_REGEXP
1464 __ TailCallRuntime(Runtime::kRegExpExec); 1462 __ TailCallRuntime(Runtime::kRegExpExec);
1465 #else // V8_INTERPRETED_REGEXP 1463 #else // V8_INTERPRETED_REGEXP
1466 1464
(...skipping 4157 matching lines...) Expand 10 before | Expand all | Expand 10 after
5624 kStackUnwindSpace, kInvalidStackOffset, 5622 kStackUnwindSpace, kInvalidStackOffset,
5625 return_value_operand, NULL); 5623 return_value_operand, NULL);
5626 } 5624 }
5627 5625
5628 #undef __ 5626 #undef __
5629 5627
5630 } // namespace internal 5628 } // namespace internal
5631 } // namespace v8 5629 } // namespace v8
5632 5630
5633 #endif // V8_TARGET_ARCH_MIPS 5631 #endif // V8_TARGET_ARCH_MIPS
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698