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 6523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6534 private: | 6534 private: |
6535 HStoreNamedField(HValue* obj, | 6535 HStoreNamedField(HValue* obj, |
6536 HObjectAccess access, | 6536 HObjectAccess access, |
6537 HValue* val, | 6537 HValue* val, |
6538 StoreFieldOrKeyedMode store_mode = INITIALIZING_STORE) | 6538 StoreFieldOrKeyedMode store_mode = INITIALIZING_STORE) |
6539 : access_(access), | 6539 : access_(access), |
6540 new_space_dominator_(NULL), | 6540 new_space_dominator_(NULL), |
6541 write_barrier_mode_(UPDATE_WRITE_BARRIER), | 6541 write_barrier_mode_(UPDATE_WRITE_BARRIER), |
6542 has_transition_(false), | 6542 has_transition_(false), |
6543 store_mode_(store_mode) { | 6543 store_mode_(store_mode) { |
| 6544 if (!FLAG_smi_x64_store_opt) store_mode_ = INITIALIZING_STORE; |
6544 // Stores to a non existing in-object property are allowed only to the | 6545 // Stores to a non existing in-object property are allowed only to the |
6545 // newly allocated objects (via HAllocate or HInnerAllocatedObject). | 6546 // newly allocated objects (via HAllocate or HInnerAllocatedObject). |
6546 ASSERT(!access.IsInobject() || access.existing_inobject_property() || | 6547 ASSERT(!access.IsInobject() || access.existing_inobject_property() || |
6547 obj->IsAllocate() || obj->IsInnerAllocatedObject()); | 6548 obj->IsAllocate() || obj->IsInnerAllocatedObject()); |
6548 SetOperandAt(0, obj); | 6549 SetOperandAt(0, obj); |
6549 SetOperandAt(1, val); | 6550 SetOperandAt(1, val); |
6550 SetOperandAt(2, obj); | 6551 SetOperandAt(2, obj); |
6551 access.SetGVNFlags(this, true); | 6552 access.SetGVNFlags(this, true); |
6552 } | 6553 } |
6553 | 6554 |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6722 private: | 6723 private: |
6723 HStoreKeyed(HValue* obj, HValue* key, HValue* val, | 6724 HStoreKeyed(HValue* obj, HValue* key, HValue* val, |
6724 ElementsKind elements_kind, | 6725 ElementsKind elements_kind, |
6725 StoreFieldOrKeyedMode store_mode = INITIALIZING_STORE) | 6726 StoreFieldOrKeyedMode store_mode = INITIALIZING_STORE) |
6726 : elements_kind_(elements_kind), | 6727 : elements_kind_(elements_kind), |
6727 index_offset_(0), | 6728 index_offset_(0), |
6728 is_dehoisted_(false), | 6729 is_dehoisted_(false), |
6729 is_uninitialized_(false), | 6730 is_uninitialized_(false), |
6730 store_mode_(store_mode), | 6731 store_mode_(store_mode), |
6731 new_space_dominator_(NULL) { | 6732 new_space_dominator_(NULL) { |
| 6733 if (!FLAG_smi_x64_store_opt) store_mode_ = INITIALIZING_STORE; |
6732 SetOperandAt(0, obj); | 6734 SetOperandAt(0, obj); |
6733 SetOperandAt(1, key); | 6735 SetOperandAt(1, key); |
6734 SetOperandAt(2, val); | 6736 SetOperandAt(2, val); |
6735 | 6737 |
6736 ASSERT(store_mode != STORE_TO_INITIALIZED_ENTRY || | 6738 ASSERT(store_mode != STORE_TO_INITIALIZED_ENTRY || |
6737 elements_kind == FAST_SMI_ELEMENTS); | 6739 elements_kind == FAST_SMI_ELEMENTS); |
6738 | 6740 |
6739 if (IsFastObjectElementsKind(elements_kind)) { | 6741 if (IsFastObjectElementsKind(elements_kind)) { |
6740 SetFlag(kTrackSideEffectDominators); | 6742 SetFlag(kTrackSideEffectDominators); |
6741 SetGVNFlag(kDependsOnNewSpacePromotion); | 6743 SetGVNFlag(kDependsOnNewSpacePromotion); |
(...skipping 699 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7441 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 7443 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
7442 }; | 7444 }; |
7443 | 7445 |
7444 | 7446 |
7445 #undef DECLARE_INSTRUCTION | 7447 #undef DECLARE_INSTRUCTION |
7446 #undef DECLARE_CONCRETE_INSTRUCTION | 7448 #undef DECLARE_CONCRETE_INSTRUCTION |
7447 | 7449 |
7448 } } // namespace v8::internal | 7450 } } // namespace v8::internal |
7449 | 7451 |
7450 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7452 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |