| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 4692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4703 Ldr(Tmp0(), FieldMemOperand(scratch, offset)); | 4703 Ldr(Tmp0(), FieldMemOperand(scratch, offset)); |
| 4704 Cmp(map_in_out, Tmp0()); | 4704 Cmp(map_in_out, Tmp0()); |
| 4705 B(ne, no_map_match); | 4705 B(ne, no_map_match); |
| 4706 | 4706 |
| 4707 // Use the transitioned cached map. | 4707 // Use the transitioned cached map. |
| 4708 offset = (transitioned_kind * kPointerSize) + FixedArrayBase::kHeaderSize; | 4708 offset = (transitioned_kind * kPointerSize) + FixedArrayBase::kHeaderSize; |
| 4709 Ldr(map_in_out, FieldMemOperand(scratch, offset)); | 4709 Ldr(map_in_out, FieldMemOperand(scratch, offset)); |
| 4710 } | 4710 } |
| 4711 | 4711 |
| 4712 | 4712 |
| 4713 void MacroAssembler::LoadInitialArrayMap(Register function_in, | |
| 4714 Register scratch, | |
| 4715 Register map_out, | |
| 4716 ArrayHasHoles holes) { | |
| 4717 ASSERT(!AreAliased(function_in, scratch, map_out)); | |
| 4718 Label done; | |
| 4719 Ldr(map_out, FieldMemOperand(function_in, | |
| 4720 JSFunction::kPrototypeOrInitialMapOffset)); | |
| 4721 | |
| 4722 if (!FLAG_smi_only_arrays) { | |
| 4723 ElementsKind kind = (holes == kArrayCanHaveHoles) ? FAST_HOLEY_ELEMENTS | |
| 4724 : FAST_ELEMENTS; | |
| 4725 LoadTransitionedArrayMapConditional(FAST_SMI_ELEMENTS, kind, map_out, | |
| 4726 scratch, &done); | |
| 4727 } else if (holes == kArrayCanHaveHoles) { | |
| 4728 LoadTransitionedArrayMapConditional(FAST_SMI_ELEMENTS, | |
| 4729 FAST_HOLEY_SMI_ELEMENTS, map_out, | |
| 4730 scratch, &done); | |
| 4731 } | |
| 4732 Bind(&done); | |
| 4733 } | |
| 4734 | |
| 4735 | |
| 4736 void MacroAssembler::LoadArrayFunction(Register function) { | 4713 void MacroAssembler::LoadArrayFunction(Register function) { |
| 4737 // Load the global or builtins object from the current context. | 4714 // Load the global or builtins object from the current context. |
| 4738 Ldr(function, GlobalObjectMemOperand()); | 4715 Ldr(function, GlobalObjectMemOperand()); |
| 4739 // Load the global context from the global or builtins object. | 4716 // Load the global context from the global or builtins object. |
| 4740 Ldr(function, | 4717 Ldr(function, |
| 4741 FieldMemOperand(function, GlobalObject::kGlobalContextOffset)); | 4718 FieldMemOperand(function, GlobalObject::kGlobalContextOffset)); |
| 4742 // Load the array function from the native context. | 4719 // Load the array function from the native context. |
| 4743 Ldr(function, ContextMemOperand(function, Context::ARRAY_FUNCTION_INDEX)); | 4720 Ldr(function, ContextMemOperand(function, Context::ARRAY_FUNCTION_INDEX)); |
| 4744 } | 4721 } |
| 4745 | 4722 |
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5096 } | 5073 } |
| 5097 } | 5074 } |
| 5098 | 5075 |
| 5099 | 5076 |
| 5100 #undef __ | 5077 #undef __ |
| 5101 | 5078 |
| 5102 | 5079 |
| 5103 } } // namespace v8::internal | 5080 } } // namespace v8::internal |
| 5104 | 5081 |
| 5105 #endif // V8_TARGET_ARCH_A64 | 5082 #endif // V8_TARGET_ARCH_A64 |
| OLD | NEW |