| 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 |