| 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 935 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 946 | 946 |
| 947 HArgumentsObject* arguments_object_; | 947 HArgumentsObject* arguments_object_; |
| 948 HArgumentsElements* arguments_elements_; | 948 HArgumentsElements* arguments_elements_; |
| 949 | 949 |
| 950 FunctionState* outer_; | 950 FunctionState* outer_; |
| 951 }; | 951 }; |
| 952 | 952 |
| 953 | 953 |
| 954 class HIfContinuation V8_FINAL { | 954 class HIfContinuation V8_FINAL { |
| 955 public: | 955 public: |
| 956 HIfContinuation() : continuation_captured_(false) {} | 956 HIfContinuation() |
| 957 : continuation_captured_(false), |
| 958 true_branch_(NULL), |
| 959 false_branch_(NULL) {} |
| 957 HIfContinuation(HBasicBlock* true_branch, | 960 HIfContinuation(HBasicBlock* true_branch, |
| 958 HBasicBlock* false_branch) | 961 HBasicBlock* false_branch) |
| 959 : continuation_captured_(true), true_branch_(true_branch), | 962 : continuation_captured_(true), true_branch_(true_branch), |
| 960 false_branch_(false_branch) {} | 963 false_branch_(false_branch) {} |
| 961 ~HIfContinuation() { ASSERT(!continuation_captured_); } | 964 ~HIfContinuation() { ASSERT(!continuation_captured_); } |
| 962 | 965 |
| 963 void Capture(HBasicBlock* true_branch, | 966 void Capture(HBasicBlock* true_branch, |
| 964 HBasicBlock* false_branch) { | 967 HBasicBlock* false_branch) { |
| 965 ASSERT(!continuation_captured_); | 968 ASSERT(!continuation_captured_); |
| 966 true_branch_ = true_branch; | 969 true_branch_ = true_branch; |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1246 int position() const { return position_; } | 1249 int position() const { return position_; } |
| 1247 | 1250 |
| 1248 protected: | 1251 protected: |
| 1249 virtual bool BuildGraph() = 0; | 1252 virtual bool BuildGraph() = 0; |
| 1250 | 1253 |
| 1251 HBasicBlock* CreateBasicBlock(HEnvironment* env); | 1254 HBasicBlock* CreateBasicBlock(HEnvironment* env); |
| 1252 HBasicBlock* CreateLoopHeaderBlock(); | 1255 HBasicBlock* CreateLoopHeaderBlock(); |
| 1253 | 1256 |
| 1254 HValue* BuildCheckHeapObject(HValue* object); | 1257 HValue* BuildCheckHeapObject(HValue* object); |
| 1255 HValue* BuildCheckMap(HValue* obj, Handle<Map> map); | 1258 HValue* BuildCheckMap(HValue* obj, Handle<Map> map); |
| 1259 HValue* BuildCheckString(HValue* string); |
| 1256 HValue* BuildWrapReceiver(HValue* object, HValue* function); | 1260 HValue* BuildWrapReceiver(HValue* object, HValue* function); |
| 1257 | 1261 |
| 1258 // Building common constructs | 1262 // Building common constructs |
| 1259 HValue* BuildCheckForCapacityGrow(HValue* object, | 1263 HValue* BuildCheckForCapacityGrow(HValue* object, |
| 1260 HValue* elements, | 1264 HValue* elements, |
| 1261 ElementsKind kind, | 1265 ElementsKind kind, |
| 1262 HValue* length, | 1266 HValue* length, |
| 1263 HValue* key, | 1267 HValue* key, |
| 1264 bool is_js_array); | 1268 bool is_js_array); |
| 1265 | 1269 |
| 1266 HValue* BuildCopyElementsOnWrite(HValue* object, | 1270 HValue* BuildCopyElementsOnWrite(HValue* object, |
| 1267 HValue* elements, | 1271 HValue* elements, |
| 1268 ElementsKind kind, | 1272 ElementsKind kind, |
| 1269 HValue* length); | 1273 HValue* length); |
| 1270 | 1274 |
| 1271 void BuildTransitionElementsKind(HValue* object, | 1275 void BuildTransitionElementsKind(HValue* object, |
| 1272 HValue* map, | 1276 HValue* map, |
| 1273 ElementsKind from_kind, | 1277 ElementsKind from_kind, |
| 1274 ElementsKind to_kind, | 1278 ElementsKind to_kind, |
| 1275 bool is_jsarray); | 1279 bool is_jsarray); |
| 1276 | 1280 |
| 1277 HValue* BuildNumberToString(HValue* object, Handle<Type> type); | 1281 HValue* BuildNumberToString(HValue* object, Handle<Type> type); |
| 1278 | 1282 |
| 1283 HValue* BuildUncheckedDictionaryElementLoad(HValue* receiver, |
| 1284 HValue* key); |
| 1285 |
| 1279 // Computes the size for a sequential string of the given length and encoding. | 1286 // Computes the size for a sequential string of the given length and encoding. |
| 1280 HValue* BuildSeqStringSizeFor(HValue* length, | 1287 HValue* BuildSeqStringSizeFor(HValue* length, |
| 1281 String::Encoding encoding); | 1288 String::Encoding encoding); |
| 1282 // Copies characters from one sequential string to another. | 1289 // Copies characters from one sequential string to another. |
| 1283 void BuildCopySeqStringChars(HValue* src, | 1290 void BuildCopySeqStringChars(HValue* src, |
| 1284 HValue* src_offset, | 1291 HValue* src_offset, |
| 1285 String::Encoding src_encoding, | 1292 String::Encoding src_encoding, |
| 1286 HValue* dst, | 1293 HValue* dst, |
| 1287 HValue* dst_offset, | 1294 HValue* dst_offset, |
| 1288 String::Encoding dst_encoding, | 1295 String::Encoding dst_encoding, |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1325 store_map->SkipWriteBarrier(); | 1332 store_map->SkipWriteBarrier(); |
| 1326 return store_map; | 1333 return store_map; |
| 1327 } | 1334 } |
| 1328 HLoadNamedField* AddLoadElements(HValue* object); | 1335 HLoadNamedField* AddLoadElements(HValue* object); |
| 1329 | 1336 |
| 1330 bool MatchRotateRight(HValue* left, | 1337 bool MatchRotateRight(HValue* left, |
| 1331 HValue* right, | 1338 HValue* right, |
| 1332 HValue** operand, | 1339 HValue** operand, |
| 1333 HValue** shift_amount); | 1340 HValue** shift_amount); |
| 1334 | 1341 |
| 1335 HInstruction* BuildBinaryOperation(Token::Value op, | 1342 HValue* BuildBinaryOperation(Token::Value op, |
| 1336 HValue* left, | 1343 HValue* left, |
| 1337 HValue* right, | 1344 HValue* right, |
| 1338 Handle<Type> left_type, | 1345 Handle<Type> left_type, |
| 1339 Handle<Type> right_type, | 1346 Handle<Type> right_type, |
| 1340 Handle<Type> result_type, | 1347 Handle<Type> result_type, |
| 1341 Maybe<int> fixed_right_arg, | 1348 Maybe<int> fixed_right_arg); |
| 1342 bool binop_stub = false); | |
| 1343 | 1349 |
| 1344 HLoadNamedField* AddLoadFixedArrayLength(HValue *object); | 1350 HLoadNamedField* AddLoadFixedArrayLength(HValue *object); |
| 1345 | 1351 |
| 1346 HValue* AddLoadJSBuiltin(Builtins::JavaScript builtin); | 1352 HValue* AddLoadJSBuiltin(Builtins::JavaScript builtin); |
| 1347 | 1353 |
| 1348 HValue* EnforceNumberType(HValue* number, Handle<Type> expected); | 1354 HValue* EnforceNumberType(HValue* number, Handle<Type> expected); |
| 1349 HValue* TruncateToNumber(HValue* value, Handle<Type>* expected); | 1355 HValue* TruncateToNumber(HValue* value, Handle<Type>* expected); |
| 1350 | 1356 |
| 1351 void FinishExitWithHardDeoptimization(const char* reason, | 1357 void FinishExitWithHardDeoptimization(const char* reason, |
| 1352 HBasicBlock* continuation); | 1358 HBasicBlock* continuation); |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1486 // // continues after else code of if_whatever or if_something. | 1492 // // continues after else code of if_whatever or if_something. |
| 1487 // ... | 1493 // ... |
| 1488 // if_finally.End(); | 1494 // if_finally.End(); |
| 1489 void JoinContinuation(HIfContinuation* continuation); | 1495 void JoinContinuation(HIfContinuation* continuation); |
| 1490 | 1496 |
| 1491 void Then(); | 1497 void Then(); |
| 1492 void Else(); | 1498 void Else(); |
| 1493 void End(); | 1499 void End(); |
| 1494 | 1500 |
| 1495 void Deopt(const char* reason); | 1501 void Deopt(const char* reason); |
| 1502 void ThenDeopt(const char* reason) { |
| 1503 Then(); |
| 1504 Deopt(reason); |
| 1505 } |
| 1496 void ElseDeopt(const char* reason) { | 1506 void ElseDeopt(const char* reason) { |
| 1497 Else(); | 1507 Else(); |
| 1498 Deopt(reason); | 1508 Deopt(reason); |
| 1499 } | 1509 } |
| 1500 | 1510 |
| 1501 void Return(HValue* value); | 1511 void Return(HValue* value); |
| 1502 | 1512 |
| 1503 private: | 1513 private: |
| 1504 HControlInstruction* AddCompare(HControlInstruction* compare); | 1514 HControlInstruction* AddCompare(HControlInstruction* compare); |
| 1505 | 1515 |
| 1506 HGraphBuilder* builder() const { return builder_; } | 1516 HGraphBuilder* builder() const { return builder_; } |
| 1507 | 1517 |
| 1518 void AddMergeAtJoinBlock(bool deopt); |
| 1519 |
| 1520 void Finish(); |
| 1521 void Finish(HBasicBlock** then_continuation, |
| 1522 HBasicBlock** else_continuation); |
| 1523 |
| 1524 class MergeAtJoinBlock : public ZoneObject { |
| 1525 public: |
| 1526 MergeAtJoinBlock(HBasicBlock* block, |
| 1527 bool deopt, |
| 1528 MergeAtJoinBlock* next) |
| 1529 : block_(block), |
| 1530 deopt_(deopt), |
| 1531 next_(next) {} |
| 1532 HBasicBlock* block_; |
| 1533 bool deopt_; |
| 1534 MergeAtJoinBlock* next_; |
| 1535 }; |
| 1536 |
| 1508 HGraphBuilder* builder_; | 1537 HGraphBuilder* builder_; |
| 1509 bool finished_ : 1; | 1538 bool finished_ : 1; |
| 1510 bool deopt_then_ : 1; | |
| 1511 bool deopt_else_ : 1; | |
| 1512 bool did_then_ : 1; | 1539 bool did_then_ : 1; |
| 1513 bool did_else_ : 1; | 1540 bool did_else_ : 1; |
| 1541 bool did_else_if_ : 1; |
| 1514 bool did_and_ : 1; | 1542 bool did_and_ : 1; |
| 1515 bool did_or_ : 1; | 1543 bool did_or_ : 1; |
| 1516 bool captured_ : 1; | 1544 bool captured_ : 1; |
| 1517 bool needs_compare_ : 1; | 1545 bool needs_compare_ : 1; |
| 1546 bool pending_merge_block_ : 1; |
| 1518 HBasicBlock* first_true_block_; | 1547 HBasicBlock* first_true_block_; |
| 1519 HBasicBlock* last_true_block_; | |
| 1520 HBasicBlock* first_false_block_; | 1548 HBasicBlock* first_false_block_; |
| 1521 HBasicBlock* split_edge_merge_block_; | 1549 HBasicBlock* split_edge_merge_block_; |
| 1522 HBasicBlock* merge_block_; | 1550 MergeAtJoinBlock* merge_at_join_blocks_; |
| 1551 int normal_merge_at_join_block_count_; |
| 1552 int deopt_merge_at_join_block_count_; |
| 1523 }; | 1553 }; |
| 1524 | 1554 |
| 1525 class LoopBuilder V8_FINAL { | 1555 class LoopBuilder V8_FINAL { |
| 1526 public: | 1556 public: |
| 1527 enum Direction { | 1557 enum Direction { |
| 1528 kPreIncrement, | 1558 kPreIncrement, |
| 1529 kPostIncrement, | 1559 kPostIncrement, |
| 1530 kPreDecrement, | 1560 kPreDecrement, |
| 1531 kPostDecrement | 1561 kPostDecrement |
| 1532 }; | 1562 }; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1576 class JSArrayBuilder V8_FINAL { | 1606 class JSArrayBuilder V8_FINAL { |
| 1577 public: | 1607 public: |
| 1578 JSArrayBuilder(HGraphBuilder* builder, | 1608 JSArrayBuilder(HGraphBuilder* builder, |
| 1579 ElementsKind kind, | 1609 ElementsKind kind, |
| 1580 HValue* allocation_site_payload, | 1610 HValue* allocation_site_payload, |
| 1581 HValue* constructor_function, | 1611 HValue* constructor_function, |
| 1582 AllocationSiteOverrideMode override_mode); | 1612 AllocationSiteOverrideMode override_mode); |
| 1583 | 1613 |
| 1584 JSArrayBuilder(HGraphBuilder* builder, | 1614 JSArrayBuilder(HGraphBuilder* builder, |
| 1585 ElementsKind kind, | 1615 ElementsKind kind, |
| 1586 HValue* constructor_function); | 1616 HValue* constructor_function = NULL); |
| 1617 |
| 1618 enum FillMode { |
| 1619 DONT_FILL_WITH_HOLE, |
| 1620 FILL_WITH_HOLE |
| 1621 }; |
| 1622 |
| 1623 ElementsKind kind() { return kind_; } |
| 1587 | 1624 |
| 1588 HValue* AllocateEmptyArray(); | 1625 HValue* AllocateEmptyArray(); |
| 1589 HValue* AllocateArray(HValue* capacity, HValue* length_field, | 1626 HValue* AllocateArray(HValue* capacity, HValue* length_field, |
| 1590 bool fill_with_hole); | 1627 FillMode fill_mode = FILL_WITH_HOLE); |
| 1591 HValue* GetElementsLocation() { return elements_location_; } | 1628 HValue* GetElementsLocation() { return elements_location_; } |
| 1629 HValue* EmitMapCode(); |
| 1592 | 1630 |
| 1593 private: | 1631 private: |
| 1594 Zone* zone() const { return builder_->zone(); } | 1632 Zone* zone() const { return builder_->zone(); } |
| 1595 int elements_size() const { | 1633 int elements_size() const { |
| 1596 return IsFastDoubleElementsKind(kind_) ? kDoubleSize : kPointerSize; | 1634 return IsFastDoubleElementsKind(kind_) ? kDoubleSize : kPointerSize; |
| 1597 } | 1635 } |
| 1598 HGraphBuilder* builder() { return builder_; } | 1636 HGraphBuilder* builder() { return builder_; } |
| 1599 HGraph* graph() { return builder_->graph(); } | 1637 HGraph* graph() { return builder_->graph(); } |
| 1600 int initial_capacity() { | 1638 int initial_capacity() { |
| 1601 STATIC_ASSERT(JSArray::kPreallocatedArrayElements > 0); | 1639 STATIC_ASSERT(JSArray::kPreallocatedArrayElements > 0); |
| 1602 return JSArray::kPreallocatedArrayElements; | 1640 return JSArray::kPreallocatedArrayElements; |
| 1603 } | 1641 } |
| 1604 | 1642 |
| 1605 HValue* EmitMapCode(); | |
| 1606 HValue* EmitInternalMapCode(); | 1643 HValue* EmitInternalMapCode(); |
| 1607 HValue* EstablishEmptyArrayAllocationSize(); | 1644 HValue* EstablishEmptyArrayAllocationSize(); |
| 1608 HValue* EstablishAllocationSize(HValue* length_node); | 1645 HValue* EstablishAllocationSize(HValue* length_node); |
| 1609 HValue* AllocateArray(HValue* size_in_bytes, HValue* capacity, | 1646 HValue* AllocateArray(HValue* size_in_bytes, HValue* capacity, |
| 1610 HValue* length_field, bool fill_with_hole); | 1647 HValue* length_field, |
| 1648 FillMode fill_mode = FILL_WITH_HOLE); |
| 1611 | 1649 |
| 1612 HGraphBuilder* builder_; | 1650 HGraphBuilder* builder_; |
| 1613 ElementsKind kind_; | 1651 ElementsKind kind_; |
| 1614 AllocationSiteMode mode_; | 1652 AllocationSiteMode mode_; |
| 1615 HValue* allocation_site_payload_; | 1653 HValue* allocation_site_payload_; |
| 1616 HValue* constructor_function_; | 1654 HValue* constructor_function_; |
| 1617 HInnerAllocatedObject* elements_location_; | 1655 HInnerAllocatedObject* elements_location_; |
| 1618 }; | 1656 }; |
| 1619 | 1657 |
| 1658 HValue* BuildAllocateArrayFromLength(JSArrayBuilder* array_builder, |
| 1659 HValue* length_argument); |
| 1660 |
| 1620 HValue* BuildAllocateElements(ElementsKind kind, | 1661 HValue* BuildAllocateElements(ElementsKind kind, |
| 1621 HValue* capacity); | 1662 HValue* capacity); |
| 1622 | 1663 |
| 1623 void BuildInitializeElementsHeader(HValue* elements, | 1664 void BuildInitializeElementsHeader(HValue* elements, |
| 1624 ElementsKind kind, | 1665 ElementsKind kind, |
| 1625 HValue* capacity); | 1666 HValue* capacity); |
| 1626 | 1667 |
| 1627 HValue* BuildAllocateElementsAndInitializeElementsHeader(ElementsKind kind, | 1668 HValue* BuildAllocateElementsAndInitializeElementsHeader(ElementsKind kind, |
| 1628 HValue* capacity); | 1669 HValue* capacity); |
| 1629 | 1670 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1656 ElementsKind to_elements_kind, | 1697 ElementsKind to_elements_kind, |
| 1657 HValue* length, | 1698 HValue* length, |
| 1658 HValue* capacity); | 1699 HValue* capacity); |
| 1659 | 1700 |
| 1660 HValue* BuildCloneShallowArray(HValue* boilerplate, | 1701 HValue* BuildCloneShallowArray(HValue* boilerplate, |
| 1661 HValue* allocation_site, | 1702 HValue* allocation_site, |
| 1662 AllocationSiteMode mode, | 1703 AllocationSiteMode mode, |
| 1663 ElementsKind kind, | 1704 ElementsKind kind, |
| 1664 int length); | 1705 int length); |
| 1665 | 1706 |
| 1707 HValue* BuildElementIndexHash(HValue* index); |
| 1708 |
| 1666 void BuildCompareNil( | 1709 void BuildCompareNil( |
| 1667 HValue* value, | 1710 HValue* value, |
| 1668 Handle<Type> type, | 1711 Handle<Type> type, |
| 1669 HIfContinuation* continuation); | 1712 HIfContinuation* continuation); |
| 1670 | 1713 |
| 1671 HValue* BuildCreateAllocationMemento(HValue* previous_object, | 1714 HValue* BuildCreateAllocationMemento(HValue* previous_object, |
| 1672 int previous_object_size, | 1715 int previous_object_size, |
| 1673 HValue* payload); | 1716 HValue* payload); |
| 1674 | 1717 |
| 1675 HInstruction* BuildConstantMapCheck(Handle<JSObject> constant, | 1718 HInstruction* BuildConstantMapCheck(Handle<JSObject> constant, |
| 1676 CompilationInfo* info); | 1719 CompilationInfo* info); |
| 1677 HInstruction* BuildCheckPrototypeMaps(Handle<JSObject> prototype, | 1720 HInstruction* BuildCheckPrototypeMaps(Handle<JSObject> prototype, |
| 1678 Handle<JSObject> holder); | 1721 Handle<JSObject> holder); |
| 1679 | 1722 |
| 1680 HInstruction* BuildGetNativeContext(); | 1723 HInstruction* BuildGetNativeContext(); |
| 1681 HInstruction* BuildGetArrayFunction(); | 1724 HInstruction* BuildGetArrayFunction(); |
| 1682 | 1725 |
| 1683 protected: | 1726 protected: |
| 1684 void SetSourcePosition(int position) { | 1727 void SetSourcePosition(int position) { |
| 1685 ASSERT(position != RelocInfo::kNoPosition); | 1728 ASSERT(position != RelocInfo::kNoPosition); |
| 1686 position_ = position; | 1729 position_ = position; |
| 1687 } | 1730 } |
| 1688 | 1731 |
| 1689 private: | 1732 private: |
| 1690 HGraphBuilder(); | 1733 HGraphBuilder(); |
| 1691 | 1734 |
| 1735 HValue* BuildUncheckedDictionaryElementLoadHelper( |
| 1736 HValue* elements, |
| 1737 HValue* key, |
| 1738 HValue* hash, |
| 1739 HValue* mask, |
| 1740 int current_probe); |
| 1741 |
| 1692 void PadEnvironmentForContinuation(HBasicBlock* from, | 1742 void PadEnvironmentForContinuation(HBasicBlock* from, |
| 1693 HBasicBlock* continuation); | 1743 HBasicBlock* continuation); |
| 1694 | 1744 |
| 1695 CompilationInfo* info_; | 1745 CompilationInfo* info_; |
| 1696 HGraph* graph_; | 1746 HGraph* graph_; |
| 1697 HBasicBlock* current_block_; | 1747 HBasicBlock* current_block_; |
| 1698 int position_; | 1748 int position_; |
| 1699 }; | 1749 }; |
| 1700 | 1750 |
| 1701 | 1751 |
| (...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2094 BailoutId ast_id); | 2144 BailoutId ast_id); |
| 2095 | 2145 |
| 2096 void HandlePropertyAssignment(Assignment* expr); | 2146 void HandlePropertyAssignment(Assignment* expr); |
| 2097 void HandleCompoundAssignment(Assignment* expr); | 2147 void HandleCompoundAssignment(Assignment* expr); |
| 2098 void HandlePolymorphicLoadNamedField(BailoutId ast_id, | 2148 void HandlePolymorphicLoadNamedField(BailoutId ast_id, |
| 2099 BailoutId return_id, | 2149 BailoutId return_id, |
| 2100 HValue* object, | 2150 HValue* object, |
| 2101 SmallMapList* types, | 2151 SmallMapList* types, |
| 2102 Handle<String> name); | 2152 Handle<String> name); |
| 2103 | 2153 |
| 2154 bool IsCallNewArrayInlineable(CallNew* expr); |
| 2155 void BuildInlinedCallNewArray(CallNew* expr); |
| 2156 |
| 2157 void VisitDataViewInitialize(CallRuntime* expr); |
| 2158 |
| 2104 class PropertyAccessInfo { | 2159 class PropertyAccessInfo { |
| 2105 public: | 2160 public: |
| 2106 PropertyAccessInfo(Isolate* isolate, Handle<Map> map, Handle<String> name) | 2161 PropertyAccessInfo(Isolate* isolate, Handle<Map> map, Handle<String> name) |
| 2107 : lookup_(isolate), | 2162 : lookup_(isolate), |
| 2108 map_(map), | 2163 map_(map), |
| 2109 name_(name), | 2164 name_(name), |
| 2110 access_(HObjectAccess::ForMap()) { } | 2165 access_(HObjectAccess::ForMap()) { } |
| 2111 | 2166 |
| 2112 // Checkes whether this PropertyAccessInfo can be handled as a monomorphic | 2167 // Checkes whether this PropertyAccessInfo can be handled as a monomorphic |
| 2113 // load named. It additionally fills in the fields necessary to generate the | 2168 // load named. It additionally fills in the fields necessary to generate the |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2212 Handle<String> name); | 2267 Handle<String> name); |
| 2213 void HandleLiteralCompareTypeof(CompareOperation* expr, | 2268 void HandleLiteralCompareTypeof(CompareOperation* expr, |
| 2214 Expression* sub_expr, | 2269 Expression* sub_expr, |
| 2215 Handle<String> check); | 2270 Handle<String> check); |
| 2216 void HandleLiteralCompareNil(CompareOperation* expr, | 2271 void HandleLiteralCompareNil(CompareOperation* expr, |
| 2217 Expression* sub_expr, | 2272 Expression* sub_expr, |
| 2218 NilValue nil); | 2273 NilValue nil); |
| 2219 | 2274 |
| 2220 HInstruction* BuildStringCharCodeAt(HValue* string, | 2275 HInstruction* BuildStringCharCodeAt(HValue* string, |
| 2221 HValue* index); | 2276 HValue* index); |
| 2222 HInstruction* BuildBinaryOperation(BinaryOperation* expr, | 2277 HValue* BuildBinaryOperation(BinaryOperation* expr, |
| 2223 HValue* left, | 2278 HValue* left, |
| 2224 HValue* right); | 2279 HValue* right); |
| 2225 HInstruction* BuildIncrement(bool returns_original_input, | 2280 HInstruction* BuildIncrement(bool returns_original_input, |
| 2226 CountOperation* expr); | 2281 CountOperation* expr); |
| 2227 HInstruction* BuildLoadKeyedGeneric(HValue* object, | 2282 HInstruction* BuildLoadKeyedGeneric(HValue* object, |
| 2228 HValue* key); | 2283 HValue* key); |
| 2229 | 2284 |
| 2230 HInstruction* TryBuildConsolidatedElementLoad(HValue* object, | 2285 HInstruction* TryBuildConsolidatedElementLoad(HValue* object, |
| 2231 HValue* key, | 2286 HValue* key, |
| 2232 HValue* val, | 2287 HValue* val, |
| 2233 SmallMapList* maps); | 2288 SmallMapList* maps); |
| 2234 | 2289 |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2522 } | 2577 } |
| 2523 | 2578 |
| 2524 private: | 2579 private: |
| 2525 HGraphBuilder* builder_; | 2580 HGraphBuilder* builder_; |
| 2526 }; | 2581 }; |
| 2527 | 2582 |
| 2528 | 2583 |
| 2529 } } // namespace v8::internal | 2584 } } // namespace v8::internal |
| 2530 | 2585 |
| 2531 #endif // V8_HYDROGEN_H_ | 2586 #endif // V8_HYDROGEN_H_ |
| OLD | NEW |