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

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

Issue 411973002: Restructure the IC / Handler compilers (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/arm/stub-cache-arm.cc » ('j') | src/ia32/stub-cache-ia32.cc » ('J')
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 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM 7 #if V8_TARGET_ARCH_ARM
8 8
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 1827 matching lines...) Expand 10 before | Expand all | Expand 10 after
1838 __ LoadRoot(r0, Heap::kTrueValueRootIndex, eq); 1838 __ LoadRoot(r0, Heap::kTrueValueRootIndex, eq);
1839 __ LoadRoot(r0, Heap::kFalseValueRootIndex, ne); 1839 __ LoadRoot(r0, Heap::kFalseValueRootIndex, ne);
1840 __ Ret(HasArgsInRegisters() ? 0 : 2); 1840 __ Ret(HasArgsInRegisters() ? 0 : 2);
1841 } 1841 }
1842 } 1842 }
1843 1843
1844 1844
1845 void FunctionPrototypeStub::Generate(MacroAssembler* masm) { 1845 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
1846 Label miss; 1846 Label miss;
1847 Register receiver = LoadIC::ReceiverRegister(); 1847 Register receiver = LoadIC::ReceiverRegister();
1848 Register name = LoadIC::NameRegister();
1849 1848
1850 ASSERT(kind() == Code::LOAD_IC || 1849 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, r3,
1851 kind() == Code::KEYED_LOAD_IC); 1850 r4, &miss);
1852
1853 if (kind() == Code::KEYED_LOAD_IC) {
1854 __ cmp(name, Operand(isolate()->factory()->prototype_string()));
1855 __ b(ne, &miss);
1856 }
1857
1858 StubCompiler::GenerateLoadFunctionPrototype(masm, receiver, r3, r4, &miss);
1859 __ bind(&miss); 1851 __ bind(&miss);
1860 StubCompiler::TailCallBuiltin( 1852 PropertyAccessCompiler::TailCallBuiltin(
1861 masm, BaseLoadStoreStubCompiler::MissBuiltin(kind())); 1853 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC));
1862 } 1854 }
1863 1855
1864 1856
1865 Register InstanceofStub::left() { return r0; } 1857 Register InstanceofStub::left() { return r0; }
1866 1858
1867 1859
1868 Register InstanceofStub::right() { return r1; } 1860 Register InstanceofStub::right() { return r1; }
1869 1861
1870 1862
1871 void ArgumentsAccessStub::GenerateReadElement(MacroAssembler* masm) { 1863 void ArgumentsAccessStub::GenerateReadElement(MacroAssembler* masm) {
(...skipping 3192 matching lines...) Expand 10 before | Expand all | Expand 10 after
5064 MemOperand(fp, 6 * kPointerSize), 5056 MemOperand(fp, 6 * kPointerSize),
5065 NULL); 5057 NULL);
5066 } 5058 }
5067 5059
5068 5060
5069 #undef __ 5061 #undef __
5070 5062
5071 } } // namespace v8::internal 5063 } } // namespace v8::internal
5072 5064
5073 #endif // V8_TARGET_ARCH_ARM 5065 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | src/arm/stub-cache-arm.cc » ('j') | src/ia32/stub-cache-ia32.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698