| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
| 6 | 6 |
| 7 #include "src/arm64/macro-assembler-arm64-inl.h" | 7 #include "src/arm64/macro-assembler-arm64-inl.h" |
| 8 #include "src/ast/compile-time-value.h" | 8 #include "src/ast/compile-time-value.h" |
| 9 #include "src/ast/scopes.h" | 9 #include "src/ast/scopes.h" |
| 10 #include "src/builtins/builtins-constructor.h" | 10 #include "src/builtins/builtins-constructor.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 // - x3: the new target value | 101 // - x3: the new target value |
| 102 // - cp: our context. | 102 // - cp: our context. |
| 103 // - fp: our caller's frame pointer. | 103 // - fp: our caller's frame pointer. |
| 104 // - jssp: stack pointer. | 104 // - jssp: stack pointer. |
| 105 // - lr: return address. | 105 // - lr: return address. |
| 106 // | 106 // |
| 107 // The function builds a JS frame. See JavaScriptFrameConstants in | 107 // The function builds a JS frame. See JavaScriptFrameConstants in |
| 108 // frames-arm.h for its layout. | 108 // frames-arm.h for its layout. |
| 109 void FullCodeGenerator::Generate() { | 109 void FullCodeGenerator::Generate() { |
| 110 CompilationInfo* info = info_; | 110 CompilationInfo* info = info_; |
| 111 // Block sharing of code target entries. The interrupt checks must be |
| 112 // possible to patch individually, and replacing code with a debug version |
| 113 // relies on RelocInfo not being shared. |
| 114 Assembler::BlockCodeTargetSharingScope block_code_target_sharing(masm_); |
| 111 profiling_counter_ = isolate()->factory()->NewCell( | 115 profiling_counter_ = isolate()->factory()->NewCell( |
| 112 Handle<Smi>(Smi::FromInt(FLAG_interrupt_budget), isolate())); | 116 Handle<Smi>(Smi::FromInt(FLAG_interrupt_budget), isolate())); |
| 113 SetFunctionPosition(literal()); | 117 SetFunctionPosition(literal()); |
| 114 Comment cmnt(masm_, "[ Function compiled by full code generator"); | 118 Comment cmnt(masm_, "[ Function compiled by full code generator"); |
| 115 | 119 |
| 116 ProfileEntryHookStub::MaybeCallEntryHook(masm_); | 120 ProfileEntryHookStub::MaybeCallEntryHook(masm_); |
| 117 | 121 |
| 118 if (FLAG_debug_code && info->ExpectsJSReceiverAsReceiver()) { | 122 if (FLAG_debug_code && info->ExpectsJSReceiverAsReceiver()) { |
| 119 int receiver_offset = info->scope()->num_parameters() * kXRegSize; | 123 int receiver_offset = info->scope()->num_parameters() * kXRegSize; |
| 120 __ Peek(x10, receiver_offset); | 124 __ Peek(x10, receiver_offset); |
| (...skipping 2648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2769 } | 2773 } |
| 2770 | 2774 |
| 2771 return INTERRUPT; | 2775 return INTERRUPT; |
| 2772 } | 2776 } |
| 2773 | 2777 |
| 2774 | 2778 |
| 2775 } // namespace internal | 2779 } // namespace internal |
| 2776 } // namespace v8 | 2780 } // namespace v8 |
| 2777 | 2781 |
| 2778 #endif // V8_TARGET_ARCH_ARM64 | 2782 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |