OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ | 5 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ |
6 #define V8_HYDROGEN_INSTRUCTIONS_H_ | 6 #define V8_HYDROGEN_INSTRUCTIONS_H_ |
7 | 7 |
8 #include <cstring> | 8 #include <cstring> |
9 #include <iosfwd> | 9 #include <iosfwd> |
10 | 10 |
(...skipping 6486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6497 return (this->maps_ != NULL && | 6497 return (this->maps_ != NULL && |
6498 that->maps_ != NULL && | 6498 that->maps_ != NULL && |
6499 this->maps_->Equals(that->maps_)); | 6499 this->maps_->Equals(that->maps_)); |
6500 } | 6500 } |
6501 | 6501 |
6502 private: | 6502 private: |
6503 HLoadNamedField(HValue* object, | 6503 HLoadNamedField(HValue* object, |
6504 HValue* dependency, | 6504 HValue* dependency, |
6505 HObjectAccess access) | 6505 HObjectAccess access) |
6506 : access_(access), maps_(NULL) { | 6506 : access_(access), maps_(NULL) { |
6507 DCHECK_NOT_NULL(object); | 6507 DCHECK(object); |
6508 SetOperandAt(0, object); | 6508 SetOperandAt(0, object); |
6509 SetOperandAt(1, dependency ? dependency : object); | 6509 SetOperandAt(1, dependency ? dependency : object); |
6510 | 6510 |
6511 Representation representation = access.representation(); | 6511 Representation representation = access.representation(); |
6512 if (representation.IsInteger8() || | 6512 if (representation.IsInteger8() || |
6513 representation.IsUInteger8() || | 6513 representation.IsUInteger8() || |
6514 representation.IsInteger16() || | 6514 representation.IsInteger16() || |
6515 representation.IsUInteger16()) { | 6515 representation.IsUInteger16()) { |
6516 set_representation(Representation::Integer32()); | 6516 set_representation(Representation::Integer32()); |
6517 } else if (representation.IsSmi()) { | 6517 } else if (representation.IsSmi()) { |
(...skipping 15 matching lines...) Expand all Loading... |
6533 } | 6533 } |
6534 access.SetGVNFlags(this, LOAD); | 6534 access.SetGVNFlags(this, LOAD); |
6535 } | 6535 } |
6536 | 6536 |
6537 HLoadNamedField(HValue* object, | 6537 HLoadNamedField(HValue* object, |
6538 HValue* dependency, | 6538 HValue* dependency, |
6539 HObjectAccess access, | 6539 HObjectAccess access, |
6540 const UniqueSet<Map>* maps, | 6540 const UniqueSet<Map>* maps, |
6541 HType type) | 6541 HType type) |
6542 : HTemplateInstruction<2>(type), access_(access), maps_(maps) { | 6542 : HTemplateInstruction<2>(type), access_(access), maps_(maps) { |
6543 DCHECK_NOT_NULL(maps); | 6543 DCHECK(maps); |
6544 DCHECK_NE(0, maps->size()); | 6544 DCHECK_NE(0, maps->size()); |
6545 | 6545 |
6546 DCHECK_NOT_NULL(object); | 6546 DCHECK(object); |
6547 SetOperandAt(0, object); | 6547 SetOperandAt(0, object); |
6548 SetOperandAt(1, dependency ? dependency : object); | 6548 SetOperandAt(1, dependency ? dependency : object); |
6549 | 6549 |
6550 DCHECK(access.representation().IsHeapObject()); | 6550 DCHECK(access.representation().IsHeapObject()); |
6551 DCHECK(type.IsHeapObject()); | 6551 DCHECK(type.IsHeapObject()); |
6552 set_representation(Representation::Tagged()); | 6552 set_representation(Representation::Tagged()); |
6553 | 6553 |
6554 access.SetGVNFlags(this, LOAD); | 6554 access.SetGVNFlags(this, LOAD); |
6555 } | 6555 } |
6556 | 6556 |
(...skipping 1432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7989 }; | 7989 }; |
7990 | 7990 |
7991 | 7991 |
7992 | 7992 |
7993 #undef DECLARE_INSTRUCTION | 7993 #undef DECLARE_INSTRUCTION |
7994 #undef DECLARE_CONCRETE_INSTRUCTION | 7994 #undef DECLARE_CONCRETE_INSTRUCTION |
7995 | 7995 |
7996 } } // namespace v8::internal | 7996 } } // namespace v8::internal |
7997 | 7997 |
7998 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7998 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |