| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_PPC | 5 #if V8_TARGET_ARCH_PPC |
| 6 | 6 |
| 7 #include "src/ast/scopes.h" | 7 #include "src/ast/scopes.h" |
| 8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
| 9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 1511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1522 __ Drop(3); | 1522 __ Drop(3); |
| 1523 } | 1523 } |
| 1524 break; | 1524 break; |
| 1525 case ObjectLiteral::Property::PROTOTYPE: | 1525 case ObjectLiteral::Property::PROTOTYPE: |
| 1526 // Duplicate receiver on stack. | 1526 // Duplicate receiver on stack. |
| 1527 __ LoadP(r3, MemOperand(sp)); | 1527 __ LoadP(r3, MemOperand(sp)); |
| 1528 __ push(r3); | 1528 __ push(r3); |
| 1529 VisitForStackValue(value); | 1529 VisitForStackValue(value); |
| 1530 DCHECK(property->emit_store()); | 1530 DCHECK(property->emit_store()); |
| 1531 __ CallRuntime(Runtime::kInternalSetPrototype); | 1531 __ CallRuntime(Runtime::kInternalSetPrototype); |
| 1532 PrepareForBailoutForId(expr->GetIdForPropertySet(property_index), |
| 1533 NO_REGISTERS); |
| 1532 break; | 1534 break; |
| 1533 case ObjectLiteral::Property::GETTER: | 1535 case ObjectLiteral::Property::GETTER: |
| 1534 if (property->emit_store()) { | 1536 if (property->emit_store()) { |
| 1535 accessor_table.lookup(key)->second->getter = property; | 1537 accessor_table.lookup(key)->second->getter = property; |
| 1536 } | 1538 } |
| 1537 break; | 1539 break; |
| 1538 case ObjectLiteral::Property::SETTER: | 1540 case ObjectLiteral::Property::SETTER: |
| 1539 if (property->emit_store()) { | 1541 if (property->emit_store()) { |
| 1540 accessor_table.lookup(key)->second->setter = property; | 1542 accessor_table.lookup(key)->second->setter = property; |
| 1541 } | 1543 } |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1576 } | 1578 } |
| 1577 | 1579 |
| 1578 __ LoadP(r3, MemOperand(sp)); // Duplicate receiver. | 1580 __ LoadP(r3, MemOperand(sp)); // Duplicate receiver. |
| 1579 __ push(r3); | 1581 __ push(r3); |
| 1580 | 1582 |
| 1581 if (property->kind() == ObjectLiteral::Property::PROTOTYPE) { | 1583 if (property->kind() == ObjectLiteral::Property::PROTOTYPE) { |
| 1582 DCHECK(!property->is_computed_name()); | 1584 DCHECK(!property->is_computed_name()); |
| 1583 VisitForStackValue(value); | 1585 VisitForStackValue(value); |
| 1584 DCHECK(property->emit_store()); | 1586 DCHECK(property->emit_store()); |
| 1585 __ CallRuntime(Runtime::kInternalSetPrototype); | 1587 __ CallRuntime(Runtime::kInternalSetPrototype); |
| 1588 PrepareForBailoutForId(expr->GetIdForPropertySet(property_index), |
| 1589 NO_REGISTERS); |
| 1586 } else { | 1590 } else { |
| 1587 EmitPropertyKey(property, expr->GetIdForProperty(property_index)); | 1591 EmitPropertyKey(property, expr->GetIdForPropertyName(property_index)); |
| 1588 VisitForStackValue(value); | 1592 VisitForStackValue(value); |
| 1589 if (NeedsHomeObject(value)) { | 1593 if (NeedsHomeObject(value)) { |
| 1590 EmitSetHomeObject(value, 2, property->GetSlot()); | 1594 EmitSetHomeObject(value, 2, property->GetSlot()); |
| 1591 } | 1595 } |
| 1592 | 1596 |
| 1593 switch (property->kind()) { | 1597 switch (property->kind()) { |
| 1594 case ObjectLiteral::Property::CONSTANT: | 1598 case ObjectLiteral::Property::CONSTANT: |
| 1595 case ObjectLiteral::Property::MATERIALIZED_LITERAL: | 1599 case ObjectLiteral::Property::MATERIALIZED_LITERAL: |
| 1596 case ObjectLiteral::Property::COMPUTED: | 1600 case ObjectLiteral::Property::COMPUTED: |
| 1597 if (property->emit_store()) { | 1601 if (property->emit_store()) { |
| (...skipping 3257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4855 return ON_STACK_REPLACEMENT; | 4859 return ON_STACK_REPLACEMENT; |
| 4856 } | 4860 } |
| 4857 | 4861 |
| 4858 DCHECK(interrupt_address == | 4862 DCHECK(interrupt_address == |
| 4859 isolate->builtins()->OsrAfterStackCheck()->entry()); | 4863 isolate->builtins()->OsrAfterStackCheck()->entry()); |
| 4860 return OSR_AFTER_STACK_CHECK; | 4864 return OSR_AFTER_STACK_CHECK; |
| 4861 } | 4865 } |
| 4862 } // namespace internal | 4866 } // namespace internal |
| 4863 } // namespace v8 | 4867 } // namespace v8 |
| 4864 #endif // V8_TARGET_ARCH_PPC | 4868 #endif // V8_TARGET_ARCH_PPC |
| OLD | NEW |