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

Side by Side Diff: src/ic/arm/ic-arm.cc

Issue 1550923002: Remove uses of result size in TailCallRuntime and friends (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: change spaces Created 4 years, 11 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/ic/arm/handler-compiler-arm.cc ('k') | src/ic/arm/ic-compiler-arm.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_ARM 5 #if V8_TARGET_ARCH_ARM
6 6
7 #include "src/codegen.h" 7 #include "src/codegen.h"
8 #include "src/ic/ic.h" 8 #include "src/ic/ic.h"
9 #include "src/ic/ic-compiler.h" 9 #include "src/ic/ic-compiler.h"
10 #include "src/ic/stub-cache.h" 10 #include "src/ic/stub-cache.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 Isolate* isolate = masm->isolate(); 303 Isolate* isolate = masm->isolate();
304 304
305 DCHECK(!AreAliased(r4, r5, LoadWithVectorDescriptor::SlotRegister(), 305 DCHECK(!AreAliased(r4, r5, LoadWithVectorDescriptor::SlotRegister(),
306 LoadWithVectorDescriptor::VectorRegister())); 306 LoadWithVectorDescriptor::VectorRegister()));
307 __ IncrementCounter(isolate->counters()->load_miss(), 1, r4, r5); 307 __ IncrementCounter(isolate->counters()->load_miss(), 1, r4, r5);
308 308
309 LoadIC_PushArgs(masm); 309 LoadIC_PushArgs(masm);
310 310
311 // Perform tail call to the entry. 311 // Perform tail call to the entry.
312 int arg_count = 4; 312 int arg_count = 4;
313 __ TailCallRuntime(Runtime::kLoadIC_Miss, arg_count, 1); 313 __ TailCallRuntime(Runtime::kLoadIC_Miss, arg_count);
314 } 314 }
315 315
316 316
317 void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm, 317 void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm,
318 LanguageMode language_mode) { 318 LanguageMode language_mode) {
319 // The return address is in lr. 319 // The return address is in lr.
320 320
321 __ mov(LoadIC_TempRegister(), LoadDescriptor::ReceiverRegister()); 321 __ mov(LoadIC_TempRegister(), LoadDescriptor::ReceiverRegister());
322 __ Push(LoadIC_TempRegister(), LoadDescriptor::NameRegister()); 322 __ Push(LoadIC_TempRegister(), LoadDescriptor::NameRegister());
323 323
324 // Do tail-call to runtime routine. 324 // Do tail-call to runtime routine.
325 __ TailCallRuntime(is_strong(language_mode) ? Runtime::kGetPropertyStrong 325 __ TailCallRuntime(is_strong(language_mode) ? Runtime::kGetPropertyStrong
326 : Runtime::kGetProperty, 326 : Runtime::kGetProperty,
327 2, 1); 327 2);
328 } 328 }
329 329
330 330
331 void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) { 331 void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) {
332 // The return address is in lr. 332 // The return address is in lr.
333 Isolate* isolate = masm->isolate(); 333 Isolate* isolate = masm->isolate();
334 334
335 DCHECK(!AreAliased(r4, r5, LoadWithVectorDescriptor::SlotRegister(), 335 DCHECK(!AreAliased(r4, r5, LoadWithVectorDescriptor::SlotRegister(),
336 LoadWithVectorDescriptor::VectorRegister())); 336 LoadWithVectorDescriptor::VectorRegister()));
337 __ IncrementCounter(isolate->counters()->keyed_load_miss(), 1, r4, r5); 337 __ IncrementCounter(isolate->counters()->keyed_load_miss(), 1, r4, r5);
338 338
339 LoadIC_PushArgs(masm); 339 LoadIC_PushArgs(masm);
340 340
341 // Perform tail call to the entry. 341 // Perform tail call to the entry.
342 int arg_count = 4; 342 int arg_count = 4;
343 __ TailCallRuntime(Runtime::kKeyedLoadIC_Miss, arg_count, 1); 343 __ TailCallRuntime(Runtime::kKeyedLoadIC_Miss, arg_count);
344 } 344 }
345 345
346 346
347 void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm, 347 void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm,
348 LanguageMode language_mode) { 348 LanguageMode language_mode) {
349 // The return address is in lr. 349 // The return address is in lr.
350 350
351 __ Push(LoadDescriptor::ReceiverRegister(), LoadDescriptor::NameRegister()); 351 __ Push(LoadDescriptor::ReceiverRegister(), LoadDescriptor::NameRegister());
352 352
353 // Perform tail call to the entry. 353 // Perform tail call to the entry.
354 // Do tail-call to runtime routine. 354 // Do tail-call to runtime routine.
355 __ TailCallRuntime(is_strong(language_mode) ? Runtime::kKeyedGetPropertyStrong 355 __ TailCallRuntime(is_strong(language_mode) ? Runtime::kKeyedGetPropertyStrong
356 : Runtime::kKeyedGetProperty, 356 : Runtime::kKeyedGetProperty,
357 2, 1); 357 2);
358 } 358 }
359 359
360 360
361 void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm, 361 void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm,
362 LanguageMode language_mode) { 362 LanguageMode language_mode) {
363 // The return address is in lr. 363 // The return address is in lr.
364 Label slow, check_name, index_smi, index_name, property_array_property; 364 Label slow, check_name, index_smi, index_name, property_array_property;
365 Label probe_dictionary, check_number_dictionary; 365 Label probe_dictionary, check_number_dictionary;
366 366
367 Register key = LoadDescriptor::NameRegister(); 367 Register key = LoadDescriptor::NameRegister();
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 __ Push(StoreDescriptor::ReceiverRegister(), StoreDescriptor::NameRegister(), 465 __ Push(StoreDescriptor::ReceiverRegister(), StoreDescriptor::NameRegister(),
466 StoreDescriptor::ValueRegister(), 466 StoreDescriptor::ValueRegister(),
467 VectorStoreICDescriptor::SlotRegister(), 467 VectorStoreICDescriptor::SlotRegister(),
468 VectorStoreICDescriptor::VectorRegister()); 468 VectorStoreICDescriptor::VectorRegister());
469 } 469 }
470 470
471 471
472 void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) { 472 void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
473 StoreIC_PushArgs(masm); 473 StoreIC_PushArgs(masm);
474 474
475 __ TailCallRuntime(Runtime::kKeyedStoreIC_Miss, 5, 1); 475 __ TailCallRuntime(Runtime::kKeyedStoreIC_Miss, 5);
476 } 476 }
477 477
478 478
479 static void KeyedStoreGenerateMegamorphicHelper( 479 static void KeyedStoreGenerateMegamorphicHelper(
480 MacroAssembler* masm, Label* fast_object, Label* fast_double, Label* slow, 480 MacroAssembler* masm, Label* fast_object, Label* fast_double, Label* slow,
481 KeyedStoreCheckMap check_map, KeyedStoreIncrementLength increment_length, 481 KeyedStoreCheckMap check_map, KeyedStoreIncrementLength increment_length,
482 Register value, Register key, Register receiver, Register receiver_map, 482 Register value, Register key, Register receiver, Register receiver_map,
483 Register elements_map, Register elements) { 483 Register elements_map, Register elements) {
484 Label transition_smi_elements; 484 Label transition_smi_elements;
485 Label finish_object_store, non_double_value, transition_double_elements; 485 Label finish_object_store, non_double_value, transition_double_elements;
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 770
771 // Cache miss: Jump to runtime. 771 // Cache miss: Jump to runtime.
772 GenerateMiss(masm); 772 GenerateMiss(masm);
773 } 773 }
774 774
775 775
776 void StoreIC::GenerateMiss(MacroAssembler* masm) { 776 void StoreIC::GenerateMiss(MacroAssembler* masm) {
777 StoreIC_PushArgs(masm); 777 StoreIC_PushArgs(masm);
778 778
779 // Perform tail call to the entry. 779 // Perform tail call to the entry.
780 __ TailCallRuntime(Runtime::kStoreIC_Miss, 5, 1); 780 __ TailCallRuntime(Runtime::kStoreIC_Miss, 5);
781 } 781 }
782 782
783 783
784 void StoreIC::GenerateNormal(MacroAssembler* masm) { 784 void StoreIC::GenerateNormal(MacroAssembler* masm) {
785 Label miss; 785 Label miss;
786 Register receiver = StoreDescriptor::ReceiverRegister(); 786 Register receiver = StoreDescriptor::ReceiverRegister();
787 Register name = StoreDescriptor::NameRegister(); 787 Register name = StoreDescriptor::NameRegister();
788 Register value = StoreDescriptor::ValueRegister(); 788 Register value = StoreDescriptor::ValueRegister();
789 Register dictionary = r5; 789 Register dictionary = r5;
790 DCHECK(receiver.is(r1)); 790 DCHECK(receiver.is(r1));
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 patcher.EmitCondition(ne); 898 patcher.EmitCondition(ne);
899 } else { 899 } else {
900 DCHECK(Assembler::GetCondition(branch_instr) == ne); 900 DCHECK(Assembler::GetCondition(branch_instr) == ne);
901 patcher.EmitCondition(eq); 901 patcher.EmitCondition(eq);
902 } 902 }
903 } 903 }
904 } // namespace internal 904 } // namespace internal
905 } // namespace v8 905 } // namespace v8
906 906
907 #endif // V8_TARGET_ARCH_ARM 907 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/ic/arm/handler-compiler-arm.cc ('k') | src/ic/arm/ic-compiler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698