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

Side by Side Diff: src/ic/ppc/ic-ppc.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/ppc/ic-compiler-ppc.cc ('k') | src/ic/x64/handler-compiler-x64.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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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_PPC 5 #if V8_TARGET_ARCH_PPC
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 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 Isolate* isolate = masm->isolate(); 313 Isolate* isolate = masm->isolate();
314 314
315 DCHECK(!AreAliased(r7, r8, LoadWithVectorDescriptor::SlotRegister(), 315 DCHECK(!AreAliased(r7, r8, LoadWithVectorDescriptor::SlotRegister(),
316 LoadWithVectorDescriptor::VectorRegister())); 316 LoadWithVectorDescriptor::VectorRegister()));
317 __ IncrementCounter(isolate->counters()->load_miss(), 1, r7, r8); 317 __ IncrementCounter(isolate->counters()->load_miss(), 1, r7, r8);
318 318
319 LoadIC_PushArgs(masm); 319 LoadIC_PushArgs(masm);
320 320
321 // Perform tail call to the entry. 321 // Perform tail call to the entry.
322 int arg_count = 4; 322 int arg_count = 4;
323 __ TailCallRuntime(Runtime::kLoadIC_Miss, arg_count, 1); 323 __ TailCallRuntime(Runtime::kLoadIC_Miss, arg_count);
324 } 324 }
325 325
326 326
327 void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm, 327 void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm,
328 LanguageMode language_mode) { 328 LanguageMode language_mode) {
329 // The return address is in lr. 329 // The return address is in lr.
330 330
331 __ mr(LoadIC_TempRegister(), LoadDescriptor::ReceiverRegister()); 331 __ mr(LoadIC_TempRegister(), LoadDescriptor::ReceiverRegister());
332 __ Push(LoadIC_TempRegister(), LoadDescriptor::NameRegister()); 332 __ Push(LoadIC_TempRegister(), LoadDescriptor::NameRegister());
333 333
334 // Do tail-call to runtime routine. 334 // Do tail-call to runtime routine.
335 __ TailCallRuntime(is_strong(language_mode) ? Runtime::kGetPropertyStrong 335 __ TailCallRuntime(is_strong(language_mode) ? Runtime::kGetPropertyStrong
336 : Runtime::kGetProperty, 336 : Runtime::kGetProperty,
337 2, 1); 337 2);
338 } 338 }
339 339
340 340
341 void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) { 341 void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) {
342 // The return address is in lr. 342 // The return address is in lr.
343 Isolate* isolate = masm->isolate(); 343 Isolate* isolate = masm->isolate();
344 344
345 DCHECK(!AreAliased(r7, r8, LoadWithVectorDescriptor::SlotRegister(), 345 DCHECK(!AreAliased(r7, r8, LoadWithVectorDescriptor::SlotRegister(),
346 LoadWithVectorDescriptor::VectorRegister())); 346 LoadWithVectorDescriptor::VectorRegister()));
347 __ IncrementCounter(isolate->counters()->keyed_load_miss(), 1, r7, r8); 347 __ IncrementCounter(isolate->counters()->keyed_load_miss(), 1, r7, r8);
348 348
349 LoadIC_PushArgs(masm); 349 LoadIC_PushArgs(masm);
350 350
351 // Perform tail call to the entry. 351 // Perform tail call to the entry.
352 int arg_count = 4; 352 int arg_count = 4;
353 __ TailCallRuntime(Runtime::kKeyedLoadIC_Miss, arg_count, 1); 353 __ TailCallRuntime(Runtime::kKeyedLoadIC_Miss, arg_count);
354 } 354 }
355 355
356 356
357 void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm, 357 void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm,
358 LanguageMode language_mode) { 358 LanguageMode language_mode) {
359 // The return address is in lr. 359 // The return address is in lr.
360 360
361 __ Push(LoadDescriptor::ReceiverRegister(), LoadDescriptor::NameRegister()); 361 __ Push(LoadDescriptor::ReceiverRegister(), LoadDescriptor::NameRegister());
362 362
363 // Do tail-call to runtime routine. 363 // Do tail-call to runtime routine.
364 __ TailCallRuntime(is_strong(language_mode) ? Runtime::kKeyedGetPropertyStrong 364 __ TailCallRuntime(is_strong(language_mode) ? Runtime::kKeyedGetPropertyStrong
365 : Runtime::kKeyedGetProperty, 365 : Runtime::kKeyedGetProperty,
366 2, 1); 366 2);
367 } 367 }
368 368
369 369
370 void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm, 370 void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm,
371 LanguageMode language_mode) { 371 LanguageMode language_mode) {
372 // The return address is in lr. 372 // The return address is in lr.
373 Label slow, check_name, index_smi, index_name, property_array_property; 373 Label slow, check_name, index_smi, index_name, property_array_property;
374 Label probe_dictionary, check_number_dictionary; 374 Label probe_dictionary, check_number_dictionary;
375 375
376 Register key = LoadDescriptor::NameRegister(); 376 Register key = LoadDescriptor::NameRegister();
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 __ Push(StoreDescriptor::ReceiverRegister(), StoreDescriptor::NameRegister(), 475 __ Push(StoreDescriptor::ReceiverRegister(), StoreDescriptor::NameRegister(),
476 StoreDescriptor::ValueRegister(), 476 StoreDescriptor::ValueRegister(),
477 VectorStoreICDescriptor::SlotRegister(), 477 VectorStoreICDescriptor::SlotRegister(),
478 VectorStoreICDescriptor::VectorRegister()); 478 VectorStoreICDescriptor::VectorRegister());
479 } 479 }
480 480
481 481
482 void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) { 482 void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
483 StoreIC_PushArgs(masm); 483 StoreIC_PushArgs(masm);
484 484
485 __ TailCallRuntime(Runtime::kKeyedStoreIC_Miss, 5, 1); 485 __ TailCallRuntime(Runtime::kKeyedStoreIC_Miss, 5);
486 } 486 }
487 487
488 488
489 static void KeyedStoreGenerateMegamorphicHelper( 489 static void KeyedStoreGenerateMegamorphicHelper(
490 MacroAssembler* masm, Label* fast_object, Label* fast_double, Label* slow, 490 MacroAssembler* masm, Label* fast_object, Label* fast_double, Label* slow,
491 KeyedStoreCheckMap check_map, KeyedStoreIncrementLength increment_length, 491 KeyedStoreCheckMap check_map, KeyedStoreIncrementLength increment_length,
492 Register value, Register key, Register receiver, Register receiver_map, 492 Register value, Register key, Register receiver, Register receiver_map,
493 Register elements_map, Register elements) { 493 Register elements_map, Register elements) {
494 Label transition_smi_elements; 494 Label transition_smi_elements;
495 Label finish_object_store, non_double_value, transition_double_elements; 495 Label finish_object_store, non_double_value, transition_double_elements;
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
779 779
780 // Cache miss: Jump to runtime. 780 // Cache miss: Jump to runtime.
781 GenerateMiss(masm); 781 GenerateMiss(masm);
782 } 782 }
783 783
784 784
785 void StoreIC::GenerateMiss(MacroAssembler* masm) { 785 void StoreIC::GenerateMiss(MacroAssembler* masm) {
786 StoreIC_PushArgs(masm); 786 StoreIC_PushArgs(masm);
787 787
788 // Perform tail call to the entry. 788 // Perform tail call to the entry.
789 __ TailCallRuntime(Runtime::kStoreIC_Miss, 5, 1); 789 __ TailCallRuntime(Runtime::kStoreIC_Miss, 5);
790 } 790 }
791 791
792 792
793 void StoreIC::GenerateNormal(MacroAssembler* masm) { 793 void StoreIC::GenerateNormal(MacroAssembler* masm) {
794 Label miss; 794 Label miss;
795 Register receiver = StoreDescriptor::ReceiverRegister(); 795 Register receiver = StoreDescriptor::ReceiverRegister();
796 Register name = StoreDescriptor::NameRegister(); 796 Register name = StoreDescriptor::NameRegister();
797 Register value = StoreDescriptor::ValueRegister(); 797 Register value = StoreDescriptor::ValueRegister();
798 Register dictionary = r8; 798 Register dictionary = r8;
799 DCHECK(receiver.is(r4)); 799 DCHECK(receiver.is(r4));
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 patcher.EmitCondition(ne); 911 patcher.EmitCondition(ne);
912 } else { 912 } else {
913 DCHECK(Assembler::GetCondition(branch_instr) == ne); 913 DCHECK(Assembler::GetCondition(branch_instr) == ne);
914 patcher.EmitCondition(eq); 914 patcher.EmitCondition(eq);
915 } 915 }
916 } 916 }
917 } // namespace internal 917 } // namespace internal
918 } // namespace v8 918 } // namespace v8
919 919
920 #endif // V8_TARGET_ARCH_PPC 920 #endif // V8_TARGET_ARCH_PPC
OLDNEW
« no previous file with comments | « src/ic/ppc/ic-compiler-ppc.cc ('k') | src/ic/x64/handler-compiler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698