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

Side by Side Diff: src/arm64/lithium-arm64.cc

Issue 381633002: Use a register spec for StoreIC and KeyedStoreIC. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Code comments. Created 6 years, 5 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/arm64/ic-arm64.cc ('k') | src/arm64/lithium-codegen-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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 #include "src/arm64/lithium-arm64.h" 7 #include "src/arm64/lithium-arm64.h"
8 #include "src/arm64/lithium-codegen-arm64.h" 8 #include "src/arm64/lithium-codegen-arm64.h"
9 #include "src/hydrogen-osr.h" 9 #include "src/hydrogen-osr.h"
10 #include "src/lithium-allocator-inl.h" 10 #include "src/lithium-allocator-inl.h"
(...skipping 2340 matching lines...) Expand 10 before | Expand all | Expand 10 after
2351 ASSERT(instr->elements()->representation().IsTagged()); 2351 ASSERT(instr->elements()->representation().IsTagged());
2352 ASSERT(instr->value()->representation().IsSmiOrTagged() || 2352 ASSERT(instr->value()->representation().IsSmiOrTagged() ||
2353 instr->value()->representation().IsInteger32()); 2353 instr->value()->representation().IsInteger32());
2354 return new(zone()) LStoreKeyedFixed(elements, key, val, temp); 2354 return new(zone()) LStoreKeyedFixed(elements, key, val, temp);
2355 } 2355 }
2356 } 2356 }
2357 2357
2358 2358
2359 LInstruction* LChunkBuilder::DoStoreKeyedGeneric(HStoreKeyedGeneric* instr) { 2359 LInstruction* LChunkBuilder::DoStoreKeyedGeneric(HStoreKeyedGeneric* instr) {
2360 LOperand* context = UseFixed(instr->context(), cp); 2360 LOperand* context = UseFixed(instr->context(), cp);
2361 LOperand* object = UseFixed(instr->object(), x2); 2361 LOperand* object = UseFixed(instr->object(),
2362 LOperand* key = UseFixed(instr->key(), x1); 2362 KeyedStoreIC::ReceiverRegister());
2363 LOperand* value = UseFixed(instr->value(), x0); 2363 LOperand* key = UseFixed(instr->key(), KeyedStoreIC::NameRegister());
2364 LOperand* value = UseFixed(instr->value(), KeyedStoreIC::ValueRegister());
2364 2365
2365 ASSERT(instr->object()->representation().IsTagged()); 2366 ASSERT(instr->object()->representation().IsTagged());
2366 ASSERT(instr->key()->representation().IsTagged()); 2367 ASSERT(instr->key()->representation().IsTagged());
2367 ASSERT(instr->value()->representation().IsTagged()); 2368 ASSERT(instr->value()->representation().IsTagged());
2368 2369
2369 return MarkAsCall( 2370 return MarkAsCall(
2370 new(zone()) LStoreKeyedGeneric(context, object, key, value), instr); 2371 new(zone()) LStoreKeyedGeneric(context, object, key, value), instr);
2371 } 2372 }
2372 2373
2373 2374
(...skipping 21 matching lines...) Expand all
2395 value = UseRegister(instr->value()); 2396 value = UseRegister(instr->value());
2396 temp0 = TempRegister(); 2397 temp0 = TempRegister();
2397 } 2398 }
2398 2399
2399 return new(zone()) LStoreNamedField(object, value, temp0, temp1); 2400 return new(zone()) LStoreNamedField(object, value, temp0, temp1);
2400 } 2401 }
2401 2402
2402 2403
2403 LInstruction* LChunkBuilder::DoStoreNamedGeneric(HStoreNamedGeneric* instr) { 2404 LInstruction* LChunkBuilder::DoStoreNamedGeneric(HStoreNamedGeneric* instr) {
2404 LOperand* context = UseFixed(instr->context(), cp); 2405 LOperand* context = UseFixed(instr->context(), cp);
2405 LOperand* object = UseFixed(instr->object(), x1); 2406 LOperand* object = UseFixed(instr->object(), StoreIC::ReceiverRegister());
2406 LOperand* value = UseFixed(instr->value(), x0); 2407 LOperand* value = UseFixed(instr->value(), StoreIC::ValueRegister());
2408
2407 LInstruction* result = new(zone()) LStoreNamedGeneric(context, object, value); 2409 LInstruction* result = new(zone()) LStoreNamedGeneric(context, object, value);
2408 return MarkAsCall(result, instr); 2410 return MarkAsCall(result, instr);
2409 } 2411 }
2410 2412
2411 2413
2412 LInstruction* LChunkBuilder::DoStringAdd(HStringAdd* instr) { 2414 LInstruction* LChunkBuilder::DoStringAdd(HStringAdd* instr) {
2413 LOperand* context = UseFixed(instr->context(), cp); 2415 LOperand* context = UseFixed(instr->context(), cp);
2414 LOperand* left = UseFixed(instr->left(), x1); 2416 LOperand* left = UseFixed(instr->left(), x1);
2415 LOperand* right = UseFixed(instr->right(), x0); 2417 LOperand* right = UseFixed(instr->right(), x0);
2416 2418
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
2717 HAllocateBlockContext* instr) { 2719 HAllocateBlockContext* instr) {
2718 LOperand* context = UseFixed(instr->context(), cp); 2720 LOperand* context = UseFixed(instr->context(), cp);
2719 LOperand* function = UseRegisterAtStart(instr->function()); 2721 LOperand* function = UseRegisterAtStart(instr->function());
2720 LAllocateBlockContext* result = 2722 LAllocateBlockContext* result =
2721 new(zone()) LAllocateBlockContext(context, function); 2723 new(zone()) LAllocateBlockContext(context, function);
2722 return MarkAsCall(DefineFixed(result, cp), instr); 2724 return MarkAsCall(DefineFixed(result, cp), instr);
2723 } 2725 }
2724 2726
2725 2727
2726 } } // namespace v8::internal 2728 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/arm64/ic-arm64.cc ('k') | src/arm64/lithium-codegen-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698