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

Side by Side Diff: src/arm/stub-cache-arm.cc

Issue 424743002: Clean up name distinction between Keyed ICs and Element Handlers (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 | « src/arm/macro-assembler-arm.cc ('k') | src/arm64/ic-arm64.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 #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/codegen.h" 9 #include "src/codegen.h"
10 #include "src/ic-inl.h" 10 #include "src/ic-inl.h"
(...skipping 1119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1130 1130
1131 #undef __ 1131 #undef __
1132 #define __ ACCESS_MASM(masm()) 1132 #define __ ACCESS_MASM(masm())
1133 1133
1134 1134
1135 Handle<Code> NamedStoreHandlerCompiler::CompileStoreInterceptor( 1135 Handle<Code> NamedStoreHandlerCompiler::CompileStoreInterceptor(
1136 Handle<JSObject> object, Handle<Name> name) { 1136 Handle<JSObject> object, Handle<Name> name) {
1137 __ Push(receiver(), this->name(), value()); 1137 __ Push(receiver(), this->name(), value());
1138 1138
1139 // Do tail-call to the runtime system. 1139 // Do tail-call to the runtime system.
1140 ExternalReference store_ic_property = 1140 ExternalReference store_ic_property = ExternalReference(
1141 ExternalReference(IC_Utility(IC::kStoreInterceptorProperty), isolate()); 1141 IC_Utility(IC::kStorePropertyWithInterceptor), isolate());
1142 __ TailCallExternalReference(store_ic_property, 3, 1); 1142 __ TailCallExternalReference(store_ic_property, 3, 1);
1143 1143
1144 // Return the generated code. 1144 // Return the generated code.
1145 return GetCode(kind(), Code::FAST, name); 1145 return GetCode(kind(), Code::FAST, name);
1146 } 1146 }
1147 1147
1148 1148
1149 Handle<Code> NamedLoadHandlerCompiler::CompileLoadNonexistent( 1149 Handle<Code> NamedLoadHandlerCompiler::CompileLoadNonexistent(
1150 Handle<HeapType> type, Handle<JSObject> last, Handle<Name> name) { 1150 Handle<HeapType> type, Handle<JSObject> last, Handle<Name> name) {
1151 NonexistentFrontend(type, last, name); 1151 NonexistentFrontend(type, last, name);
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
1319 // Prepare tail call to StoreIC_ArrayLength. 1319 // Prepare tail call to StoreIC_ArrayLength.
1320 __ Push(receiver(), value()); 1320 __ Push(receiver(), value());
1321 1321
1322 ExternalReference ref = 1322 ExternalReference ref =
1323 ExternalReference(IC_Utility(IC::kStoreIC_ArrayLength), 1323 ExternalReference(IC_Utility(IC::kStoreIC_ArrayLength),
1324 masm()->isolate()); 1324 masm()->isolate());
1325 __ TailCallExternalReference(ref, 2, 1); 1325 __ TailCallExternalReference(ref, 2, 1);
1326 } 1326 }
1327 1327
1328 1328
1329 Handle<Code> PropertyICCompiler::CompileIndexedStorePolymorphic( 1329 Handle<Code> PropertyICCompiler::CompileKeyedStorePolymorphic(
1330 MapHandleList* receiver_maps, CodeHandleList* handler_stubs, 1330 MapHandleList* receiver_maps, CodeHandleList* handler_stubs,
1331 MapHandleList* transitioned_maps) { 1331 MapHandleList* transitioned_maps) {
1332 Label miss; 1332 Label miss;
1333 __ JumpIfSmi(receiver(), &miss); 1333 __ JumpIfSmi(receiver(), &miss);
1334 1334
1335 int receiver_count = receiver_maps->length(); 1335 int receiver_count = receiver_maps->length();
1336 __ ldr(scratch1(), FieldMemOperand(receiver(), HeapObject::kMapOffset)); 1336 __ ldr(scratch1(), FieldMemOperand(receiver(), HeapObject::kMapOffset));
1337 for (int i = 0; i < receiver_count; ++i) { 1337 for (int i = 0; i < receiver_count; ++i) {
1338 __ mov(ip, Operand(receiver_maps->at(i))); 1338 __ mov(ip, Operand(receiver_maps->at(i)));
1339 __ cmp(scratch1(), ip); 1339 __ cmp(scratch1(), ip);
(...skipping 13 matching lines...) Expand all
1353 1353
1354 // Return the generated code. 1354 // Return the generated code.
1355 return GetCode(kind(), Code::NORMAL, factory()->empty_string(), POLYMORPHIC); 1355 return GetCode(kind(), Code::NORMAL, factory()->empty_string(), POLYMORPHIC);
1356 } 1356 }
1357 1357
1358 1358
1359 #undef __ 1359 #undef __
1360 #define __ ACCESS_MASM(masm) 1360 #define __ ACCESS_MASM(masm)
1361 1361
1362 1362
1363 void IndexedHandlerCompiler::GenerateLoadDictionaryElement( 1363 void ElementHandlerCompiler::GenerateLoadDictionaryElement(
1364 MacroAssembler* masm) { 1364 MacroAssembler* masm) {
1365 // The return address is in lr. 1365 // The return address is in lr.
1366 Label slow, miss; 1366 Label slow, miss;
1367 1367
1368 Register key = LoadIC::NameRegister(); 1368 Register key = LoadIC::NameRegister();
1369 Register receiver = LoadIC::ReceiverRegister(); 1369 Register receiver = LoadIC::ReceiverRegister();
1370 ASSERT(receiver.is(r1)); 1370 ASSERT(receiver.is(r1));
1371 ASSERT(key.is(r2)); 1371 ASSERT(key.is(r2));
1372 1372
1373 __ UntagAndJumpIfNotSmi(r6, key, &miss); 1373 __ UntagAndJumpIfNotSmi(r6, key, &miss);
(...skipping 13 matching lines...) Expand all
1387 1387
1388 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); 1388 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss);
1389 } 1389 }
1390 1390
1391 1391
1392 #undef __ 1392 #undef __
1393 1393
1394 } } // namespace v8::internal 1394 } } // namespace v8::internal
1395 1395
1396 #endif // V8_TARGET_ARCH_ARM 1396 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/arm64/ic-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698