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

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

Issue 143633007: A64: Synchronize with r18764. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 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/code-stubs.h ('k') | src/code-stubs-hydrogen.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 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 // static 262 // static
263 void BinaryOpICWithAllocationSiteStub::GenerateAheadOfTime( 263 void BinaryOpICWithAllocationSiteStub::GenerateAheadOfTime(
264 Isolate* isolate, const BinaryOpIC::State& state) { 264 Isolate* isolate, const BinaryOpIC::State& state) {
265 if (state.CouldCreateAllocationMementos()) { 265 if (state.CouldCreateAllocationMementos()) {
266 BinaryOpICWithAllocationSiteStub stub(state); 266 BinaryOpICWithAllocationSiteStub stub(state);
267 stub.GetCode(isolate); 267 stub.GetCode(isolate);
268 } 268 }
269 } 269 }
270 270
271 271
272 void NewStringAddStub::PrintBaseName(StringStream* stream) { 272 void StringAddStub::PrintBaseName(StringStream* stream) {
273 stream->Add("NewStringAddStub"); 273 stream->Add("StringAddStub");
274 if ((flags() & STRING_ADD_CHECK_BOTH) == STRING_ADD_CHECK_BOTH) { 274 if ((flags() & STRING_ADD_CHECK_BOTH) == STRING_ADD_CHECK_BOTH) {
275 stream->Add("_CheckBoth"); 275 stream->Add("_CheckBoth");
276 } else if ((flags() & STRING_ADD_CHECK_LEFT) == STRING_ADD_CHECK_LEFT) { 276 } else if ((flags() & STRING_ADD_CHECK_LEFT) == STRING_ADD_CHECK_LEFT) {
277 stream->Add("_CheckLeft"); 277 stream->Add("_CheckLeft");
278 } else if ((flags() & STRING_ADD_CHECK_RIGHT) == STRING_ADD_CHECK_RIGHT) { 278 } else if ((flags() & STRING_ADD_CHECK_RIGHT) == STRING_ADD_CHECK_RIGHT) {
279 stream->Add("_CheckRight"); 279 stream->Add("_CheckRight");
280 } 280 }
281 if (pretenure_flag() == TENURED) { 281 if (pretenure_flag() == TENURED) {
282 stream->Add("_Tenured"); 282 stream->Add("_Tenured");
283 } 283 }
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 SimpleListPrinter printer(stream); 469 SimpleListPrinter printer(stream);
470 if (IsEmpty()) printer.Add("None"); 470 if (IsEmpty()) printer.Add("None");
471 if (Contains(UNDEFINED)) printer.Add("Undefined"); 471 if (Contains(UNDEFINED)) printer.Add("Undefined");
472 if (Contains(NULL_TYPE)) printer.Add("Null"); 472 if (Contains(NULL_TYPE)) printer.Add("Null");
473 if (Contains(MONOMORPHIC_MAP)) printer.Add("MonomorphicMap"); 473 if (Contains(MONOMORPHIC_MAP)) printer.Add("MonomorphicMap");
474 if (Contains(GENERIC)) printer.Add("Generic"); 474 if (Contains(GENERIC)) printer.Add("Generic");
475 stream->Add(")"); 475 stream->Add(")");
476 } 476 }
477 477
478 478
479 Handle<Type> CompareNilICStub::GetType( 479 Type* CompareNilICStub::GetType(Zone* zone, Handle<Map> map) {
480 Isolate* isolate,
481 Handle<Map> map) {
482 if (state_.Contains(CompareNilICStub::GENERIC)) { 480 if (state_.Contains(CompareNilICStub::GENERIC)) {
483 return Type::Any(isolate); 481 return Type::Any(zone);
484 } 482 }
485 483
486 Handle<Type> result = Type::None(isolate); 484 Type* result = Type::None(zone);
487 if (state_.Contains(CompareNilICStub::UNDEFINED)) { 485 if (state_.Contains(CompareNilICStub::UNDEFINED)) {
488 result = Type::Union(result, Type::Undefined(isolate), isolate); 486 result = Type::Union(result, Type::Undefined(zone), zone);
489 } 487 }
490 if (state_.Contains(CompareNilICStub::NULL_TYPE)) { 488 if (state_.Contains(CompareNilICStub::NULL_TYPE)) {
491 result = Type::Union(result, Type::Null(isolate), isolate); 489 result = Type::Union(result, Type::Null(zone), zone);
492 } 490 }
493 if (state_.Contains(CompareNilICStub::MONOMORPHIC_MAP)) { 491 if (state_.Contains(CompareNilICStub::MONOMORPHIC_MAP)) {
494 Handle<Type> type = map.is_null() 492 Type* type =
495 ? Type::Detectable(isolate) : Type::Class(map, isolate); 493 map.is_null() ? Type::Detectable(zone) : Type::Class(map, zone);
496 result = Type::Union(result, type, isolate); 494 result = Type::Union(result, type, zone);
497 } 495 }
498 496
499 return result; 497 return result;
500 } 498 }
501 499
502 500
503 Handle<Type> CompareNilICStub::GetInputType( 501 Type* CompareNilICStub::GetInputType(Zone* zone, Handle<Map> map) {
504 Isolate* isolate, 502 Type* output_type = GetType(zone, map);
505 Handle<Map> map) { 503 Type* nil_type =
506 Handle<Type> output_type = GetType(isolate, map); 504 nil_value_ == kNullValue ? Type::Null(zone) : Type::Undefined(zone);
507 Handle<Type> nil_type = nil_value_ == kNullValue 505 return Type::Union(output_type, nil_type, zone);
508 ? Type::Null(isolate) : Type::Undefined(isolate);
509 return Type::Union(output_type, nil_type, isolate);
510 } 506 }
511 507
512 508
513 void InstanceofStub::PrintName(StringStream* stream) { 509 void InstanceofStub::PrintName(StringStream* stream) {
514 const char* args = ""; 510 const char* args = "";
515 if (HasArgsInRegisters()) { 511 if (HasArgsInRegisters()) {
516 args = "_REGS"; 512 args = "_REGS";
517 } 513 }
518 514
519 const char* inline_check = ""; 515 const char* inline_check = "";
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 case FAST_HOLEY_DOUBLE_ELEMENTS: 559 case FAST_HOLEY_DOUBLE_ELEMENTS:
564 case EXTERNAL_BYTE_ELEMENTS: 560 case EXTERNAL_BYTE_ELEMENTS:
565 case EXTERNAL_UNSIGNED_BYTE_ELEMENTS: 561 case EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
566 case EXTERNAL_SHORT_ELEMENTS: 562 case EXTERNAL_SHORT_ELEMENTS:
567 case EXTERNAL_UNSIGNED_SHORT_ELEMENTS: 563 case EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
568 case EXTERNAL_INT_ELEMENTS: 564 case EXTERNAL_INT_ELEMENTS:
569 case EXTERNAL_UNSIGNED_INT_ELEMENTS: 565 case EXTERNAL_UNSIGNED_INT_ELEMENTS:
570 case EXTERNAL_FLOAT_ELEMENTS: 566 case EXTERNAL_FLOAT_ELEMENTS:
571 case EXTERNAL_DOUBLE_ELEMENTS: 567 case EXTERNAL_DOUBLE_ELEMENTS:
572 case EXTERNAL_PIXEL_ELEMENTS: 568 case EXTERNAL_PIXEL_ELEMENTS:
569 case UINT8_ELEMENTS:
570 case INT8_ELEMENTS:
571 case UINT16_ELEMENTS:
572 case INT16_ELEMENTS:
573 case UINT32_ELEMENTS:
574 case INT32_ELEMENTS:
575 case FLOAT32_ELEMENTS:
576 case FLOAT64_ELEMENTS:
577 case UINT8_CLAMPED_ELEMENTS:
573 UNREACHABLE(); 578 UNREACHABLE();
574 break; 579 break;
575 case DICTIONARY_ELEMENTS: 580 case DICTIONARY_ELEMENTS:
576 KeyedStoreStubCompiler::GenerateStoreDictionaryElement(masm); 581 KeyedStoreStubCompiler::GenerateStoreDictionaryElement(masm);
577 break; 582 break;
578 case NON_STRICT_ARGUMENTS_ELEMENTS: 583 case NON_STRICT_ARGUMENTS_ELEMENTS:
579 UNREACHABLE(); 584 UNREACHABLE();
580 break; 585 break;
581 } 586 }
582 } 587 }
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
754 InstallDescriptor(isolate, &stub); 759 InstallDescriptor(isolate, &stub);
755 } 760 }
756 761
757 762
758 void FastNewClosureStub::InstallDescriptors(Isolate* isolate) { 763 void FastNewClosureStub::InstallDescriptors(Isolate* isolate) {
759 FastNewClosureStub stub(STRICT_MODE, false); 764 FastNewClosureStub stub(STRICT_MODE, false);
760 InstallDescriptor(isolate, &stub); 765 InstallDescriptor(isolate, &stub);
761 } 766 }
762 767
763 768
769 void FastNewContextStub::InstallDescriptors(Isolate* isolate) {
770 FastNewContextStub stub(FastNewContextStub::kMaximumSlots);
771 InstallDescriptor(isolate, &stub);
772 }
773
774
764 // static 775 // static
765 void BinaryOpICStub::InstallDescriptors(Isolate* isolate) { 776 void BinaryOpICStub::InstallDescriptors(Isolate* isolate) {
766 BinaryOpICStub stub(Token::ADD, NO_OVERWRITE); 777 BinaryOpICStub stub(Token::ADD, NO_OVERWRITE);
767 InstallDescriptor(isolate, &stub); 778 InstallDescriptor(isolate, &stub);
768 } 779 }
769 780
770 781
771 // static 782 // static
772 void BinaryOpWithAllocationSiteStub::InstallDescriptors(Isolate* isolate) { 783 void BinaryOpWithAllocationSiteStub::InstallDescriptors(Isolate* isolate) {
773 BinaryOpWithAllocationSiteStub stub(Token::ADD, NO_OVERWRITE); 784 BinaryOpWithAllocationSiteStub stub(Token::ADD, NO_OVERWRITE);
774 InstallDescriptor(isolate, &stub); 785 InstallDescriptor(isolate, &stub);
775 } 786 }
776 787
777 788
778 // static 789 // static
779 void NewStringAddStub::InstallDescriptors(Isolate* isolate) { 790 void StringAddStub::InstallDescriptors(Isolate* isolate) {
780 NewStringAddStub stub(STRING_ADD_CHECK_NONE, NOT_TENURED); 791 StringAddStub stub(STRING_ADD_CHECK_NONE, NOT_TENURED);
781 InstallDescriptor(isolate, &stub); 792 InstallDescriptor(isolate, &stub);
782 } 793 }
783 794
784 795
785 ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate) 796 ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate)
786 : argument_count_(ANY) { 797 : argument_count_(ANY) {
787 ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 798 ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
788 } 799 }
789 800
790 801
(...skipping 21 matching lines...) Expand all
812 InstallDescriptor(isolate, &stub3); 823 InstallDescriptor(isolate, &stub3);
813 } 824 }
814 825
815 InternalArrayConstructorStub::InternalArrayConstructorStub( 826 InternalArrayConstructorStub::InternalArrayConstructorStub(
816 Isolate* isolate) { 827 Isolate* isolate) {
817 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 828 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
818 } 829 }
819 830
820 831
821 } } // namespace v8::internal 832 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/code-stubs.h ('k') | src/code-stubs-hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698