| 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 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 }; | 476 }; |
| 477 | 477 |
| 478 | 478 |
| 479 class LParameter V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 479 class LParameter V8_FINAL : public LTemplateInstruction<1, 0, 0> { |
| 480 public: | 480 public: |
| 481 virtual bool HasInterestingComment(LCodeGen* gen) const { return false; } | 481 virtual bool HasInterestingComment(LCodeGen* gen) const { return false; } |
| 482 DECLARE_CONCRETE_INSTRUCTION(Parameter, "parameter") | 482 DECLARE_CONCRETE_INSTRUCTION(Parameter, "parameter") |
| 483 }; | 483 }; |
| 484 | 484 |
| 485 | 485 |
| 486 class LCallStub V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 486 class LCallStub V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 487 public: | 487 public: |
| 488 explicit LCallStub(LOperand* context) { |
| 489 inputs_[0] = context; |
| 490 } |
| 491 |
| 492 LOperand* context() { return inputs_[0]; } |
| 493 |
| 488 DECLARE_CONCRETE_INSTRUCTION(CallStub, "call-stub") | 494 DECLARE_CONCRETE_INSTRUCTION(CallStub, "call-stub") |
| 489 DECLARE_HYDROGEN_ACCESSOR(CallStub) | 495 DECLARE_HYDROGEN_ACCESSOR(CallStub) |
| 490 | 496 |
| 491 TranscendentalCache::Type transcendental_type() { | 497 TranscendentalCache::Type transcendental_type() { |
| 492 return hydrogen()->transcendental_type(); | 498 return hydrogen()->transcendental_type(); |
| 493 } | 499 } |
| 494 }; | 500 }; |
| 495 | 501 |
| 496 | 502 |
| 497 class LUnknownOSRValue V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 503 class LUnknownOSRValue V8_FINAL : public LTemplateInstruction<1, 0, 0> { |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 778 } | 784 } |
| 779 | 785 |
| 780 LOperand* value() { return inputs_[0]; } | 786 LOperand* value() { return inputs_[0]; } |
| 781 LOperand* temp() { return temps_[0]; } | 787 LOperand* temp() { return temps_[0]; } |
| 782 | 788 |
| 783 DECLARE_CONCRETE_INSTRUCTION(MathRound, "math-round") | 789 DECLARE_CONCRETE_INSTRUCTION(MathRound, "math-round") |
| 784 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) | 790 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) |
| 785 }; | 791 }; |
| 786 | 792 |
| 787 | 793 |
| 788 class LMathAbs V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 794 class LMathAbs V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 789 public: | 795 public: |
| 790 explicit LMathAbs(LOperand* value) { | 796 LMathAbs(LOperand* context, LOperand* value) { |
| 797 inputs_[1] = context; |
| 791 inputs_[0] = value; | 798 inputs_[0] = value; |
| 792 } | 799 } |
| 793 | 800 |
| 801 LOperand* context() { return inputs_[1]; } |
| 794 LOperand* value() { return inputs_[0]; } | 802 LOperand* value() { return inputs_[0]; } |
| 795 | 803 |
| 796 DECLARE_CONCRETE_INSTRUCTION(MathAbs, "math-abs") | 804 DECLARE_CONCRETE_INSTRUCTION(MathAbs, "math-abs") |
| 797 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) | 805 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) |
| 798 }; | 806 }; |
| 799 | 807 |
| 800 | 808 |
| 801 class LMathLog V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 809 class LMathLog V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 802 public: | 810 public: |
| 803 explicit LMathLog(LOperand* value) { | 811 explicit LMathLog(LOperand* value) { |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 982 LOperand* temp() { return temps_[0]; } | 990 LOperand* temp() { return temps_[0]; } |
| 983 | 991 |
| 984 DECLARE_CONCRETE_INSTRUCTION(IsUndetectableAndBranch, | 992 DECLARE_CONCRETE_INSTRUCTION(IsUndetectableAndBranch, |
| 985 "is-undetectable-and-branch") | 993 "is-undetectable-and-branch") |
| 986 DECLARE_HYDROGEN_ACCESSOR(IsUndetectableAndBranch) | 994 DECLARE_HYDROGEN_ACCESSOR(IsUndetectableAndBranch) |
| 987 | 995 |
| 988 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 996 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 989 }; | 997 }; |
| 990 | 998 |
| 991 | 999 |
| 992 class LStringCompareAndBranch V8_FINAL : public LControlInstruction<2, 0> { | 1000 class LStringCompareAndBranch V8_FINAL : public LControlInstruction<3, 0> { |
| 993 public: | 1001 public: |
| 994 LStringCompareAndBranch(LOperand* left, LOperand* right) { | 1002 LStringCompareAndBranch(LOperand* context, LOperand* left, LOperand* right) { |
| 995 inputs_[0] = left; | 1003 inputs_[0] = context; |
| 996 inputs_[1] = right; | 1004 inputs_[1] = left; |
| 1005 inputs_[2] = right; |
| 997 } | 1006 } |
| 998 | 1007 |
| 999 LOperand* left() { return inputs_[0]; } | 1008 LOperand* context() { return inputs_[0]; } |
| 1000 LOperand* right() { return inputs_[1]; } | 1009 LOperand* left() { return inputs_[1]; } |
| 1010 LOperand* right() { return inputs_[2]; } |
| 1001 | 1011 |
| 1002 DECLARE_CONCRETE_INSTRUCTION(StringCompareAndBranch, | 1012 DECLARE_CONCRETE_INSTRUCTION(StringCompareAndBranch, |
| 1003 "string-compare-and-branch") | 1013 "string-compare-and-branch") |
| 1004 DECLARE_HYDROGEN_ACCESSOR(StringCompareAndBranch) | 1014 DECLARE_HYDROGEN_ACCESSOR(StringCompareAndBranch) |
| 1005 | 1015 |
| 1006 Token::Value op() const { return hydrogen()->token(); } | 1016 Token::Value op() const { return hydrogen()->token(); } |
| 1007 | 1017 |
| 1008 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1018 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1009 }; | 1019 }; |
| 1010 | 1020 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1066 LOperand* temp() { return temps_[0]; } | 1076 LOperand* temp() { return temps_[0]; } |
| 1067 | 1077 |
| 1068 DECLARE_CONCRETE_INSTRUCTION(ClassOfTestAndBranch, | 1078 DECLARE_CONCRETE_INSTRUCTION(ClassOfTestAndBranch, |
| 1069 "class-of-test-and-branch") | 1079 "class-of-test-and-branch") |
| 1070 DECLARE_HYDROGEN_ACCESSOR(ClassOfTestAndBranch) | 1080 DECLARE_HYDROGEN_ACCESSOR(ClassOfTestAndBranch) |
| 1071 | 1081 |
| 1072 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1082 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1073 }; | 1083 }; |
| 1074 | 1084 |
| 1075 | 1085 |
| 1076 class LCmpT V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1086 class LCmpT V8_FINAL : public LTemplateInstruction<1, 3, 0> { |
| 1077 public: | 1087 public: |
| 1078 LCmpT(LOperand* left, LOperand* right) { | 1088 LCmpT(LOperand* context, LOperand* left, LOperand* right) { |
| 1079 inputs_[0] = left; | 1089 inputs_[0] = context; |
| 1080 inputs_[1] = right; | 1090 inputs_[1] = left; |
| 1091 inputs_[2] = right; |
| 1081 } | 1092 } |
| 1082 | 1093 |
| 1083 LOperand* left() { return inputs_[0]; } | 1094 LOperand* left() { return inputs_[1]; } |
| 1084 LOperand* right() { return inputs_[1]; } | 1095 LOperand* right() { return inputs_[2]; } |
| 1085 | 1096 |
| 1086 DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t") | 1097 DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t") |
| 1087 DECLARE_HYDROGEN_ACCESSOR(CompareGeneric) | 1098 DECLARE_HYDROGEN_ACCESSOR(CompareGeneric) |
| 1088 | 1099 |
| 1089 Token::Value op() const { return hydrogen()->token(); } | 1100 Token::Value op() const { return hydrogen()->token(); } |
| 1090 }; | 1101 }; |
| 1091 | 1102 |
| 1092 | 1103 |
| 1093 class LInstanceOf V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1104 class LInstanceOf V8_FINAL : public LTemplateInstruction<1, 3, 0> { |
| 1094 public: | 1105 public: |
| 1095 LInstanceOf(LOperand* left, LOperand* right) { | 1106 LInstanceOf(LOperand* context, LOperand* left, LOperand* right) { |
| 1096 inputs_[0] = left; | 1107 inputs_[0] = context; |
| 1097 inputs_[1] = right; | 1108 inputs_[1] = left; |
| 1109 inputs_[2] = right; |
| 1098 } | 1110 } |
| 1099 | 1111 |
| 1100 LOperand* left() { return inputs_[0]; } | 1112 LOperand* context() { return inputs_[0]; } |
| 1101 LOperand* right() { return inputs_[1]; } | 1113 LOperand* left() { return inputs_[1]; } |
| 1114 LOperand* right() { return inputs_[2]; } |
| 1102 | 1115 |
| 1103 DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of") | 1116 DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of") |
| 1104 }; | 1117 }; |
| 1105 | 1118 |
| 1106 | 1119 |
| 1107 class LInstanceOfKnownGlobal V8_FINAL : public LTemplateInstruction<1, 1, 1> { | 1120 class LInstanceOfKnownGlobal V8_FINAL : public LTemplateInstruction<1, 2, 1> { |
| 1108 public: | 1121 public: |
| 1109 LInstanceOfKnownGlobal(LOperand* value, LOperand* temp) { | 1122 LInstanceOfKnownGlobal(LOperand* context, LOperand* value, LOperand* temp) { |
| 1110 inputs_[0] = value; | 1123 inputs_[0] = context; |
| 1124 inputs_[1] = value; |
| 1111 temps_[0] = temp; | 1125 temps_[0] = temp; |
| 1112 } | 1126 } |
| 1113 | 1127 |
| 1114 LOperand* value() { return inputs_[0]; } | 1128 LOperand* context() { return inputs_[0]; } |
| 1129 LOperand* value() { return inputs_[1]; } |
| 1115 LOperand* temp() { return temps_[0]; } | 1130 LOperand* temp() { return temps_[0]; } |
| 1116 | 1131 |
| 1117 DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal, | 1132 DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal, |
| 1118 "instance-of-known-global") | 1133 "instance-of-known-global") |
| 1119 DECLARE_HYDROGEN_ACCESSOR(InstanceOfKnownGlobal) | 1134 DECLARE_HYDROGEN_ACCESSOR(InstanceOfKnownGlobal) |
| 1120 | 1135 |
| 1121 Handle<JSFunction> function() const { return hydrogen()->function(); } | 1136 Handle<JSFunction> function() const { return hydrogen()->function(); } |
| 1122 LEnvironment* GetDeferredLazyDeoptimizationEnvironment() { | 1137 LEnvironment* GetDeferredLazyDeoptimizationEnvironment() { |
| 1123 return lazy_deopt_env_; | 1138 return lazy_deopt_env_; |
| 1124 } | 1139 } |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1385 LOperand* value() { return inputs_[2]; } | 1400 LOperand* value() { return inputs_[2]; } |
| 1386 | 1401 |
| 1387 DECLARE_CONCRETE_INSTRUCTION(SeqStringSetChar, "seq-string-set-char") | 1402 DECLARE_CONCRETE_INSTRUCTION(SeqStringSetChar, "seq-string-set-char") |
| 1388 DECLARE_HYDROGEN_ACCESSOR(SeqStringSetChar) | 1403 DECLARE_HYDROGEN_ACCESSOR(SeqStringSetChar) |
| 1389 | 1404 |
| 1390 private: | 1405 private: |
| 1391 String::Encoding encoding_; | 1406 String::Encoding encoding_; |
| 1392 }; | 1407 }; |
| 1393 | 1408 |
| 1394 | 1409 |
| 1395 class LThrow V8_FINAL : public LTemplateInstruction<0, 1, 0> { | 1410 class LThrow V8_FINAL : public LTemplateInstruction<0, 2, 0> { |
| 1396 public: | 1411 public: |
| 1397 explicit LThrow(LOperand* value) { | 1412 LThrow(LOperand* context, LOperand* value) { |
| 1398 inputs_[0] = value; | 1413 inputs_[0] = context; |
| 1414 inputs_[1] = value; |
| 1399 } | 1415 } |
| 1400 | 1416 |
| 1401 LOperand* value() { return inputs_[0]; } | 1417 LOperand* context() { return inputs_[0]; } |
| 1418 LOperand* value() { return inputs_[1]; } |
| 1402 | 1419 |
| 1403 DECLARE_CONCRETE_INSTRUCTION(Throw, "throw") | 1420 DECLARE_CONCRETE_INSTRUCTION(Throw, "throw") |
| 1404 }; | 1421 }; |
| 1405 | 1422 |
| 1406 | 1423 |
| 1407 class LAddI V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1424 class LAddI V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 1408 public: | 1425 public: |
| 1409 LAddI(LOperand* left, LOperand* right) { | 1426 LAddI(LOperand* left, LOperand* right) { |
| 1410 inputs_[0] = left; | 1427 inputs_[0] = left; |
| 1411 inputs_[1] = right; | 1428 inputs_[1] = right; |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1487 return LInstruction::kArithmeticD; | 1504 return LInstruction::kArithmeticD; |
| 1488 } | 1505 } |
| 1489 virtual void CompileToNative(LCodeGen* generator) V8_OVERRIDE; | 1506 virtual void CompileToNative(LCodeGen* generator) V8_OVERRIDE; |
| 1490 virtual const char* Mnemonic() const V8_OVERRIDE; | 1507 virtual const char* Mnemonic() const V8_OVERRIDE; |
| 1491 | 1508 |
| 1492 private: | 1509 private: |
| 1493 Token::Value op_; | 1510 Token::Value op_; |
| 1494 }; | 1511 }; |
| 1495 | 1512 |
| 1496 | 1513 |
| 1497 class LArithmeticT V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1514 class LArithmeticT V8_FINAL : public LTemplateInstruction<1, 3, 0> { |
| 1498 public: | 1515 public: |
| 1499 LArithmeticT(Token::Value op, LOperand* left, LOperand* right) | 1516 LArithmeticT(Token::Value op, |
| 1517 LOperand* context, |
| 1518 LOperand* left, |
| 1519 LOperand* right) |
| 1500 : op_(op) { | 1520 : op_(op) { |
| 1501 inputs_[0] = left; | 1521 inputs_[0] = context; |
| 1502 inputs_[1] = right; | 1522 inputs_[1] = left; |
| 1523 inputs_[2] = right; |
| 1503 } | 1524 } |
| 1504 | 1525 |
| 1505 LOperand* left() { return inputs_[0]; } | 1526 LOperand* context() { return inputs_[0]; } |
| 1506 LOperand* right() { return inputs_[1]; } | 1527 LOperand* left() { return inputs_[1]; } |
| 1528 LOperand* right() { return inputs_[2]; } |
| 1507 Token::Value op() const { return op_; } | 1529 Token::Value op() const { return op_; } |
| 1508 | 1530 |
| 1509 virtual Opcode opcode() const V8_OVERRIDE { | 1531 virtual Opcode opcode() const V8_OVERRIDE { |
| 1510 return LInstruction::kArithmeticT; | 1532 return LInstruction::kArithmeticT; |
| 1511 } | 1533 } |
| 1512 virtual void CompileToNative(LCodeGen* generator) V8_OVERRIDE; | 1534 virtual void CompileToNative(LCodeGen* generator) V8_OVERRIDE; |
| 1513 virtual const char* Mnemonic() const V8_OVERRIDE; | 1535 virtual const char* Mnemonic() const V8_OVERRIDE; |
| 1514 | 1536 |
| 1515 private: | 1537 private: |
| 1516 Token::Value op_; | 1538 Token::Value op_; |
| 1517 }; | 1539 }; |
| 1518 | 1540 |
| 1519 | 1541 |
| 1520 class LReturn V8_FINAL : public LTemplateInstruction<0, 2, 0> { | 1542 class LReturn V8_FINAL : public LTemplateInstruction<0, 3, 0> { |
| 1521 public: | 1543 public: |
| 1522 explicit LReturn(LOperand* value, LOperand* parameter_count) { | 1544 LReturn(LOperand* value, LOperand* context, LOperand* parameter_count) { |
| 1523 inputs_[0] = value; | 1545 inputs_[0] = value; |
| 1524 inputs_[1] = parameter_count; | 1546 inputs_[1] = context; |
| 1547 inputs_[2] = parameter_count; |
| 1525 } | 1548 } |
| 1526 | 1549 |
| 1527 LOperand* value() { return inputs_[0]; } | 1550 LOperand* value() { return inputs_[0]; } |
| 1528 | 1551 |
| 1529 bool has_constant_parameter_count() { | 1552 bool has_constant_parameter_count() { |
| 1530 return parameter_count()->IsConstantOperand(); | 1553 return parameter_count()->IsConstantOperand(); |
| 1531 } | 1554 } |
| 1532 LConstantOperand* constant_parameter_count() { | 1555 LConstantOperand* constant_parameter_count() { |
| 1533 ASSERT(has_constant_parameter_count()); | 1556 ASSERT(has_constant_parameter_count()); |
| 1534 return LConstantOperand::cast(parameter_count()); | 1557 return LConstantOperand::cast(parameter_count()); |
| 1535 } | 1558 } |
| 1536 LOperand* parameter_count() { return inputs_[1]; } | 1559 LOperand* parameter_count() { return inputs_[2]; } |
| 1537 | 1560 |
| 1538 DECLARE_CONCRETE_INSTRUCTION(Return, "return") | 1561 DECLARE_CONCRETE_INSTRUCTION(Return, "return") |
| 1539 }; | 1562 }; |
| 1540 | 1563 |
| 1541 | 1564 |
| 1542 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1565 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 1543 public: | 1566 public: |
| 1544 explicit LLoadNamedField(LOperand* object) { | 1567 explicit LLoadNamedField(LOperand* object) { |
| 1545 inputs_[0] = object; | 1568 inputs_[0] = object; |
| 1546 } | 1569 } |
| 1547 | 1570 |
| 1548 LOperand* object() { return inputs_[0]; } | 1571 LOperand* object() { return inputs_[0]; } |
| 1549 | 1572 |
| 1550 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") | 1573 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") |
| 1551 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) | 1574 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) |
| 1552 }; | 1575 }; |
| 1553 | 1576 |
| 1554 | 1577 |
| 1555 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1578 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 1556 public: | 1579 public: |
| 1557 explicit LLoadNamedGeneric(LOperand* object) { | 1580 LLoadNamedGeneric(LOperand* context, LOperand* object) { |
| 1558 inputs_[0] = object; | 1581 inputs_[0] = context; |
| 1582 inputs_[1] = object; |
| 1559 } | 1583 } |
| 1560 | 1584 |
| 1561 LOperand* object() { return inputs_[0]; } | 1585 LOperand* context() { return inputs_[0]; } |
| 1586 LOperand* object() { return inputs_[1]; } |
| 1562 | 1587 |
| 1563 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") | 1588 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") |
| 1564 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) | 1589 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) |
| 1565 | 1590 |
| 1566 Handle<Object> name() const { return hydrogen()->name(); } | 1591 Handle<Object> name() const { return hydrogen()->name(); } |
| 1567 }; | 1592 }; |
| 1568 | 1593 |
| 1569 | 1594 |
| 1570 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1595 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 1571 public: | 1596 public: |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1620 } | 1645 } |
| 1621 | 1646 |
| 1622 DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") | 1647 DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") |
| 1623 DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) | 1648 DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) |
| 1624 | 1649 |
| 1625 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1650 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1626 uint32_t additional_index() const { return hydrogen()->index_offset(); } | 1651 uint32_t additional_index() const { return hydrogen()->index_offset(); } |
| 1627 }; | 1652 }; |
| 1628 | 1653 |
| 1629 | 1654 |
| 1630 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 1655 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 0> { |
| 1631 public: | 1656 public: |
| 1632 LLoadKeyedGeneric(LOperand* object, LOperand* key) { | 1657 LLoadKeyedGeneric(LOperand* context, LOperand* object, LOperand* key) { |
| 1633 inputs_[0] = object; | 1658 inputs_[0] = context; |
| 1634 inputs_[1] = key; | 1659 inputs_[1] = object; |
| 1660 inputs_[2] = key; |
| 1635 } | 1661 } |
| 1636 | 1662 |
| 1637 LOperand* object() { return inputs_[0]; } | 1663 LOperand* context() { return inputs_[0]; } |
| 1638 LOperand* key() { return inputs_[1]; } | 1664 LOperand* object() { return inputs_[1]; } |
| 1665 LOperand* key() { return inputs_[2]; } |
| 1639 | 1666 |
| 1640 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") | 1667 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") |
| 1641 }; | 1668 }; |
| 1642 | 1669 |
| 1643 | 1670 |
| 1644 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 1671 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { |
| 1645 public: | 1672 public: |
| 1646 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") | 1673 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") |
| 1647 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) | 1674 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) |
| 1648 }; | 1675 }; |
| 1649 | 1676 |
| 1650 | 1677 |
| 1651 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1678 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 1652 public: | 1679 public: |
| 1653 explicit LLoadGlobalGeneric(LOperand* global_object) { | 1680 LLoadGlobalGeneric(LOperand* context, LOperand* global_object) { |
| 1654 inputs_[0] = global_object; | 1681 inputs_[0] = context; |
| 1682 inputs_[1] = global_object; |
| 1655 } | 1683 } |
| 1656 | 1684 |
| 1657 LOperand* global_object() { return inputs_[0]; } | 1685 LOperand* context() { return inputs_[0]; } |
| 1686 LOperand* global_object() { return inputs_[1]; } |
| 1658 | 1687 |
| 1659 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") | 1688 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") |
| 1660 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) | 1689 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) |
| 1661 | 1690 |
| 1662 Handle<Object> name() const { return hydrogen()->name(); } | 1691 Handle<Object> name() const { return hydrogen()->name(); } |
| 1663 bool for_typeof() const { return hydrogen()->for_typeof(); } | 1692 bool for_typeof() const { return hydrogen()->for_typeof(); } |
| 1664 }; | 1693 }; |
| 1665 | 1694 |
| 1666 | 1695 |
| 1667 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 1> { | 1696 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 1> { |
| 1668 public: | 1697 public: |
| 1669 LStoreGlobalCell(LOperand* value, LOperand* temp) { | 1698 LStoreGlobalCell(LOperand* value, LOperand* temp) { |
| 1670 inputs_[0] = value; | 1699 inputs_[0] = value; |
| 1671 temps_[0] = temp; | 1700 temps_[0] = temp; |
| 1672 } | 1701 } |
| 1673 | 1702 |
| 1674 LOperand* value() { return inputs_[0]; } | 1703 LOperand* value() { return inputs_[0]; } |
| 1675 LOperand* temp() { return temps_[0]; } | 1704 LOperand* temp() { return temps_[0]; } |
| 1676 | 1705 |
| 1677 DECLARE_CONCRETE_INSTRUCTION(StoreGlobalCell, "store-global-cell") | 1706 DECLARE_CONCRETE_INSTRUCTION(StoreGlobalCell, "store-global-cell") |
| 1678 DECLARE_HYDROGEN_ACCESSOR(StoreGlobalCell) | 1707 DECLARE_HYDROGEN_ACCESSOR(StoreGlobalCell) |
| 1679 }; | 1708 }; |
| 1680 | 1709 |
| 1681 | 1710 |
| 1682 class LStoreGlobalGeneric V8_FINAL : public LTemplateInstruction<0, 2, 0> { | 1711 class LStoreGlobalGeneric V8_FINAL : public LTemplateInstruction<0, 3, 0> { |
| 1683 public: | 1712 public: |
| 1684 explicit LStoreGlobalGeneric(LOperand* global_object, | 1713 LStoreGlobalGeneric(LOperand* context, |
| 1685 LOperand* value) { | 1714 LOperand* global_object, |
| 1686 inputs_[0] = global_object; | 1715 LOperand* value) { |
| 1687 inputs_[1] = value; | 1716 inputs_[0] = context; |
| 1717 inputs_[1] = global_object; |
| 1718 inputs_[2] = value; |
| 1688 } | 1719 } |
| 1689 | 1720 |
| 1690 LOperand* global_object() { return inputs_[0]; } | 1721 LOperand* context() { return inputs_[0]; } |
| 1691 LOperand* value() { return inputs_[1]; } | 1722 LOperand* global_object() { return inputs_[1]; } |
| 1723 LOperand* value() { return inputs_[2]; } |
| 1692 | 1724 |
| 1693 DECLARE_CONCRETE_INSTRUCTION(StoreGlobalGeneric, "store-global-generic") | 1725 DECLARE_CONCRETE_INSTRUCTION(StoreGlobalGeneric, "store-global-generic") |
| 1694 DECLARE_HYDROGEN_ACCESSOR(StoreGlobalGeneric) | 1726 DECLARE_HYDROGEN_ACCESSOR(StoreGlobalGeneric) |
| 1695 | 1727 |
| 1696 Handle<Object> name() const { return hydrogen()->name(); } | 1728 Handle<Object> name() const { return hydrogen()->name(); } |
| 1697 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); } | 1729 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); } |
| 1698 }; | 1730 }; |
| 1699 | 1731 |
| 1700 | 1732 |
| 1701 class LLoadContextSlot V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1733 class LLoadContextSlot V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1811 explicit LOuterContext(LOperand* context) { | 1843 explicit LOuterContext(LOperand* context) { |
| 1812 inputs_[0] = context; | 1844 inputs_[0] = context; |
| 1813 } | 1845 } |
| 1814 | 1846 |
| 1815 LOperand* context() { return inputs_[0]; } | 1847 LOperand* context() { return inputs_[0]; } |
| 1816 | 1848 |
| 1817 DECLARE_CONCRETE_INSTRUCTION(OuterContext, "outer-context") | 1849 DECLARE_CONCRETE_INSTRUCTION(OuterContext, "outer-context") |
| 1818 }; | 1850 }; |
| 1819 | 1851 |
| 1820 | 1852 |
| 1821 class LDeclareGlobals V8_FINAL : public LTemplateInstruction<0, 0, 0> { | 1853 class LDeclareGlobals V8_FINAL : public LTemplateInstruction<0, 1, 0> { |
| 1822 public: | 1854 public: |
| 1855 explicit LDeclareGlobals(LOperand* context) { |
| 1856 inputs_[0] = context; |
| 1857 } |
| 1858 |
| 1859 LOperand* context() { return inputs_[0]; } |
| 1860 |
| 1823 DECLARE_CONCRETE_INSTRUCTION(DeclareGlobals, "declare-globals") | 1861 DECLARE_CONCRETE_INSTRUCTION(DeclareGlobals, "declare-globals") |
| 1824 DECLARE_HYDROGEN_ACCESSOR(DeclareGlobals) | 1862 DECLARE_HYDROGEN_ACCESSOR(DeclareGlobals) |
| 1825 }; | 1863 }; |
| 1826 | 1864 |
| 1827 | 1865 |
| 1828 class LGlobalObject V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1866 class LGlobalObject V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 1829 public: | 1867 public: |
| 1830 explicit LGlobalObject(LOperand* context) { | 1868 explicit LGlobalObject(LOperand* context) { |
| 1831 inputs_[0] = context; | 1869 inputs_[0] = context; |
| 1832 } | 1870 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1854 DECLARE_CONCRETE_INSTRUCTION(CallConstantFunction, "call-constant-function") | 1892 DECLARE_CONCRETE_INSTRUCTION(CallConstantFunction, "call-constant-function") |
| 1855 DECLARE_HYDROGEN_ACCESSOR(CallConstantFunction) | 1893 DECLARE_HYDROGEN_ACCESSOR(CallConstantFunction) |
| 1856 | 1894 |
| 1857 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1895 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1858 | 1896 |
| 1859 Handle<JSFunction> function() { return hydrogen()->function(); } | 1897 Handle<JSFunction> function() { return hydrogen()->function(); } |
| 1860 int arity() const { return hydrogen()->argument_count() - 1; } | 1898 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1861 }; | 1899 }; |
| 1862 | 1900 |
| 1863 | 1901 |
| 1864 class LInvokeFunction V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1902 class LInvokeFunction V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 1865 public: | 1903 public: |
| 1866 explicit LInvokeFunction(LOperand* function) { | 1904 LInvokeFunction(LOperand* context, LOperand* function) { |
| 1867 inputs_[0] = function; | 1905 inputs_[0] = context; |
| 1906 inputs_[1] = function; |
| 1868 } | 1907 } |
| 1869 | 1908 |
| 1870 LOperand* function() { return inputs_[0]; } | 1909 LOperand* context() { return inputs_[0]; } |
| 1910 LOperand* function() { return inputs_[1]; } |
| 1871 | 1911 |
| 1872 DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function") | 1912 DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function") |
| 1873 DECLARE_HYDROGEN_ACCESSOR(InvokeFunction) | 1913 DECLARE_HYDROGEN_ACCESSOR(InvokeFunction) |
| 1874 | 1914 |
| 1875 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1915 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1876 | 1916 |
| 1877 int arity() const { return hydrogen()->argument_count() - 1; } | 1917 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1878 }; | 1918 }; |
| 1879 | 1919 |
| 1880 | 1920 |
| 1881 class LCallKeyed V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1921 class LCallKeyed V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 1882 public: | 1922 public: |
| 1883 explicit LCallKeyed(LOperand* key) { | 1923 LCallKeyed(LOperand* context, LOperand* key) { |
| 1884 inputs_[0] = key; | 1924 inputs_[0] = context; |
| 1925 inputs_[1] = key; |
| 1885 } | 1926 } |
| 1886 | 1927 |
| 1887 LOperand* key() { return inputs_[0]; } | 1928 LOperand* context() { return inputs_[0]; } |
| 1929 LOperand* key() { return inputs_[1]; } |
| 1888 | 1930 |
| 1889 DECLARE_CONCRETE_INSTRUCTION(CallKeyed, "call-keyed") | 1931 DECLARE_CONCRETE_INSTRUCTION(CallKeyed, "call-keyed") |
| 1890 DECLARE_HYDROGEN_ACCESSOR(CallKeyed) | 1932 DECLARE_HYDROGEN_ACCESSOR(CallKeyed) |
| 1891 | 1933 |
| 1892 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1934 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1893 | 1935 |
| 1894 int arity() const { return hydrogen()->argument_count() - 1; } | 1936 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1895 }; | 1937 }; |
| 1896 | 1938 |
| 1897 | 1939 |
| 1898 | 1940 |
| 1899 class LCallNamed V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 1941 class LCallNamed V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 1900 public: | 1942 public: |
| 1943 explicit LCallNamed(LOperand* context) { |
| 1944 inputs_[0] = context; |
| 1945 } |
| 1946 |
| 1947 LOperand* context() { return inputs_[0]; } |
| 1948 |
| 1901 DECLARE_CONCRETE_INSTRUCTION(CallNamed, "call-named") | 1949 DECLARE_CONCRETE_INSTRUCTION(CallNamed, "call-named") |
| 1902 DECLARE_HYDROGEN_ACCESSOR(CallNamed) | 1950 DECLARE_HYDROGEN_ACCESSOR(CallNamed) |
| 1903 | 1951 |
| 1904 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1952 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1905 | 1953 |
| 1906 Handle<String> name() const { return hydrogen()->name(); } | 1954 Handle<String> name() const { return hydrogen()->name(); } |
| 1907 int arity() const { return hydrogen()->argument_count() - 1; } | 1955 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1908 }; | 1956 }; |
| 1909 | 1957 |
| 1910 | 1958 |
| 1911 class LCallFunction V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1959 class LCallFunction V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 1912 public: | 1960 public: |
| 1913 explicit LCallFunction(LOperand* function) { | 1961 LCallFunction(LOperand* context, LOperand* function) { |
| 1914 inputs_[0] = function; | 1962 inputs_[0] = context; |
| 1963 inputs_[1] = function; |
| 1915 } | 1964 } |
| 1916 | 1965 |
| 1917 LOperand* function() { return inputs_[0]; } | 1966 LOperand* context() { return inputs_[0]; } |
| 1967 LOperand* function() { return inputs_[1]; } |
| 1918 | 1968 |
| 1919 DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function") | 1969 DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function") |
| 1920 DECLARE_HYDROGEN_ACCESSOR(CallFunction) | 1970 DECLARE_HYDROGEN_ACCESSOR(CallFunction) |
| 1921 | 1971 |
| 1922 int arity() const { return hydrogen()->argument_count() - 1; } | 1972 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1923 }; | 1973 }; |
| 1924 | 1974 |
| 1925 | 1975 |
| 1926 class LCallGlobal V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 1976 class LCallGlobal V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 1927 public: | 1977 public: |
| 1978 explicit LCallGlobal(LOperand* context) { |
| 1979 inputs_[0] = context; |
| 1980 } |
| 1981 |
| 1982 LOperand* context() { return inputs_[0]; } |
| 1983 |
| 1928 DECLARE_CONCRETE_INSTRUCTION(CallGlobal, "call-global") | 1984 DECLARE_CONCRETE_INSTRUCTION(CallGlobal, "call-global") |
| 1929 DECLARE_HYDROGEN_ACCESSOR(CallGlobal) | 1985 DECLARE_HYDROGEN_ACCESSOR(CallGlobal) |
| 1930 | 1986 |
| 1931 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1987 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1932 | 1988 |
| 1933 Handle<String> name() const {return hydrogen()->name(); } | 1989 Handle<String> name() const {return hydrogen()->name(); } |
| 1934 int arity() const { return hydrogen()->argument_count() - 1; } | 1990 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1935 }; | 1991 }; |
| 1936 | 1992 |
| 1937 | 1993 |
| 1938 class LCallKnownGlobal V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 1994 class LCallKnownGlobal V8_FINAL : public LTemplateInstruction<1, 0, 0> { |
| 1939 public: | 1995 public: |
| 1940 DECLARE_CONCRETE_INSTRUCTION(CallKnownGlobal, "call-known-global") | 1996 DECLARE_CONCRETE_INSTRUCTION(CallKnownGlobal, "call-known-global") |
| 1941 DECLARE_HYDROGEN_ACCESSOR(CallKnownGlobal) | 1997 DECLARE_HYDROGEN_ACCESSOR(CallKnownGlobal) |
| 1942 | 1998 |
| 1943 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 1999 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1944 | 2000 |
| 1945 int arity() const { return hydrogen()->argument_count() - 1; } | 2001 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1946 }; | 2002 }; |
| 1947 | 2003 |
| 1948 | 2004 |
| 1949 class LCallNew V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2005 class LCallNew V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 1950 public: | 2006 public: |
| 1951 explicit LCallNew(LOperand* constructor) { | 2007 LCallNew(LOperand* context, LOperand* constructor) { |
| 1952 inputs_[0] = constructor; | 2008 inputs_[0] = context; |
| 2009 inputs_[1] = constructor; |
| 1953 } | 2010 } |
| 1954 | 2011 |
| 1955 LOperand* constructor() { return inputs_[0]; } | 2012 LOperand* context() { return inputs_[0]; } |
| 2013 LOperand* constructor() { return inputs_[1]; } |
| 1956 | 2014 |
| 1957 DECLARE_CONCRETE_INSTRUCTION(CallNew, "call-new") | 2015 DECLARE_CONCRETE_INSTRUCTION(CallNew, "call-new") |
| 1958 DECLARE_HYDROGEN_ACCESSOR(CallNew) | 2016 DECLARE_HYDROGEN_ACCESSOR(CallNew) |
| 1959 | 2017 |
| 1960 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 2018 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1961 | 2019 |
| 1962 int arity() const { return hydrogen()->argument_count() - 1; } | 2020 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1963 }; | 2021 }; |
| 1964 | 2022 |
| 1965 | 2023 |
| 1966 class LCallNewArray V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2024 class LCallNewArray V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 1967 public: | 2025 public: |
| 1968 explicit LCallNewArray(LOperand* constructor) { | 2026 LCallNewArray(LOperand* context, LOperand* constructor) { |
| 1969 inputs_[0] = constructor; | 2027 inputs_[0] = context; |
| 2028 inputs_[1] = constructor; |
| 1970 } | 2029 } |
| 1971 | 2030 |
| 1972 LOperand* constructor() { return inputs_[0]; } | 2031 LOperand* context() { return inputs_[0]; } |
| 2032 LOperand* constructor() { return inputs_[1]; } |
| 1973 | 2033 |
| 1974 DECLARE_CONCRETE_INSTRUCTION(CallNewArray, "call-new-array") | 2034 DECLARE_CONCRETE_INSTRUCTION(CallNewArray, "call-new-array") |
| 1975 DECLARE_HYDROGEN_ACCESSOR(CallNewArray) | 2035 DECLARE_HYDROGEN_ACCESSOR(CallNewArray) |
| 1976 | 2036 |
| 1977 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 2037 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 1978 | 2038 |
| 1979 int arity() const { return hydrogen()->argument_count() - 1; } | 2039 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1980 }; | 2040 }; |
| 1981 | 2041 |
| 1982 | 2042 |
| 1983 class LCallRuntime V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 2043 class LCallRuntime V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 1984 public: | 2044 public: |
| 2045 explicit LCallRuntime(LOperand* context) { |
| 2046 inputs_[0] = context; |
| 2047 } |
| 2048 |
| 2049 LOperand* context() { return inputs_[0]; } |
| 2050 |
| 1985 DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime") | 2051 DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime") |
| 1986 DECLARE_HYDROGEN_ACCESSOR(CallRuntime) | 2052 DECLARE_HYDROGEN_ACCESSOR(CallRuntime) |
| 1987 | 2053 |
| 1988 const Runtime::Function* function() const { return hydrogen()->function(); } | 2054 const Runtime::Function* function() const { return hydrogen()->function(); } |
| 1989 int arity() const { return hydrogen()->argument_count(); } | 2055 int arity() const { return hydrogen()->argument_count(); } |
| 1990 }; | 2056 }; |
| 1991 | 2057 |
| 1992 | 2058 |
| 1993 class LInteger32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2059 class LInteger32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 1994 public: | 2060 public: |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2180 | 2246 |
| 2181 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 2247 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 2182 | 2248 |
| 2183 Handle<Map> transition() const { return hydrogen()->transition_map(); } | 2249 Handle<Map> transition() const { return hydrogen()->transition_map(); } |
| 2184 Representation representation() const { | 2250 Representation representation() const { |
| 2185 return hydrogen()->field_representation(); | 2251 return hydrogen()->field_representation(); |
| 2186 } | 2252 } |
| 2187 }; | 2253 }; |
| 2188 | 2254 |
| 2189 | 2255 |
| 2190 class LStoreNamedGeneric V8_FINAL : public LTemplateInstruction<0, 2, 0> { | 2256 class LStoreNamedGeneric V8_FINAL : public LTemplateInstruction<0, 3, 0> { |
| 2191 public: | 2257 public: |
| 2192 LStoreNamedGeneric(LOperand* object, LOperand* value) { | 2258 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value) { |
| 2193 inputs_[0] = object; | 2259 inputs_[0] = context; |
| 2194 inputs_[1] = value; | 2260 inputs_[1] = object; |
| 2261 inputs_[2] = value; |
| 2195 } | 2262 } |
| 2196 | 2263 |
| 2197 LOperand* object() { return inputs_[0]; } | 2264 LOperand* context() { return inputs_[0]; } |
| 2198 LOperand* value() { return inputs_[1]; } | 2265 LOperand* object() { return inputs_[1]; } |
| 2266 LOperand* value() { return inputs_[2]; } |
| 2199 | 2267 |
| 2200 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") | 2268 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") |
| 2201 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) | 2269 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) |
| 2202 | 2270 |
| 2203 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 2271 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 2204 | 2272 |
| 2205 Handle<Object> name() const { return hydrogen()->name(); } | 2273 Handle<Object> name() const { return hydrogen()->name(); } |
| 2206 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); } | 2274 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); } |
| 2207 }; | 2275 }; |
| 2208 | 2276 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 2231 if (hydrogen()->value()->IsAdd() || hydrogen()->value()->IsSub() || | 2299 if (hydrogen()->value()->IsAdd() || hydrogen()->value()->IsSub() || |
| 2232 hydrogen()->value()->IsMul() || hydrogen()->value()->IsDiv()) { | 2300 hydrogen()->value()->IsMul() || hydrogen()->value()->IsDiv()) { |
| 2233 return false; | 2301 return false; |
| 2234 } | 2302 } |
| 2235 return hydrogen()->NeedsCanonicalization(); | 2303 return hydrogen()->NeedsCanonicalization(); |
| 2236 } | 2304 } |
| 2237 uint32_t additional_index() const { return hydrogen()->index_offset(); } | 2305 uint32_t additional_index() const { return hydrogen()->index_offset(); } |
| 2238 }; | 2306 }; |
| 2239 | 2307 |
| 2240 | 2308 |
| 2241 class LStoreKeyedGeneric V8_FINAL : public LTemplateInstruction<0, 3, 0> { | 2309 class LStoreKeyedGeneric V8_FINAL : public LTemplateInstruction<0, 4, 0> { |
| 2242 public: | 2310 public: |
| 2243 LStoreKeyedGeneric(LOperand* obj, LOperand* key, LOperand* value) { | 2311 LStoreKeyedGeneric(LOperand* context, |
| 2244 inputs_[0] = obj; | 2312 LOperand* obj, |
| 2245 inputs_[1] = key; | 2313 LOperand* key, |
| 2246 inputs_[2] = value; | 2314 LOperand* value) { |
| 2315 inputs_[0] = context; |
| 2316 inputs_[1] = obj; |
| 2317 inputs_[2] = key; |
| 2318 inputs_[3] = value; |
| 2247 } | 2319 } |
| 2248 | 2320 |
| 2249 LOperand* object() { return inputs_[0]; } | 2321 LOperand* context() { return inputs_[0]; } |
| 2250 LOperand* key() { return inputs_[1]; } | 2322 LOperand* object() { return inputs_[1]; } |
| 2251 LOperand* value() { return inputs_[2]; } | 2323 LOperand* key() { return inputs_[2]; } |
| 2324 LOperand* value() { return inputs_[3]; } |
| 2252 | 2325 |
| 2253 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") | 2326 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") |
| 2254 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) | 2327 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) |
| 2255 | 2328 |
| 2256 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 2329 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 2257 | 2330 |
| 2258 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); } | 2331 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); } |
| 2259 }; | 2332 }; |
| 2260 | 2333 |
| 2261 | 2334 |
| 2262 class LTransitionElementsKind V8_FINAL : public LTemplateInstruction<0, 1, 1> { | 2335 class LTransitionElementsKind V8_FINAL : public LTemplateInstruction<0, 2, 1> { |
| 2263 public: | 2336 public: |
| 2264 LTransitionElementsKind(LOperand* object, | 2337 LTransitionElementsKind(LOperand* object, |
| 2338 LOperand* context, |
| 2265 LOperand* new_map_temp) { | 2339 LOperand* new_map_temp) { |
| 2266 inputs_[0] = object; | 2340 inputs_[0] = object; |
| 2341 inputs_[1] = context; |
| 2267 temps_[0] = new_map_temp; | 2342 temps_[0] = new_map_temp; |
| 2268 } | 2343 } |
| 2269 | 2344 |
| 2345 LOperand* context() { return inputs_[1]; } |
| 2270 LOperand* object() { return inputs_[0]; } | 2346 LOperand* object() { return inputs_[0]; } |
| 2271 LOperand* new_map_temp() { return temps_[0]; } | 2347 LOperand* new_map_temp() { return temps_[0]; } |
| 2272 | 2348 |
| 2273 DECLARE_CONCRETE_INSTRUCTION(TransitionElementsKind, | 2349 DECLARE_CONCRETE_INSTRUCTION(TransitionElementsKind, |
| 2274 "transition-elements-kind") | 2350 "transition-elements-kind") |
| 2275 DECLARE_HYDROGEN_ACCESSOR(TransitionElementsKind) | 2351 DECLARE_HYDROGEN_ACCESSOR(TransitionElementsKind) |
| 2276 | 2352 |
| 2277 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 2353 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 2278 | 2354 |
| 2279 Handle<Map> original_map() { return hydrogen()->original_map().handle(); } | 2355 Handle<Map> original_map() { return hydrogen()->original_map().handle(); } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2294 } | 2370 } |
| 2295 | 2371 |
| 2296 LOperand* object() { return inputs_[0]; } | 2372 LOperand* object() { return inputs_[0]; } |
| 2297 LOperand* temp() { return temps_[0]; } | 2373 LOperand* temp() { return temps_[0]; } |
| 2298 | 2374 |
| 2299 DECLARE_CONCRETE_INSTRUCTION(TrapAllocationMemento, | 2375 DECLARE_CONCRETE_INSTRUCTION(TrapAllocationMemento, |
| 2300 "trap-allocation-memento") | 2376 "trap-allocation-memento") |
| 2301 }; | 2377 }; |
| 2302 | 2378 |
| 2303 | 2379 |
| 2304 class LStringAdd V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 2380 class LStringAdd V8_FINAL : public LTemplateInstruction<1, 3, 0> { |
| 2305 public: | 2381 public: |
| 2306 LStringAdd(LOperand* left, LOperand* right) { | 2382 LStringAdd(LOperand* context, LOperand* left, LOperand* right) { |
| 2307 inputs_[0] = left; | 2383 inputs_[0] = context; |
| 2308 inputs_[1] = right; | 2384 inputs_[1] = left; |
| 2385 inputs_[2] = right; |
| 2309 } | 2386 } |
| 2310 | 2387 |
| 2311 LOperand* left() { return inputs_[0]; } | 2388 LOperand* context() { return inputs_[0]; } |
| 2312 LOperand* right() { return inputs_[1]; } | 2389 LOperand* left() { return inputs_[1]; } |
| 2390 LOperand* right() { return inputs_[2]; } |
| 2313 | 2391 |
| 2314 DECLARE_CONCRETE_INSTRUCTION(StringAdd, "string-add") | 2392 DECLARE_CONCRETE_INSTRUCTION(StringAdd, "string-add") |
| 2315 DECLARE_HYDROGEN_ACCESSOR(StringAdd) | 2393 DECLARE_HYDROGEN_ACCESSOR(StringAdd) |
| 2316 }; | 2394 }; |
| 2317 | 2395 |
| 2318 | 2396 |
| 2319 | 2397 |
| 2320 class LStringCharCodeAt V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 2398 class LStringCharCodeAt V8_FINAL : public LTemplateInstruction<1, 3, 0> { |
| 2321 public: | 2399 public: |
| 2322 LStringCharCodeAt(LOperand* string, LOperand* index) { | 2400 LStringCharCodeAt(LOperand* context, LOperand* string, LOperand* index) { |
| 2323 inputs_[0] = string; | 2401 inputs_[0] = context; |
| 2324 inputs_[1] = index; | 2402 inputs_[1] = string; |
| 2403 inputs_[2] = index; |
| 2325 } | 2404 } |
| 2326 | 2405 |
| 2327 LOperand* string() { return inputs_[0]; } | 2406 LOperand* context() { return inputs_[0]; } |
| 2328 LOperand* index() { return inputs_[1]; } | 2407 LOperand* string() { return inputs_[1]; } |
| 2408 LOperand* index() { return inputs_[2]; } |
| 2329 | 2409 |
| 2330 DECLARE_CONCRETE_INSTRUCTION(StringCharCodeAt, "string-char-code-at") | 2410 DECLARE_CONCRETE_INSTRUCTION(StringCharCodeAt, "string-char-code-at") |
| 2331 DECLARE_HYDROGEN_ACCESSOR(StringCharCodeAt) | 2411 DECLARE_HYDROGEN_ACCESSOR(StringCharCodeAt) |
| 2332 }; | 2412 }; |
| 2333 | 2413 |
| 2334 | 2414 |
| 2335 class LStringCharFromCode V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2415 class LStringCharFromCode V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 2336 public: | 2416 public: |
| 2337 explicit LStringCharFromCode(LOperand* char_code) { | 2417 explicit LStringCharFromCode(LOperand* context, LOperand* char_code) { |
| 2338 inputs_[0] = char_code; | 2418 inputs_[0] = context; |
| 2419 inputs_[1] = char_code; |
| 2339 } | 2420 } |
| 2340 | 2421 |
| 2341 LOperand* char_code() { return inputs_[0]; } | 2422 LOperand* context() { return inputs_[0]; } |
| 2423 LOperand* char_code() { return inputs_[1]; } |
| 2342 | 2424 |
| 2343 DECLARE_CONCRETE_INSTRUCTION(StringCharFromCode, "string-char-from-code") | 2425 DECLARE_CONCRETE_INSTRUCTION(StringCharFromCode, "string-char-from-code") |
| 2344 DECLARE_HYDROGEN_ACCESSOR(StringCharFromCode) | 2426 DECLARE_HYDROGEN_ACCESSOR(StringCharFromCode) |
| 2345 }; | 2427 }; |
| 2346 | 2428 |
| 2347 | 2429 |
| 2348 class LCheckValue V8_FINAL : public LTemplateInstruction<0, 1, 0> { | 2430 class LCheckValue V8_FINAL : public LTemplateInstruction<0, 1, 0> { |
| 2349 public: | 2431 public: |
| 2350 explicit LCheckValue(LOperand* value) { | 2432 explicit LCheckValue(LOperand* value) { |
| 2351 inputs_[0] = value; | 2433 inputs_[0] = value; |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2442 | 2524 |
| 2443 LOperand* unclamped() { return inputs_[0]; } | 2525 LOperand* unclamped() { return inputs_[0]; } |
| 2444 LOperand* temp() { return temps_[0]; } | 2526 LOperand* temp() { return temps_[0]; } |
| 2445 | 2527 |
| 2446 DECLARE_CONCRETE_INSTRUCTION(ClampTToUint8, "clamp-t-to-uint8") | 2528 DECLARE_CONCRETE_INSTRUCTION(ClampTToUint8, "clamp-t-to-uint8") |
| 2447 }; | 2529 }; |
| 2448 | 2530 |
| 2449 | 2531 |
| 2450 class LAllocate V8_FINAL : public LTemplateInstruction<1, 2, 2> { | 2532 class LAllocate V8_FINAL : public LTemplateInstruction<1, 2, 2> { |
| 2451 public: | 2533 public: |
| 2452 LAllocate(LOperand* size, LOperand* temp1, LOperand* temp2) { | 2534 LAllocate(LOperand* context, |
| 2535 LOperand* size, |
| 2536 LOperand* temp1, |
| 2537 LOperand* temp2) { |
| 2538 inputs_[0] = context; |
| 2453 inputs_[1] = size; | 2539 inputs_[1] = size; |
| 2454 temps_[0] = temp1; | 2540 temps_[0] = temp1; |
| 2455 temps_[1] = temp2; | 2541 temps_[1] = temp2; |
| 2456 } | 2542 } |
| 2457 | 2543 |
| 2544 LOperand* context() { return inputs_[0]; } |
| 2458 LOperand* size() { return inputs_[1]; } | 2545 LOperand* size() { return inputs_[1]; } |
| 2459 LOperand* temp1() { return temps_[0]; } | 2546 LOperand* temp1() { return temps_[0]; } |
| 2460 LOperand* temp2() { return temps_[1]; } | 2547 LOperand* temp2() { return temps_[1]; } |
| 2461 | 2548 |
| 2462 DECLARE_CONCRETE_INSTRUCTION(Allocate, "allocate") | 2549 DECLARE_CONCRETE_INSTRUCTION(Allocate, "allocate") |
| 2463 DECLARE_HYDROGEN_ACCESSOR(Allocate) | 2550 DECLARE_HYDROGEN_ACCESSOR(Allocate) |
| 2464 }; | 2551 }; |
| 2465 | 2552 |
| 2466 | 2553 |
| 2467 class LRegExpLiteral V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 2554 class LRegExpLiteral V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 2468 public: | 2555 public: |
| 2556 explicit LRegExpLiteral(LOperand* context) { |
| 2557 inputs_[0] = context; |
| 2558 } |
| 2559 |
| 2560 LOperand* context() { return inputs_[0]; } |
| 2561 |
| 2469 DECLARE_CONCRETE_INSTRUCTION(RegExpLiteral, "regexp-literal") | 2562 DECLARE_CONCRETE_INSTRUCTION(RegExpLiteral, "regexp-literal") |
| 2470 DECLARE_HYDROGEN_ACCESSOR(RegExpLiteral) | 2563 DECLARE_HYDROGEN_ACCESSOR(RegExpLiteral) |
| 2471 }; | 2564 }; |
| 2472 | 2565 |
| 2473 | 2566 |
| 2474 class LFunctionLiteral V8_FINAL : public LTemplateInstruction<1, 0, 0> { | 2567 class LFunctionLiteral V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 2475 public: | 2568 public: |
| 2569 explicit LFunctionLiteral(LOperand* context) { |
| 2570 inputs_[0] = context; |
| 2571 } |
| 2572 |
| 2573 LOperand* context() { return inputs_[0]; } |
| 2574 |
| 2476 DECLARE_CONCRETE_INSTRUCTION(FunctionLiteral, "function-literal") | 2575 DECLARE_CONCRETE_INSTRUCTION(FunctionLiteral, "function-literal") |
| 2477 DECLARE_HYDROGEN_ACCESSOR(FunctionLiteral) | 2576 DECLARE_HYDROGEN_ACCESSOR(FunctionLiteral) |
| 2478 }; | 2577 }; |
| 2479 | 2578 |
| 2480 | 2579 |
| 2481 class LToFastProperties V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2580 class LToFastProperties V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 2482 public: | 2581 public: |
| 2483 explicit LToFastProperties(LOperand* value) { | 2582 explicit LToFastProperties(LOperand* value) { |
| 2484 inputs_[0] = value; | 2583 inputs_[0] = value; |
| 2485 } | 2584 } |
| 2486 | 2585 |
| 2487 LOperand* value() { return inputs_[0]; } | 2586 LOperand* value() { return inputs_[0]; } |
| 2488 | 2587 |
| 2489 DECLARE_CONCRETE_INSTRUCTION(ToFastProperties, "to-fast-properties") | 2588 DECLARE_CONCRETE_INSTRUCTION(ToFastProperties, "to-fast-properties") |
| 2490 DECLARE_HYDROGEN_ACCESSOR(ToFastProperties) | 2589 DECLARE_HYDROGEN_ACCESSOR(ToFastProperties) |
| 2491 }; | 2590 }; |
| 2492 | 2591 |
| 2493 | 2592 |
| 2494 class LTypeof V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2593 class LTypeof V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 2495 public: | 2594 public: |
| 2496 explicit LTypeof(LOperand* value) { | 2595 LTypeof(LOperand* context, LOperand* value) { |
| 2497 inputs_[0] = value; | 2596 inputs_[0] = context; |
| 2597 inputs_[1] = value; |
| 2498 } | 2598 } |
| 2499 | 2599 |
| 2500 LOperand* value() { return inputs_[0]; } | 2600 LOperand* context() { return inputs_[0]; } |
| 2601 LOperand* value() { return inputs_[1]; } |
| 2501 | 2602 |
| 2502 DECLARE_CONCRETE_INSTRUCTION(Typeof, "typeof") | 2603 DECLARE_CONCRETE_INSTRUCTION(Typeof, "typeof") |
| 2503 }; | 2604 }; |
| 2504 | 2605 |
| 2505 | 2606 |
| 2506 class LTypeofIsAndBranch V8_FINAL : public LControlInstruction<1, 0> { | 2607 class LTypeofIsAndBranch V8_FINAL : public LControlInstruction<1, 0> { |
| 2507 public: | 2608 public: |
| 2508 explicit LTypeofIsAndBranch(LOperand* value) { | 2609 explicit LTypeofIsAndBranch(LOperand* value) { |
| 2509 inputs_[0] = value; | 2610 inputs_[0] = value; |
| 2510 } | 2611 } |
| (...skipping 26 matching lines...) Expand all Loading... |
| 2537 public: | 2638 public: |
| 2538 LOsrEntry() {} | 2639 LOsrEntry() {} |
| 2539 | 2640 |
| 2540 virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE { | 2641 virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE { |
| 2541 return false; | 2642 return false; |
| 2542 } | 2643 } |
| 2543 DECLARE_CONCRETE_INSTRUCTION(OsrEntry, "osr-entry") | 2644 DECLARE_CONCRETE_INSTRUCTION(OsrEntry, "osr-entry") |
| 2544 }; | 2645 }; |
| 2545 | 2646 |
| 2546 | 2647 |
| 2547 class LStackCheck V8_FINAL : public LTemplateInstruction<0, 0, 0> { | 2648 class LStackCheck V8_FINAL : public LTemplateInstruction<0, 1, 0> { |
| 2548 public: | 2649 public: |
| 2650 explicit LStackCheck(LOperand* context) { |
| 2651 inputs_[0] = context; |
| 2652 } |
| 2653 |
| 2654 LOperand* context() { return inputs_[0]; } |
| 2655 |
| 2549 DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check") | 2656 DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check") |
| 2550 DECLARE_HYDROGEN_ACCESSOR(StackCheck) | 2657 DECLARE_HYDROGEN_ACCESSOR(StackCheck) |
| 2551 | 2658 |
| 2552 Label* done_label() { return &done_label_; } | 2659 Label* done_label() { return &done_label_; } |
| 2553 | 2660 |
| 2554 private: | 2661 private: |
| 2555 Label done_label_; | 2662 Label done_label_; |
| 2556 }; | 2663 }; |
| 2557 | 2664 |
| 2558 | 2665 |
| 2559 class LForInPrepareMap V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2666 class LForInPrepareMap V8_FINAL : public LTemplateInstruction<1, 2, 0> { |
| 2560 public: | 2667 public: |
| 2561 explicit LForInPrepareMap(LOperand* object) { | 2668 LForInPrepareMap(LOperand* context, LOperand* object) { |
| 2562 inputs_[0] = object; | 2669 inputs_[0] = context; |
| 2670 inputs_[1] = object; |
| 2563 } | 2671 } |
| 2564 | 2672 |
| 2565 LOperand* object() { return inputs_[0]; } | 2673 LOperand* context() { return inputs_[0]; } |
| 2674 LOperand* object() { return inputs_[1]; } |
| 2566 | 2675 |
| 2567 DECLARE_CONCRETE_INSTRUCTION(ForInPrepareMap, "for-in-prepare-map") | 2676 DECLARE_CONCRETE_INSTRUCTION(ForInPrepareMap, "for-in-prepare-map") |
| 2568 }; | 2677 }; |
| 2569 | 2678 |
| 2570 | 2679 |
| 2571 class LForInCacheArray V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2680 class LForInCacheArray V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 2572 public: | 2681 public: |
| 2573 explicit LForInCacheArray(LOperand* map) { | 2682 explicit LForInCacheArray(LOperand* map) { |
| 2574 inputs_[0] = map; | 2683 inputs_[0] = map; |
| 2575 } | 2684 } |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2794 | 2903 |
| 2795 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2904 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2796 }; | 2905 }; |
| 2797 | 2906 |
| 2798 #undef DECLARE_HYDROGEN_ACCESSOR | 2907 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2799 #undef DECLARE_CONCRETE_INSTRUCTION | 2908 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2800 | 2909 |
| 2801 } } // namespace v8::internal | 2910 } } // namespace v8::internal |
| 2802 | 2911 |
| 2803 #endif // V8_ARM_LITHIUM_ARM_H_ | 2912 #endif // V8_ARM_LITHIUM_ARM_H_ |
| OLD | NEW |