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