| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #if V8_TARGET_ARCH_MIPS64 | 5 #if V8_TARGET_ARCH_MIPS64 |
| 6 | 6 |
| 7 // Note on Mips implementation: | 7 // Note on Mips implementation: |
| 8 // | 8 // |
| 9 // The result_register() for mips is the 'v0' register, which is defined | 9 // The result_register() for mips is the 'v0' register, which is defined |
| 10 // by the ABI to contain function return values. However, the first | 10 // by the ABI to contain function return values. However, the first |
| (...skipping 1547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1558 __ Drop(3); | 1558 __ Drop(3); |
| 1559 } | 1559 } |
| 1560 break; | 1560 break; |
| 1561 case ObjectLiteral::Property::PROTOTYPE: | 1561 case ObjectLiteral::Property::PROTOTYPE: |
| 1562 // Duplicate receiver on stack. | 1562 // Duplicate receiver on stack. |
| 1563 __ ld(a0, MemOperand(sp)); | 1563 __ ld(a0, MemOperand(sp)); |
| 1564 __ push(a0); | 1564 __ push(a0); |
| 1565 VisitForStackValue(value); | 1565 VisitForStackValue(value); |
| 1566 DCHECK(property->emit_store()); | 1566 DCHECK(property->emit_store()); |
| 1567 __ CallRuntime(Runtime::kInternalSetPrototype); | 1567 __ CallRuntime(Runtime::kInternalSetPrototype); |
| 1568 PrepareForBailoutForId(expr->GetIdForPropertySet(property_index), |
| 1569 NO_REGISTERS); |
| 1568 break; | 1570 break; |
| 1569 case ObjectLiteral::Property::GETTER: | 1571 case ObjectLiteral::Property::GETTER: |
| 1570 if (property->emit_store()) { | 1572 if (property->emit_store()) { |
| 1571 accessor_table.lookup(key)->second->getter = property; | 1573 accessor_table.lookup(key)->second->getter = property; |
| 1572 } | 1574 } |
| 1573 break; | 1575 break; |
| 1574 case ObjectLiteral::Property::SETTER: | 1576 case ObjectLiteral::Property::SETTER: |
| 1575 if (property->emit_store()) { | 1577 if (property->emit_store()) { |
| 1576 accessor_table.lookup(key)->second->setter = property; | 1578 accessor_table.lookup(key)->second->setter = property; |
| 1577 } | 1579 } |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1613 } | 1615 } |
| 1614 | 1616 |
| 1615 __ ld(a0, MemOperand(sp)); // Duplicate receiver. | 1617 __ ld(a0, MemOperand(sp)); // Duplicate receiver. |
| 1616 __ push(a0); | 1618 __ push(a0); |
| 1617 | 1619 |
| 1618 if (property->kind() == ObjectLiteral::Property::PROTOTYPE) { | 1620 if (property->kind() == ObjectLiteral::Property::PROTOTYPE) { |
| 1619 DCHECK(!property->is_computed_name()); | 1621 DCHECK(!property->is_computed_name()); |
| 1620 VisitForStackValue(value); | 1622 VisitForStackValue(value); |
| 1621 DCHECK(property->emit_store()); | 1623 DCHECK(property->emit_store()); |
| 1622 __ CallRuntime(Runtime::kInternalSetPrototype); | 1624 __ CallRuntime(Runtime::kInternalSetPrototype); |
| 1625 PrepareForBailoutForId(expr->GetIdForPropertySet(property_index), |
| 1626 NO_REGISTERS); |
| 1623 } else { | 1627 } else { |
| 1624 EmitPropertyKey(property, expr->GetIdForProperty(property_index)); | 1628 EmitPropertyKey(property, expr->GetIdForPropertyName(property_index)); |
| 1625 VisitForStackValue(value); | 1629 VisitForStackValue(value); |
| 1626 if (NeedsHomeObject(value)) { | 1630 if (NeedsHomeObject(value)) { |
| 1627 EmitSetHomeObject(value, 2, property->GetSlot()); | 1631 EmitSetHomeObject(value, 2, property->GetSlot()); |
| 1628 } | 1632 } |
| 1629 | 1633 |
| 1630 switch (property->kind()) { | 1634 switch (property->kind()) { |
| 1631 case ObjectLiteral::Property::CONSTANT: | 1635 case ObjectLiteral::Property::CONSTANT: |
| 1632 case ObjectLiteral::Property::MATERIALIZED_LITERAL: | 1636 case ObjectLiteral::Property::MATERIALIZED_LITERAL: |
| 1633 case ObjectLiteral::Property::COMPUTED: | 1637 case ObjectLiteral::Property::COMPUTED: |
| 1634 if (property->emit_store()) { | 1638 if (property->emit_store()) { |
| (...skipping 3244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4879 reinterpret_cast<uint64_t>( | 4883 reinterpret_cast<uint64_t>( |
| 4880 isolate->builtins()->OsrAfterStackCheck()->entry())); | 4884 isolate->builtins()->OsrAfterStackCheck()->entry())); |
| 4881 return OSR_AFTER_STACK_CHECK; | 4885 return OSR_AFTER_STACK_CHECK; |
| 4882 } | 4886 } |
| 4883 | 4887 |
| 4884 | 4888 |
| 4885 } // namespace internal | 4889 } // namespace internal |
| 4886 } // namespace v8 | 4890 } // namespace v8 |
| 4887 | 4891 |
| 4888 #endif // V8_TARGET_ARCH_MIPS64 | 4892 #endif // V8_TARGET_ARCH_MIPS64 |
| OLD | NEW |