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 872 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
883 | 883 |
884 int id() const { return id_; } | 884 int id() const { return id_; } |
885 void set_id(int id) { id_ = id; } | 885 void set_id(int id) { id_ = id; } |
886 | 886 |
887 HUseIterator uses() const { return HUseIterator(use_list_); } | 887 HUseIterator uses() const { return HUseIterator(use_list_); } |
888 | 888 |
889 virtual bool EmitAtUses() { return false; } | 889 virtual bool EmitAtUses() { return false; } |
890 Representation representation() const { return representation_; } | 890 Representation representation() const { return representation_; } |
891 void ChangeRepresentation(Representation r) { | 891 void ChangeRepresentation(Representation r) { |
892 ASSERT(CheckFlag(kFlexibleRepresentation)); | 892 ASSERT(CheckFlag(kFlexibleRepresentation)); |
| 893 ASSERT(!CheckFlag(kCannotBeTagged) || !r.IsTagged()); |
893 RepresentationChanged(r); | 894 RepresentationChanged(r); |
894 representation_ = r; | 895 representation_ = r; |
895 if (r.IsTagged() || | 896 if (r.IsTagged()) { |
896 (r.IsDouble() && CheckFlag(kCannotBeTagged))) { | |
897 // Tagged is the bottom of the lattice, don't go any further. | 897 // Tagged is the bottom of the lattice, don't go any further. |
898 ClearFlag(kFlexibleRepresentation); | 898 ClearFlag(kFlexibleRepresentation); |
899 } | 899 } |
900 } | 900 } |
901 virtual void AssumeRepresentation(Representation r); | 901 virtual void AssumeRepresentation(Representation r); |
902 | 902 |
903 virtual Representation KnownOptimalRepresentation() { | 903 virtual Representation KnownOptimalRepresentation() { |
904 Representation r = representation(); | 904 Representation r = representation(); |
905 if (r.IsTagged()) { | 905 if (r.IsTagged()) { |
906 HType t = type(); | 906 HType t = type(); |
(...skipping 5734 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6641 virtual bool IsDeletable() const { return true; } | 6641 virtual bool IsDeletable() const { return true; } |
6642 }; | 6642 }; |
6643 | 6643 |
6644 | 6644 |
6645 #undef DECLARE_INSTRUCTION | 6645 #undef DECLARE_INSTRUCTION |
6646 #undef DECLARE_CONCRETE_INSTRUCTION | 6646 #undef DECLARE_CONCRETE_INSTRUCTION |
6647 | 6647 |
6648 } } // namespace v8::internal | 6648 } } // namespace v8::internal |
6649 | 6649 |
6650 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 6650 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |