| 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 1590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1601 EmitSetHomeObject(value, 2, property->GetSlot()); | 1601 EmitSetHomeObject(value, 2, property->GetSlot()); |
| 1602 } | 1602 } |
| 1603 | 1603 |
| 1604 switch (property->kind()) { | 1604 switch (property->kind()) { |
| 1605 case ObjectLiteral::Property::CONSTANT: | 1605 case ObjectLiteral::Property::CONSTANT: |
| 1606 case ObjectLiteral::Property::MATERIALIZED_LITERAL: | 1606 case ObjectLiteral::Property::MATERIALIZED_LITERAL: |
| 1607 case ObjectLiteral::Property::COMPUTED: | 1607 case ObjectLiteral::Property::COMPUTED: |
| 1608 if (property->emit_store()) { | 1608 if (property->emit_store()) { |
| 1609 __ LoadSmiLiteral(r3, Smi::FromInt(NONE)); | 1609 __ LoadSmiLiteral(r3, Smi::FromInt(NONE)); |
| 1610 __ push(r3); | 1610 __ push(r3); |
| 1611 __ CallRuntime(Runtime::kDefineDataPropertyUnchecked); | 1611 __ Push(Smi::FromInt(property->NeedsSetFunctionName())); |
| 1612 __ CallRuntime(Runtime::kDefineDataPropertyInLiteral); |
| 1612 } else { | 1613 } else { |
| 1613 __ Drop(3); | 1614 __ Drop(3); |
| 1614 } | 1615 } |
| 1615 break; | 1616 break; |
| 1616 | 1617 |
| 1617 case ObjectLiteral::Property::PROTOTYPE: | 1618 case ObjectLiteral::Property::PROTOTYPE: |
| 1618 UNREACHABLE(); | 1619 UNREACHABLE(); |
| 1619 break; | 1620 break; |
| 1620 | 1621 |
| 1621 case ObjectLiteral::Property::GETTER: | 1622 case ObjectLiteral::Property::GETTER: |
| (...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2381 if (NeedsHomeObject(value)) { | 2382 if (NeedsHomeObject(value)) { |
| 2382 EmitSetHomeObject(value, 2, property->GetSlot()); | 2383 EmitSetHomeObject(value, 2, property->GetSlot()); |
| 2383 } | 2384 } |
| 2384 | 2385 |
| 2385 switch (property->kind()) { | 2386 switch (property->kind()) { |
| 2386 case ObjectLiteral::Property::CONSTANT: | 2387 case ObjectLiteral::Property::CONSTANT: |
| 2387 case ObjectLiteral::Property::MATERIALIZED_LITERAL: | 2388 case ObjectLiteral::Property::MATERIALIZED_LITERAL: |
| 2388 case ObjectLiteral::Property::PROTOTYPE: | 2389 case ObjectLiteral::Property::PROTOTYPE: |
| 2389 UNREACHABLE(); | 2390 UNREACHABLE(); |
| 2390 case ObjectLiteral::Property::COMPUTED: | 2391 case ObjectLiteral::Property::COMPUTED: |
| 2391 __ CallRuntime(Runtime::kDefineClassMethod); | 2392 __ mov(r3, Operand(Smi::FromInt(DONT_ENUM))); |
| 2393 __ push(r3); |
| 2394 __ Push(Smi::FromInt(property->NeedsSetFunctionName())); |
| 2395 __ CallRuntime(Runtime::kDefineDataPropertyInLiteral); |
| 2392 break; | 2396 break; |
| 2393 | 2397 |
| 2394 case ObjectLiteral::Property::GETTER: | 2398 case ObjectLiteral::Property::GETTER: |
| 2395 __ mov(r3, Operand(Smi::FromInt(DONT_ENUM))); | 2399 __ mov(r3, Operand(Smi::FromInt(DONT_ENUM))); |
| 2396 __ push(r3); | 2400 __ push(r3); |
| 2397 __ CallRuntime(Runtime::kDefineGetterPropertyUnchecked); | 2401 __ CallRuntime(Runtime::kDefineGetterPropertyUnchecked); |
| 2398 break; | 2402 break; |
| 2399 | 2403 |
| 2400 case ObjectLiteral::Property::SETTER: | 2404 case ObjectLiteral::Property::SETTER: |
| 2401 __ mov(r3, Operand(Smi::FromInt(DONT_ENUM))); | 2405 __ mov(r3, Operand(Smi::FromInt(DONT_ENUM))); |
| (...skipping 2365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4767 return ON_STACK_REPLACEMENT; | 4771 return ON_STACK_REPLACEMENT; |
| 4768 } | 4772 } |
| 4769 | 4773 |
| 4770 DCHECK(interrupt_address == | 4774 DCHECK(interrupt_address == |
| 4771 isolate->builtins()->OsrAfterStackCheck()->entry()); | 4775 isolate->builtins()->OsrAfterStackCheck()->entry()); |
| 4772 return OSR_AFTER_STACK_CHECK; | 4776 return OSR_AFTER_STACK_CHECK; |
| 4773 } | 4777 } |
| 4774 } // namespace internal | 4778 } // namespace internal |
| 4775 } // namespace v8 | 4779 } // namespace v8 |
| 4776 #endif // V8_TARGET_ARCH_PPC | 4780 #endif // V8_TARGET_ARCH_PPC |
| OLD | NEW |