| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 #include "src/interpreter/bytecode-array-builder.h" | 5 #include "src/interpreter/bytecode-array-builder.h" |
| 6 #include "src/compiler.h" | 6 #include "src/compiler.h" |
| 7 | 7 |
| 8 namespace v8 { | 8 namespace v8 { |
| 9 namespace internal { | 9 namespace internal { |
| 10 namespace interpreter { | 10 namespace interpreter { |
| (...skipping 1468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1479 } | 1479 } |
| 1480 } | 1480 } |
| 1481 | 1481 |
| 1482 | 1482 |
| 1483 // static | 1483 // static |
| 1484 Bytecode BytecodeArrayBuilder::BytecodeForStoreIC(LanguageMode language_mode) { | 1484 Bytecode BytecodeArrayBuilder::BytecodeForStoreIC(LanguageMode language_mode) { |
| 1485 switch (language_mode) { | 1485 switch (language_mode) { |
| 1486 case SLOPPY: | 1486 case SLOPPY: |
| 1487 return Bytecode::kStoreICSloppy; | 1487 return Bytecode::kStoreICSloppy; |
| 1488 case STRICT: | 1488 case STRICT: |
| 1489 case STRONG: | |
| 1490 return Bytecode::kStoreICStrict; | 1489 return Bytecode::kStoreICStrict; |
| 1491 default: | 1490 default: |
| 1492 UNREACHABLE(); | 1491 UNREACHABLE(); |
| 1493 } | 1492 } |
| 1494 return static_cast<Bytecode>(-1); | 1493 return static_cast<Bytecode>(-1); |
| 1495 } | 1494 } |
| 1496 | 1495 |
| 1497 | 1496 |
| 1498 // static | 1497 // static |
| 1499 Bytecode BytecodeArrayBuilder::BytecodeForKeyedStoreIC( | 1498 Bytecode BytecodeArrayBuilder::BytecodeForKeyedStoreIC( |
| 1500 LanguageMode language_mode) { | 1499 LanguageMode language_mode) { |
| 1501 switch (language_mode) { | 1500 switch (language_mode) { |
| 1502 case SLOPPY: | 1501 case SLOPPY: |
| 1503 return Bytecode::kKeyedStoreICSloppy; | 1502 return Bytecode::kKeyedStoreICSloppy; |
| 1504 case STRICT: | 1503 case STRICT: |
| 1505 case STRONG: | |
| 1506 return Bytecode::kKeyedStoreICStrict; | 1504 return Bytecode::kKeyedStoreICStrict; |
| 1507 default: | 1505 default: |
| 1508 UNREACHABLE(); | 1506 UNREACHABLE(); |
| 1509 } | 1507 } |
| 1510 return static_cast<Bytecode>(-1); | 1508 return static_cast<Bytecode>(-1); |
| 1511 } | 1509 } |
| 1512 | 1510 |
| 1513 | 1511 |
| 1514 // static | 1512 // static |
| 1515 Bytecode BytecodeArrayBuilder::BytecodeForLoadGlobal(TypeofMode typeof_mode) { | 1513 Bytecode BytecodeArrayBuilder::BytecodeForLoadGlobal(TypeofMode typeof_mode) { |
| 1516 return typeof_mode == INSIDE_TYPEOF ? Bytecode::kLdaGlobalInsideTypeof | 1514 return typeof_mode == INSIDE_TYPEOF ? Bytecode::kLdaGlobalInsideTypeof |
| 1517 : Bytecode::kLdaGlobal; | 1515 : Bytecode::kLdaGlobal; |
| 1518 } | 1516 } |
| 1519 | 1517 |
| 1520 | 1518 |
| 1521 // static | 1519 // static |
| 1522 Bytecode BytecodeArrayBuilder::BytecodeForStoreGlobal( | 1520 Bytecode BytecodeArrayBuilder::BytecodeForStoreGlobal( |
| 1523 LanguageMode language_mode) { | 1521 LanguageMode language_mode) { |
| 1524 switch (language_mode) { | 1522 switch (language_mode) { |
| 1525 case SLOPPY: | 1523 case SLOPPY: |
| 1526 return Bytecode::kStaGlobalSloppy; | 1524 return Bytecode::kStaGlobalSloppy; |
| 1527 case STRICT: | 1525 case STRICT: |
| 1528 return Bytecode::kStaGlobalStrict; | 1526 return Bytecode::kStaGlobalStrict; |
| 1529 case STRONG: | |
| 1530 UNIMPLEMENTED(); | |
| 1531 default: | 1527 default: |
| 1532 UNREACHABLE(); | 1528 UNREACHABLE(); |
| 1533 } | 1529 } |
| 1534 return static_cast<Bytecode>(-1); | 1530 return static_cast<Bytecode>(-1); |
| 1535 } | 1531 } |
| 1536 | 1532 |
| 1537 | 1533 |
| 1538 // static | 1534 // static |
| 1539 Bytecode BytecodeArrayBuilder::BytecodeForStoreLookupSlot( | 1535 Bytecode BytecodeArrayBuilder::BytecodeForStoreLookupSlot( |
| 1540 LanguageMode language_mode) { | 1536 LanguageMode language_mode) { |
| 1541 switch (language_mode) { | 1537 switch (language_mode) { |
| 1542 case SLOPPY: | 1538 case SLOPPY: |
| 1543 return Bytecode::kStaLookupSlotSloppy; | 1539 return Bytecode::kStaLookupSlotSloppy; |
| 1544 case STRICT: | 1540 case STRICT: |
| 1545 return Bytecode::kStaLookupSlotStrict; | 1541 return Bytecode::kStaLookupSlotStrict; |
| 1546 case STRONG: | |
| 1547 UNIMPLEMENTED(); | |
| 1548 default: | 1542 default: |
| 1549 UNREACHABLE(); | 1543 UNREACHABLE(); |
| 1550 } | 1544 } |
| 1551 return static_cast<Bytecode>(-1); | 1545 return static_cast<Bytecode>(-1); |
| 1552 } | 1546 } |
| 1553 | 1547 |
| 1554 // static | 1548 // static |
| 1555 Bytecode BytecodeArrayBuilder::BytecodeForCreateArguments( | 1549 Bytecode BytecodeArrayBuilder::BytecodeForCreateArguments( |
| 1556 CreateArgumentsType type) { | 1550 CreateArgumentsType type) { |
| 1557 switch (type) { | 1551 switch (type) { |
| 1558 case CreateArgumentsType::kMappedArguments: | 1552 case CreateArgumentsType::kMappedArguments: |
| 1559 return Bytecode::kCreateMappedArguments; | 1553 return Bytecode::kCreateMappedArguments; |
| 1560 case CreateArgumentsType::kUnmappedArguments: | 1554 case CreateArgumentsType::kUnmappedArguments: |
| 1561 return Bytecode::kCreateUnmappedArguments; | 1555 return Bytecode::kCreateUnmappedArguments; |
| 1562 case CreateArgumentsType::kRestParameter: | 1556 case CreateArgumentsType::kRestParameter: |
| 1563 return Bytecode::kCreateRestParameter; | 1557 return Bytecode::kCreateRestParameter; |
| 1564 } | 1558 } |
| 1565 UNREACHABLE(); | 1559 UNREACHABLE(); |
| 1566 return static_cast<Bytecode>(-1); | 1560 return static_cast<Bytecode>(-1); |
| 1567 } | 1561 } |
| 1568 | 1562 |
| 1569 | 1563 |
| 1570 // static | 1564 // static |
| 1571 Bytecode BytecodeArrayBuilder::BytecodeForDelete(LanguageMode language_mode) { | 1565 Bytecode BytecodeArrayBuilder::BytecodeForDelete(LanguageMode language_mode) { |
| 1572 switch (language_mode) { | 1566 switch (language_mode) { |
| 1573 case SLOPPY: | 1567 case SLOPPY: |
| 1574 return Bytecode::kDeletePropertySloppy; | 1568 return Bytecode::kDeletePropertySloppy; |
| 1575 case STRICT: | 1569 case STRICT: |
| 1576 return Bytecode::kDeletePropertyStrict; | 1570 return Bytecode::kDeletePropertyStrict; |
| 1577 case STRONG: | |
| 1578 UNIMPLEMENTED(); | |
| 1579 default: | 1571 default: |
| 1580 UNREACHABLE(); | 1572 UNREACHABLE(); |
| 1581 } | 1573 } |
| 1582 return static_cast<Bytecode>(-1); | 1574 return static_cast<Bytecode>(-1); |
| 1583 } | 1575 } |
| 1584 | 1576 |
| 1585 // static | 1577 // static |
| 1586 Bytecode BytecodeArrayBuilder::BytecodeForCall(TailCallMode tail_call_mode) { | 1578 Bytecode BytecodeArrayBuilder::BytecodeForCall(TailCallMode tail_call_mode) { |
| 1587 switch (tail_call_mode) { | 1579 switch (tail_call_mode) { |
| 1588 case TailCallMode::kDisallow: | 1580 case TailCallMode::kDisallow: |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1642 } | 1634 } |
| 1643 | 1635 |
| 1644 // static | 1636 // static |
| 1645 bool BytecodeArrayBuilder::FitsInReg16OperandUntranslated(Register value) { | 1637 bool BytecodeArrayBuilder::FitsInReg16OperandUntranslated(Register value) { |
| 1646 return value.is_short_operand(); | 1638 return value.is_short_operand(); |
| 1647 } | 1639 } |
| 1648 | 1640 |
| 1649 } // namespace interpreter | 1641 } // namespace interpreter |
| 1650 } // namespace internal | 1642 } // namespace internal |
| 1651 } // namespace v8 | 1643 } // namespace v8 |
| OLD | NEW |