| 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 |