OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_CRANKSHAFT_MIPS64_LITHIUM_CODEGEN_MIPS_H_ | 5 #ifndef V8_CRANKSHAFT_MIPS64_LITHIUM_CODEGEN_MIPS_H_ |
6 #define V8_CRANKSHAFT_MIPS64_LITHIUM_CODEGEN_MIPS_H_ | 6 #define V8_CRANKSHAFT_MIPS64_LITHIUM_CODEGEN_MIPS_H_ |
7 | 7 |
8 #include "src/ast/scopes.h" | 8 #include "src/ast/scopes.h" |
9 #include "src/crankshaft/lithium-codegen.h" | 9 #include "src/crankshaft/lithium-codegen.h" |
10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" | 10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" |
(...skipping 26 matching lines...) Expand all Loading... |
37 | 37 |
38 int LookupDestination(int block_id) const { | 38 int LookupDestination(int block_id) const { |
39 return chunk()->LookupDestination(block_id); | 39 return chunk()->LookupDestination(block_id); |
40 } | 40 } |
41 | 41 |
42 bool IsNextEmittedBlock(int block_id) const { | 42 bool IsNextEmittedBlock(int block_id) const { |
43 return LookupDestination(block_id) == GetNextEmittedBlock(); | 43 return LookupDestination(block_id) == GetNextEmittedBlock(); |
44 } | 44 } |
45 | 45 |
46 bool NeedsEagerFrame() const { | 46 bool NeedsEagerFrame() const { |
47 return HasAllocatedStackSlots() || info()->is_non_deferred_calling() || | 47 return GetStackSlotCount() > 0 || |
48 !info()->IsStub() || info()->requires_frame(); | 48 info()->is_non_deferred_calling() || |
| 49 !info()->IsStub() || |
| 50 info()->requires_frame(); |
49 } | 51 } |
50 bool NeedsDeferredFrame() const { | 52 bool NeedsDeferredFrame() const { |
51 return !NeedsEagerFrame() && info()->is_deferred_calling(); | 53 return !NeedsEagerFrame() && info()->is_deferred_calling(); |
52 } | 54 } |
53 | 55 |
54 RAStatus GetRAState() const { | 56 RAStatus GetRAState() const { |
55 return frame_is_built_ ? kRAHasBeenSaved : kRAHasNotBeenSaved; | 57 return frame_is_built_ ? kRAHasBeenSaved : kRAHasNotBeenSaved; |
56 } | 58 } |
57 | 59 |
58 // Support for converting LOperands to assembler types. | 60 // Support for converting LOperands to assembler types. |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 | 148 |
147 LInstruction* GetNextInstruction(); | 149 LInstruction* GetNextInstruction(); |
148 | 150 |
149 void EmitClassOfTest(Label* if_true, | 151 void EmitClassOfTest(Label* if_true, |
150 Label* if_false, | 152 Label* if_false, |
151 Handle<String> class_name, | 153 Handle<String> class_name, |
152 Register input, | 154 Register input, |
153 Register temporary, | 155 Register temporary, |
154 Register temporary2); | 156 Register temporary2); |
155 | 157 |
156 bool HasAllocatedStackSlots() const { | 158 int GetStackSlotCount() const { return chunk()->spill_slot_count(); } |
157 return chunk()->HasAllocatedStackSlots(); | |
158 } | |
159 int GetStackSlotCount() const { return chunk()->GetSpillSlotCount(); } | |
160 int GetTotalFrameSlotCount() const { | |
161 return chunk()->GetTotalFrameSlotCount(); | |
162 } | |
163 | 159 |
164 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); } | 160 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); } |
165 | 161 |
166 void SaveCallerDoubles(); | 162 void SaveCallerDoubles(); |
167 void RestoreCallerDoubles(); | 163 void RestoreCallerDoubles(); |
168 | 164 |
169 // Code generation passes. Returns true if code generation should | 165 // Code generation passes. Returns true if code generation should |
170 // continue. | 166 // continue. |
171 void GenerateBodyInstructionPre(LInstruction* instr) override; | 167 void GenerateBodyInstructionPre(LInstruction* instr) override; |
172 bool GeneratePrologue(); | 168 bool GeneratePrologue(); |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 Label entry_; | 416 Label entry_; |
421 Label exit_; | 417 Label exit_; |
422 Label* external_exit_; | 418 Label* external_exit_; |
423 int instruction_index_; | 419 int instruction_index_; |
424 }; | 420 }; |
425 | 421 |
426 } // namespace internal | 422 } // namespace internal |
427 } // namespace v8 | 423 } // namespace v8 |
428 | 424 |
429 #endif // V8_CRANKSHAFT_MIPS64_LITHIUM_CODEGEN_MIPS_H_ | 425 #endif // V8_CRANKSHAFT_MIPS64_LITHIUM_CODEGEN_MIPS_H_ |
OLD | NEW |