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

Side by Side Diff: src/compiler/frame.cc

Issue 1843143002: [turbofan] CodeGenerator: Frame setup refactoring (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/compiler/frame.h" 5 #include "src/compiler/frame.h"
6 6
7 #include "src/compiler/linkage.h" 7 #include "src/compiler/linkage.h"
8 #include "src/compiler/register-allocator.h" 8 #include "src/compiler/register-allocator.h"
9 #include "src/macro-assembler.h" 9 #include "src/macro-assembler.h"
10 10
11 namespace v8 { 11 namespace v8 {
12 namespace internal { 12 namespace internal {
13 namespace compiler { 13 namespace compiler {
14 14
15 Frame::Frame(int fixed_frame_size_in_slots) 15 Frame::Frame(int fixed_frame_size_in_slots)
16 : frame_slot_count_(fixed_frame_size_in_slots), 16 : frame_slot_count_(fixed_frame_size_in_slots),
17 callee_saved_slot_count_(0),
18 spill_slot_count_(0), 17 spill_slot_count_(0),
19 allocated_registers_(nullptr), 18 allocated_registers_(nullptr),
20 allocated_double_registers_(nullptr) {} 19 allocated_double_registers_(nullptr) {}
21 20
22 int Frame::AlignFrame(int alignment) { 21 int Frame::AlignFrame(int alignment) {
23 DCHECK_EQ(0, callee_saved_slot_count_);
24 int alignment_slots = alignment / kPointerSize; 22 int alignment_slots = alignment / kPointerSize;
25 int delta = alignment_slots - (frame_slot_count_ & (alignment_slots - 1)); 23 int delta = alignment_slots - (frame_slot_count_ & (alignment_slots - 1));
26 if (delta != alignment_slots) { 24 if (delta != alignment_slots) {
27 frame_slot_count_ += delta; 25 frame_slot_count_ += delta;
28 if (spill_slot_count_ != 0) { 26 if (spill_slot_count_ != 0) {
29 spill_slot_count_ += delta; 27 spill_slot_count_ += delta;
30 } 28 }
31 } 29 }
32 return delta; 30 return delta;
33 } 31 }
(...skipping 20 matching lines...) Expand all
54 // No frame. Retrieve all parameters relative to stack pointer. 52 // No frame. Retrieve all parameters relative to stack pointer.
55 int sp_offset = frame_offset + GetSPToFPOffset(); 53 int sp_offset = frame_offset + GetSPToFPOffset();
56 return FrameOffset::FromStackPointer(sp_offset); 54 return FrameOffset::FromStackPointer(sp_offset);
57 } 55 }
58 } 56 }
59 57
60 58
61 } // namespace compiler 59 } // namespace compiler
62 } // namespace internal 60 } // namespace internal
63 } // namespace v8 61 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698