OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 1103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1114 int false_block_id() const { return false_block_id_; } | 1114 int false_block_id() const { return false_block_id_; } |
1115 | 1115 |
1116 private: | 1116 private: |
1117 int true_block_id_; | 1117 int true_block_id_; |
1118 int false_block_id_; | 1118 int false_block_id_; |
1119 }; | 1119 }; |
1120 | 1120 |
1121 | 1121 |
1122 class LCmpMapAndBranch: public LUnaryOperation { | 1122 class LCmpMapAndBranch: public LUnaryOperation { |
1123 public: | 1123 public: |
1124 LCmpMapAndBranch(LOperand* value, | 1124 LCmpMapAndBranch(LOperand* value, LOperand* temp) |
1125 Handle<Map> map, | 1125 : LUnaryOperation(value), temp_(temp) { } |
1126 int true_block_id, | |
1127 int false_block_id) | |
1128 : LUnaryOperation(value), | |
1129 map_(map), | |
1130 true_block_id_(true_block_id), | |
1131 false_block_id_(false_block_id) { } | |
1132 | 1126 |
1133 DECLARE_CONCRETE_INSTRUCTION(CmpMapAndBranch, "cmp-map-and-branch") | 1127 DECLARE_CONCRETE_INSTRUCTION(CmpMapAndBranch, "cmp-map-and-branch") |
| 1128 DECLARE_HYDROGEN_ACCESSOR(CompareMapAndBranch) |
1134 | 1129 |
1135 virtual bool IsControl() const { return true; } | 1130 virtual bool IsControl() const { return true; } |
1136 | 1131 |
1137 Handle<Map> map() const { return map_; } | 1132 LOperand* temp() const { return temp_; } |
1138 int true_block_id() const { return true_block_id_; } | 1133 Handle<Map> map() const { return hydrogen()->map(); } |
1139 int false_block_id() const { return false_block_id_; } | 1134 int true_block_id() const { |
| 1135 return hydrogen()->true_destination()->block_id(); |
| 1136 } |
| 1137 int false_block_id() const { |
| 1138 return hydrogen()->false_destination()->block_id(); |
| 1139 } |
1140 | 1140 |
1141 private: | 1141 private: |
1142 Handle<Map> map_; | 1142 LOperand* temp_; |
1143 int true_block_id_; | |
1144 int false_block_id_; | |
1145 }; | 1143 }; |
1146 | 1144 |
1147 | 1145 |
1148 class LJSArrayLength: public LUnaryOperation { | 1146 class LJSArrayLength: public LUnaryOperation { |
1149 public: | 1147 public: |
1150 explicit LJSArrayLength(LOperand* input) : LUnaryOperation(input) { } | 1148 explicit LJSArrayLength(LOperand* input) : LUnaryOperation(input) { } |
1151 | 1149 |
1152 DECLARE_CONCRETE_INSTRUCTION(JSArrayLength, "js-array-length") | 1150 DECLARE_CONCRETE_INSTRUCTION(JSArrayLength, "js-array-length") |
1153 DECLARE_HYDROGEN_ACCESSOR(JSArrayLength) | 1151 DECLARE_HYDROGEN_ACCESSOR(JSArrayLength) |
1154 }; | 1152 }; |
(...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1671 public: | 1669 public: |
1672 explicit LCheckMap(LOperand* use) : LUnaryOperation(use) { } | 1670 explicit LCheckMap(LOperand* use) : LUnaryOperation(use) { } |
1673 | 1671 |
1674 DECLARE_CONCRETE_INSTRUCTION(CheckMap, "check-map") | 1672 DECLARE_CONCRETE_INSTRUCTION(CheckMap, "check-map") |
1675 DECLARE_HYDROGEN_ACCESSOR(CheckMap) | 1673 DECLARE_HYDROGEN_ACCESSOR(CheckMap) |
1676 }; | 1674 }; |
1677 | 1675 |
1678 | 1676 |
1679 class LCheckPrototypeMaps: public LInstruction { | 1677 class LCheckPrototypeMaps: public LInstruction { |
1680 public: | 1678 public: |
1681 LCheckPrototypeMaps(LOperand* temp, | 1679 LCheckPrototypeMaps(LOperand* temp1, |
| 1680 LOperand* temp2, |
1682 Handle<JSObject> holder, | 1681 Handle<JSObject> holder, |
1683 Handle<Map> receiver_map) | 1682 Handle<Map> receiver_map) |
1684 : temp_(temp), | 1683 : temp1_(temp1), |
| 1684 temp2_(temp2), |
1685 holder_(holder), | 1685 holder_(holder), |
1686 receiver_map_(receiver_map) { } | 1686 receiver_map_(receiver_map) { } |
1687 | 1687 |
1688 DECLARE_CONCRETE_INSTRUCTION(CheckPrototypeMaps, "check-prototype-maps") | 1688 DECLARE_CONCRETE_INSTRUCTION(CheckPrototypeMaps, "check-prototype-maps") |
1689 | 1689 |
1690 LOperand* temp() const { return temp_; } | 1690 LOperand* temp1() const { return temp1_; } |
| 1691 LOperand* temp2() const { return temp2_; } |
1691 Handle<JSObject> holder() const { return holder_; } | 1692 Handle<JSObject> holder() const { return holder_; } |
1692 Handle<Map> receiver_map() const { return receiver_map_; } | 1693 Handle<Map> receiver_map() const { return receiver_map_; } |
1693 | 1694 |
1694 private: | 1695 private: |
1695 LOperand* temp_; | 1696 LOperand* temp1_; |
| 1697 LOperand* temp2_; |
1696 Handle<JSObject> holder_; | 1698 Handle<JSObject> holder_; |
1697 Handle<Map> receiver_map_; | 1699 Handle<Map> receiver_map_; |
1698 }; | 1700 }; |
1699 | 1701 |
1700 | 1702 |
1701 class LCheckSmi: public LUnaryOperation { | 1703 class LCheckSmi: public LUnaryOperation { |
1702 public: | 1704 public: |
1703 LCheckSmi(LOperand* use, Condition condition) | 1705 LCheckSmi(LOperand* use, Condition condition) |
1704 : LUnaryOperation(use), condition_(condition) { } | 1706 : LUnaryOperation(use), condition_(condition) { } |
1705 | 1707 |
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2129 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2131 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2130 }; | 2132 }; |
2131 | 2133 |
2132 #undef DECLARE_HYDROGEN_ACCESSOR | 2134 #undef DECLARE_HYDROGEN_ACCESSOR |
2133 #undef DECLARE_INSTRUCTION | 2135 #undef DECLARE_INSTRUCTION |
2134 #undef DECLARE_CONCRETE_INSTRUCTION | 2136 #undef DECLARE_CONCRETE_INSTRUCTION |
2135 | 2137 |
2136 } } // namespace v8::internal | 2138 } } // namespace v8::internal |
2137 | 2139 |
2138 #endif // V8_ARM_LITHIUM_ARM_H_ | 2140 #endif // V8_ARM_LITHIUM_ARM_H_ |
OLD | NEW |