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 3716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3727 | 3727 |
3728 __ AssertString(r3); | 3728 __ AssertString(r3); |
3729 | 3729 |
3730 __ lwz(r3, FieldMemOperand(r3, String::kHashFieldOffset)); | 3730 __ lwz(r3, FieldMemOperand(r3, String::kHashFieldOffset)); |
3731 __ IndexFromHash(r3, r3); | 3731 __ IndexFromHash(r3, r3); |
3732 | 3732 |
3733 context()->Plug(r3); | 3733 context()->Plug(r3); |
3734 } | 3734 } |
3735 | 3735 |
3736 | 3736 |
| 3737 void FullCodeGenerator::EmitGetSuperConstructor(CallRuntime* expr) { |
| 3738 ZoneList<Expression*>* args = expr->arguments(); |
| 3739 DCHECK_EQ(1, args->length()); |
| 3740 VisitForAccumulatorValue(args->at(0)); |
| 3741 __ AssertFunction(r3); |
| 3742 __ ld(r3, FieldMemOperand(r3, HeapObject::kMapOffset)); |
| 3743 __ ld(r3, FieldMemOperand(r3, Map::kPrototypeOffset)); |
| 3744 context()->Plug(r3); |
| 3745 } |
| 3746 |
| 3747 |
3737 void FullCodeGenerator::EmitFastOneByteArrayJoin(CallRuntime* expr) { | 3748 void FullCodeGenerator::EmitFastOneByteArrayJoin(CallRuntime* expr) { |
3738 Label bailout, done, one_char_separator, long_separator, non_trivial_array, | 3749 Label bailout, done, one_char_separator, long_separator, non_trivial_array, |
3739 not_size_one_array, loop, empty_separator_loop, one_char_separator_loop, | 3750 not_size_one_array, loop, empty_separator_loop, one_char_separator_loop, |
3740 one_char_separator_loop_entry, long_separator_loop; | 3751 one_char_separator_loop_entry, long_separator_loop; |
3741 ZoneList<Expression*>* args = expr->arguments(); | 3752 ZoneList<Expression*>* args = expr->arguments(); |
3742 DCHECK(args->length() == 2); | 3753 DCHECK(args->length() == 2); |
3743 VisitForStackValue(args->at(1)); | 3754 VisitForStackValue(args->at(1)); |
3744 VisitForAccumulatorValue(args->at(0)); | 3755 VisitForAccumulatorValue(args->at(0)); |
3745 | 3756 |
3746 // All aliases of the same register have disjoint lifetimes. | 3757 // All aliases of the same register have disjoint lifetimes. |
(...skipping 1078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4825 return ON_STACK_REPLACEMENT; | 4836 return ON_STACK_REPLACEMENT; |
4826 } | 4837 } |
4827 | 4838 |
4828 DCHECK(interrupt_address == | 4839 DCHECK(interrupt_address == |
4829 isolate->builtins()->OsrAfterStackCheck()->entry()); | 4840 isolate->builtins()->OsrAfterStackCheck()->entry()); |
4830 return OSR_AFTER_STACK_CHECK; | 4841 return OSR_AFTER_STACK_CHECK; |
4831 } | 4842 } |
4832 } // namespace internal | 4843 } // namespace internal |
4833 } // namespace v8 | 4844 } // namespace v8 |
4834 #endif // V8_TARGET_ARCH_PPC | 4845 #endif // V8_TARGET_ARCH_PPC |
OLD | NEW |