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

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

Issue 1820843002: Turn LoadIndexedInterceptor into a Turbofan stub (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase again Created 4 years, 9 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/ia32/code-stubs-ia32.cc ('k') | src/mips64/code-stubs-mips64.cc » ('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 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 1580 matching lines...) Expand 10 before | Expand all | Expand 10 after
1591 LoadWithVectorDescriptor::SlotRegister())); 1591 LoadWithVectorDescriptor::SlotRegister()));
1592 1592
1593 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, t0, 1593 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, t0,
1594 t1, &miss); 1594 t1, &miss);
1595 __ bind(&miss); 1595 __ bind(&miss);
1596 PropertyAccessCompiler::TailCallBuiltin( 1596 PropertyAccessCompiler::TailCallBuiltin(
1597 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC)); 1597 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC));
1598 } 1598 }
1599 1599
1600 1600
1601 void LoadIndexedInterceptorStub::Generate(MacroAssembler* masm) {
1602 // Return address is in ra.
1603 Label slow;
1604
1605 Register receiver = LoadDescriptor::ReceiverRegister();
1606 Register key = LoadDescriptor::NameRegister();
1607
1608 // Check that the key is an array index, that is Uint32.
1609 __ And(t0, key, Operand(kSmiTagMask | kSmiSignMask));
1610 __ Branch(&slow, ne, t0, Operand(zero_reg));
1611
1612 // Everything is fine, call runtime.
1613 __ Push(receiver, key); // Receiver, key.
1614
1615 // Perform tail call to the entry.
1616 __ TailCallRuntime(Runtime::kLoadElementWithInterceptor);
1617
1618 __ bind(&slow);
1619 PropertyAccessCompiler::TailCallBuiltin(
1620 masm, PropertyAccessCompiler::MissBuiltin(Code::KEYED_LOAD_IC));
1621 }
1622
1623
1624 void RegExpExecStub::Generate(MacroAssembler* masm) { 1601 void RegExpExecStub::Generate(MacroAssembler* masm) {
1625 // Just jump directly to runtime if native RegExp is not selected at compile 1602 // Just jump directly to runtime if native RegExp is not selected at compile
1626 // time or if regexp entry in generated code is turned off runtime switch or 1603 // time or if regexp entry in generated code is turned off runtime switch or
1627 // at compilation. 1604 // at compilation.
1628 #ifdef V8_INTERPRETED_REGEXP 1605 #ifdef V8_INTERPRETED_REGEXP
1629 __ TailCallRuntime(Runtime::kRegExpExec); 1606 __ TailCallRuntime(Runtime::kRegExpExec);
1630 #else // V8_INTERPRETED_REGEXP 1607 #else // V8_INTERPRETED_REGEXP
1631 1608
1632 // Stack frame on entry. 1609 // Stack frame on entry.
1633 // sp[0]: last_match_info (expected JSArray) 1610 // sp[0]: last_match_info (expected JSArray)
(...skipping 4129 matching lines...) Expand 10 before | Expand all | Expand 10 after
5763 return_value_operand, NULL); 5740 return_value_operand, NULL);
5764 } 5741 }
5765 5742
5766 5743
5767 #undef __ 5744 #undef __
5768 5745
5769 } // namespace internal 5746 } // namespace internal
5770 } // namespace v8 5747 } // namespace v8
5771 5748
5772 #endif // V8_TARGET_ARCH_MIPS 5749 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « src/ia32/code-stubs-ia32.cc ('k') | src/mips64/code-stubs-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698