OLD | NEW |
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 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
404 Handle<Code> FastCloneShallowObjectStub::GenerateCode() { | 404 Handle<Code> FastCloneShallowObjectStub::GenerateCode() { |
405 return DoGenerateCode(this); | 405 return DoGenerateCode(this); |
406 } | 406 } |
407 | 407 |
408 | 408 |
409 template <> | 409 template <> |
410 HValue* CodeStubGraphBuilder<KeyedLoadFastElementStub>::BuildCodeStub() { | 410 HValue* CodeStubGraphBuilder<KeyedLoadFastElementStub>::BuildCodeStub() { |
411 HInstruction* load = BuildUncheckedMonomorphicElementAccess( | 411 HInstruction* load = BuildUncheckedMonomorphicElementAccess( |
412 GetParameter(0), GetParameter(1), NULL, NULL, | 412 GetParameter(0), GetParameter(1), NULL, NULL, |
413 casted_stub()->is_js_array(), casted_stub()->elements_kind(), | 413 casted_stub()->is_js_array(), casted_stub()->elements_kind(), |
414 false, NEVER_RETURN_HOLE, STANDARD_STORE, Representation::Smi()); | 414 false, NEVER_RETURN_HOLE, STANDARD_STORE); |
415 return load; | 415 return load; |
416 } | 416 } |
417 | 417 |
418 | 418 |
419 Handle<Code> KeyedLoadFastElementStub::GenerateCode() { | 419 Handle<Code> KeyedLoadFastElementStub::GenerateCode() { |
420 return DoGenerateCode(this); | 420 return DoGenerateCode(this); |
421 } | 421 } |
422 | 422 |
423 | 423 |
424 template<> | 424 template<> |
(...skipping 24 matching lines...) Expand all Loading... |
449 Handle<Code> KeyedLoadFieldStub::GenerateCode() { | 449 Handle<Code> KeyedLoadFieldStub::GenerateCode() { |
450 return DoGenerateCode(this); | 450 return DoGenerateCode(this); |
451 } | 451 } |
452 | 452 |
453 | 453 |
454 template <> | 454 template <> |
455 HValue* CodeStubGraphBuilder<KeyedStoreFastElementStub>::BuildCodeStub() { | 455 HValue* CodeStubGraphBuilder<KeyedStoreFastElementStub>::BuildCodeStub() { |
456 BuildUncheckedMonomorphicElementAccess( | 456 BuildUncheckedMonomorphicElementAccess( |
457 GetParameter(0), GetParameter(1), GetParameter(2), NULL, | 457 GetParameter(0), GetParameter(1), GetParameter(2), NULL, |
458 casted_stub()->is_js_array(), casted_stub()->elements_kind(), | 458 casted_stub()->is_js_array(), casted_stub()->elements_kind(), |
459 true, NEVER_RETURN_HOLE, casted_stub()->store_mode(), | 459 true, NEVER_RETURN_HOLE, casted_stub()->store_mode()); |
460 Representation::Smi()); | |
461 | 460 |
462 return GetParameter(2); | 461 return GetParameter(2); |
463 } | 462 } |
464 | 463 |
465 | 464 |
466 Handle<Code> KeyedStoreFastElementStub::GenerateCode() { | 465 Handle<Code> KeyedStoreFastElementStub::GenerateCode() { |
467 return DoGenerateCode(this); | 466 return DoGenerateCode(this); |
468 } | 467 } |
469 | 468 |
470 | 469 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 | 565 |
567 HConstant* max_alloc_length = | 566 HConstant* max_alloc_length = |
568 new(zone()) HConstant(JSObject::kInitialMaxFastElementArray, | 567 new(zone()) HConstant(JSObject::kInitialMaxFastElementArray, |
569 Representation::Tagged()); | 568 Representation::Tagged()); |
570 AddInstruction(max_alloc_length); | 569 AddInstruction(max_alloc_length); |
571 const int initial_capacity = JSArray::kPreallocatedArrayElements; | 570 const int initial_capacity = JSArray::kPreallocatedArrayElements; |
572 HConstant* initial_capacity_node = | 571 HConstant* initial_capacity_node = |
573 new(zone()) HConstant(initial_capacity, Representation::Tagged()); | 572 new(zone()) HConstant(initial_capacity, Representation::Tagged()); |
574 AddInstruction(initial_capacity_node); | 573 AddInstruction(initial_capacity_node); |
575 | 574 |
576 HBoundsCheck* checked_arg = AddBoundsCheck(argument, max_alloc_length, | 575 HBoundsCheck* checked_arg = AddBoundsCheck( |
577 ALLOW_SMI_KEY, | 576 argument, max_alloc_length, ALLOW_SMI_KEY); |
578 Representation::Smi()); | |
579 IfBuilder if_builder(this); | 577 IfBuilder if_builder(this); |
580 if_builder.IfCompare(checked_arg, constant_zero, Token::EQ); | 578 if_builder.IfCompare(checked_arg, constant_zero, Token::EQ); |
581 if_builder.Then(); | 579 if_builder.Then(); |
582 Push(initial_capacity_node); // capacity | 580 Push(initial_capacity_node); // capacity |
583 Push(constant_zero); // length | 581 Push(constant_zero); // length |
584 if_builder.Else(); | 582 if_builder.Else(); |
585 Push(checked_arg); // capacity | 583 Push(checked_arg); // capacity |
586 Push(checked_arg); // length | 584 Push(checked_arg); // length |
587 if_builder.End(); | 585 if_builder.End(); |
588 | 586 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 ? graph()->GetConstant1() | 675 ? graph()->GetConstant1() |
678 : graph()->GetConstantUndefined(); | 676 : graph()->GetConstantUndefined(); |
679 } | 677 } |
680 | 678 |
681 | 679 |
682 Handle<Code> CompareNilICStub::GenerateCode() { | 680 Handle<Code> CompareNilICStub::GenerateCode() { |
683 return DoGenerateCode(this); | 681 return DoGenerateCode(this); |
684 } | 682 } |
685 | 683 |
686 } } // namespace v8::internal | 684 } } // namespace v8::internal |
OLD | NEW |