Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: src/ppc/lithium-codegen-ppc.cc

Issue 1376333003: Eliminate no_frame_range data (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/mips64/lithium-codegen-mips64.cc ('k') | src/profiler/cpu-profiler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "src/base/bits.h" 5 #include "src/base/bits.h"
6 #include "src/code-factory.h" 6 #include "src/code-factory.h"
7 #include "src/code-stubs.h" 7 #include "src/code-stubs.h"
8 #include "src/hydrogen-osr.h" 8 #include "src/hydrogen-osr.h"
9 #include "src/ic/ic.h" 9 #include "src/ic/ic.h"
10 #include "src/ic/stub-cache.h" 10 #include "src/ic/stub-cache.h"
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 __ addi(ip, ip, Operand(prologue_offset)); 145 __ addi(ip, ip, Operand(prologue_offset));
146 } 146 }
147 info()->set_prologue_offset(prologue_offset); 147 info()->set_prologue_offset(prologue_offset);
148 if (NeedsEagerFrame()) { 148 if (NeedsEagerFrame()) {
149 if (info()->IsStub()) { 149 if (info()->IsStub()) {
150 __ StubPrologue(prologue_offset); 150 __ StubPrologue(prologue_offset);
151 } else { 151 } else {
152 __ Prologue(info()->IsCodePreAgingActive(), prologue_offset); 152 __ Prologue(info()->IsCodePreAgingActive(), prologue_offset);
153 } 153 }
154 frame_is_built_ = true; 154 frame_is_built_ = true;
155 info_->AddNoFrameRange(0, masm_->pc_offset());
156 } 155 }
157 156
158 // Reserve space for the stack slots needed by the code. 157 // Reserve space for the stack slots needed by the code.
159 int slots = GetStackSlotCount(); 158 int slots = GetStackSlotCount();
160 if (slots > 0) { 159 if (slots > 0) {
161 __ subi(sp, sp, Operand(slots * kPointerSize)); 160 __ subi(sp, sp, Operand(slots * kPointerSize));
162 if (FLAG_debug_code) { 161 if (FLAG_debug_code) {
163 __ Push(r3, r4); 162 __ Push(r3, r4);
164 __ li(r0, Operand(slots)); 163 __ li(r0, Operand(slots));
165 __ mtctr(r0); 164 __ mtctr(r0);
(...skipping 2672 matching lines...) Expand 10 before | Expand all | Expand 10 after
2838 // Runtime::TraceExit returns its parameter in r3. We're leaving the code 2837 // Runtime::TraceExit returns its parameter in r3. We're leaving the code
2839 // managed by the register allocator and tearing down the frame, it's 2838 // managed by the register allocator and tearing down the frame, it's
2840 // safe to write to the context register. 2839 // safe to write to the context register.
2841 __ push(r3); 2840 __ push(r3);
2842 __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); 2841 __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
2843 __ CallRuntime(Runtime::kTraceExit, 1); 2842 __ CallRuntime(Runtime::kTraceExit, 1);
2844 } 2843 }
2845 if (info()->saves_caller_doubles()) { 2844 if (info()->saves_caller_doubles()) {
2846 RestoreCallerDoubles(); 2845 RestoreCallerDoubles();
2847 } 2846 }
2848 int no_frame_start = -1;
2849 if (instr->has_constant_parameter_count()) { 2847 if (instr->has_constant_parameter_count()) {
2850 int parameter_count = ToInteger32(instr->constant_parameter_count()); 2848 int parameter_count = ToInteger32(instr->constant_parameter_count());
2851 int32_t sp_delta = (parameter_count + 1) * kPointerSize; 2849 int32_t sp_delta = (parameter_count + 1) * kPointerSize;
2852 if (NeedsEagerFrame()) { 2850 if (NeedsEagerFrame()) {
2853 no_frame_start = masm_->LeaveFrame(StackFrame::JAVA_SCRIPT, sp_delta); 2851 masm_->LeaveFrame(StackFrame::JAVA_SCRIPT, sp_delta);
2854 } else if (sp_delta != 0) { 2852 } else if (sp_delta != 0) {
2855 __ addi(sp, sp, Operand(sp_delta)); 2853 __ addi(sp, sp, Operand(sp_delta));
2856 } 2854 }
2857 } else { 2855 } else {
2858 DCHECK(info()->IsStub()); // Functions would need to drop one more value. 2856 DCHECK(info()->IsStub()); // Functions would need to drop one more value.
2859 Register reg = ToRegister(instr->parameter_count()); 2857 Register reg = ToRegister(instr->parameter_count());
2860 // The argument count parameter is a smi 2858 // The argument count parameter is a smi
2861 if (NeedsEagerFrame()) { 2859 if (NeedsEagerFrame()) {
2862 no_frame_start = masm_->LeaveFrame(StackFrame::JAVA_SCRIPT); 2860 masm_->LeaveFrame(StackFrame::JAVA_SCRIPT);
2863 } 2861 }
2864 __ SmiToPtrArrayOffset(r0, reg); 2862 __ SmiToPtrArrayOffset(r0, reg);
2865 __ add(sp, sp, r0); 2863 __ add(sp, sp, r0);
2866 } 2864 }
2867 2865
2868 __ blr(); 2866 __ blr();
2869
2870 if (no_frame_start != -1) {
2871 info_->AddNoFrameRange(no_frame_start, masm_->pc_offset());
2872 }
2873 } 2867 }
2874 2868
2875 2869
2876 template <class T> 2870 template <class T>
2877 void LCodeGen::EmitVectorLoadICRegisters(T* instr) { 2871 void LCodeGen::EmitVectorLoadICRegisters(T* instr) {
2878 Register vector_register = ToRegister(instr->temp_vector()); 2872 Register vector_register = ToRegister(instr->temp_vector());
2879 Register slot_register = LoadDescriptor::SlotRegister(); 2873 Register slot_register = LoadDescriptor::SlotRegister();
2880 DCHECK(vector_register.is(LoadWithVectorDescriptor::VectorRegister())); 2874 DCHECK(vector_register.is(LoadWithVectorDescriptor::VectorRegister()));
2881 DCHECK(slot_register.is(r3)); 2875 DCHECK(slot_register.is(r3));
2882 2876
(...skipping 3246 matching lines...) Expand 10 before | Expand all | Expand 10 after
6129 __ Push(scope_info); 6123 __ Push(scope_info);
6130 __ push(ToRegister(instr->function())); 6124 __ push(ToRegister(instr->function()));
6131 CallRuntime(Runtime::kPushBlockContext, 2, instr); 6125 CallRuntime(Runtime::kPushBlockContext, 2, instr);
6132 RecordSafepoint(Safepoint::kNoLazyDeopt); 6126 RecordSafepoint(Safepoint::kNoLazyDeopt);
6133 } 6127 }
6134 6128
6135 6129
6136 #undef __ 6130 #undef __
6137 } // namespace internal 6131 } // namespace internal
6138 } // namespace v8 6132 } // namespace v8
OLDNEW
« no previous file with comments | « src/mips64/lithium-codegen-mips64.cc ('k') | src/profiler/cpu-profiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698