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/base/bits.h" | 7 #include "src/base/bits.h" |
8 #include "src/bootstrapper.h" | 8 #include "src/bootstrapper.h" |
9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 4995 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5006 // Will both indicate a NULL and a Smi. | 5006 // Will both indicate a NULL and a Smi. |
5007 __ TestIfSmi(r7, r0); | 5007 __ TestIfSmi(r7, r0); |
5008 __ Assert(ne, kUnexpectedInitialMapForArrayFunction, cr0); | 5008 __ Assert(ne, kUnexpectedInitialMapForArrayFunction, cr0); |
5009 __ CompareObjectType(r7, r7, r8, MAP_TYPE); | 5009 __ CompareObjectType(r7, r7, r8, MAP_TYPE); |
5010 __ Assert(eq, kUnexpectedInitialMapForArrayFunction); | 5010 __ Assert(eq, kUnexpectedInitialMapForArrayFunction); |
5011 | 5011 |
5012 // We should either have undefined in r5 or a valid AllocationSite | 5012 // We should either have undefined in r5 or a valid AllocationSite |
5013 __ AssertUndefinedOrAllocationSite(r5, r7); | 5013 __ AssertUndefinedOrAllocationSite(r5, r7); |
5014 } | 5014 } |
5015 | 5015 |
| 5016 // Enter the context of the Array function. |
| 5017 __ LoadP(cp, FieldMemOperand(r4, JSFunction::kContextOffset)); |
| 5018 |
5016 Label subclassing; | 5019 Label subclassing; |
5017 __ cmp(r6, r4); | 5020 __ cmp(r6, r4); |
5018 __ bne(&subclassing); | 5021 __ bne(&subclassing); |
5019 | 5022 |
5020 Label no_info; | 5023 Label no_info; |
5021 // Get the elements kind and case on that. | 5024 // Get the elements kind and case on that. |
5022 __ CompareRoot(r5, Heap::kUndefinedValueRootIndex); | 5025 __ CompareRoot(r5, Heap::kUndefinedValueRootIndex); |
5023 __ beq(&no_info); | 5026 __ beq(&no_info); |
5024 | 5027 |
5025 __ LoadP(r6, FieldMemOperand(r5, AllocationSite::kTransitionInfoOffset)); | 5028 __ LoadP(r6, FieldMemOperand(r5, AllocationSite::kTransitionInfoOffset)); |
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5641 kStackUnwindSpace, NULL, | 5644 kStackUnwindSpace, NULL, |
5642 MemOperand(fp, 6 * kPointerSize), NULL); | 5645 MemOperand(fp, 6 * kPointerSize), NULL); |
5643 } | 5646 } |
5644 | 5647 |
5645 | 5648 |
5646 #undef __ | 5649 #undef __ |
5647 } // namespace internal | 5650 } // namespace internal |
5648 } // namespace v8 | 5651 } // namespace v8 |
5649 | 5652 |
5650 #endif // V8_TARGET_ARCH_PPC | 5653 #endif // V8_TARGET_ARCH_PPC |
OLD | NEW |