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

Side by Side Diff: src/x64/lithium-codegen-x64.h

Issue 1175963002: Make writing of frame translation platform independent. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 5 years, 6 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/ppc/lithium-codegen-ppc.cc ('k') | src/x64/lithium-codegen-x64.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 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_X64_LITHIUM_CODEGEN_X64_H_ 5 #ifndef V8_X64_LITHIUM_CODEGEN_X64_H_
6 #define V8_X64_LITHIUM_CODEGEN_X64_H_ 6 #define V8_X64_LITHIUM_CODEGEN_X64_H_
7 7
8 #include "src/x64/lithium-x64.h" 8 #include "src/x64/lithium-x64.h"
9 9
10 #include "src/base/logging.h" 10 #include "src/base/logging.h"
(...skipping 10 matching lines...) Expand all
21 // Forward declarations. 21 // Forward declarations.
22 class LDeferredCode; 22 class LDeferredCode;
23 class SafepointGenerator; 23 class SafepointGenerator;
24 24
25 class LCodeGen: public LCodeGenBase { 25 class LCodeGen: public LCodeGenBase {
26 public: 26 public:
27 LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info) 27 LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info)
28 : LCodeGenBase(chunk, assembler, info), 28 : LCodeGenBase(chunk, assembler, info),
29 deoptimizations_(4, info->zone()), 29 deoptimizations_(4, info->zone()),
30 jump_table_(4, info->zone()), 30 jump_table_(4, info->zone()),
31 deoptimization_literals_(8, info->zone()),
32 inlined_function_count_(0), 31 inlined_function_count_(0),
33 scope_(info->scope()), 32 scope_(info->scope()),
34 translations_(info->zone()), 33 translations_(info->zone()),
35 deferred_(8, info->zone()), 34 deferred_(8, info->zone()),
36 osr_pc_offset_(-1), 35 osr_pc_offset_(-1),
37 frame_is_built_(false), 36 frame_is_built_(false),
38 safepoints_(info->zone()), 37 safepoints_(info->zone()),
39 resolver_(this), 38 resolver_(this),
40 expected_safepoint_kind_(Safepoint::kSimple) { 39 expected_safepoint_kind_(Safepoint::kSimple) {
41 PopulateDeoptimizationLiteralsWithInlinedFunctions(); 40 PopulateDeoptimizationLiteralsWithInlinedFunctions();
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 } 210 }
212 211
213 void AddToTranslation(LEnvironment* environment, 212 void AddToTranslation(LEnvironment* environment,
214 Translation* translation, 213 Translation* translation,
215 LOperand* op, 214 LOperand* op,
216 bool is_tagged, 215 bool is_tagged,
217 bool is_uint32, 216 bool is_uint32,
218 int* object_index_pointer, 217 int* object_index_pointer,
219 int* dematerialized_index_pointer); 218 int* dematerialized_index_pointer);
220 void PopulateDeoptimizationData(Handle<Code> code); 219 void PopulateDeoptimizationData(Handle<Code> code);
221 int DefineDeoptimizationLiteral(Handle<Object> literal);
222 220
223 void PopulateDeoptimizationLiteralsWithInlinedFunctions(); 221 void PopulateDeoptimizationLiteralsWithInlinedFunctions();
224 222
225 Register ToRegister(int index) const; 223 Register ToRegister(int index) const;
226 XMMRegister ToDoubleRegister(int index) const; 224 XMMRegister ToDoubleRegister(int index) const;
227 Operand BuildFastArrayOperand( 225 Operand BuildFastArrayOperand(
228 LOperand* elements_pointer, 226 LOperand* elements_pointer,
229 LOperand* key, 227 LOperand* key,
230 Representation key_representation, 228 Representation key_representation,
231 ElementsKind elements_kind, 229 ElementsKind elements_kind,
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 #ifdef _MSC_VER 309 #ifdef _MSC_VER
312 // On windows, you may not access the stack more than one page below 310 // On windows, you may not access the stack more than one page below
313 // the most recently mapped page. To make the allocated area randomly 311 // the most recently mapped page. To make the allocated area randomly
314 // accessible, we write an arbitrary value to each page in range 312 // accessible, we write an arbitrary value to each page in range
315 // rsp + offset - page_size .. rsp in turn. 313 // rsp + offset - page_size .. rsp in turn.
316 void MakeSureStackPagesMapped(int offset); 314 void MakeSureStackPagesMapped(int offset);
317 #endif 315 #endif
318 316
319 ZoneList<LEnvironment*> deoptimizations_; 317 ZoneList<LEnvironment*> deoptimizations_;
320 ZoneList<Deoptimizer::JumpTableEntry> jump_table_; 318 ZoneList<Deoptimizer::JumpTableEntry> jump_table_;
321 ZoneList<Handle<Object> > deoptimization_literals_;
322 int inlined_function_count_; 319 int inlined_function_count_;
323 Scope* const scope_; 320 Scope* const scope_;
324 TranslationBuffer translations_; 321 TranslationBuffer translations_;
325 ZoneList<LDeferredCode*> deferred_; 322 ZoneList<LDeferredCode*> deferred_;
326 int osr_pc_offset_; 323 int osr_pc_offset_;
327 bool frame_is_built_; 324 bool frame_is_built_;
328 325
329 // Builder that keeps track of safepoints in the code. The table 326 // Builder that keeps track of safepoints in the code. The table
330 // itself is emitted at the end of the generated code. 327 // itself is emitted at the end of the generated code.
331 SafepointTableBuilder safepoints_; 328 SafepointTableBuilder safepoints_;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 Label entry_; 387 Label entry_;
391 Label exit_; 388 Label exit_;
392 Label done_; 389 Label done_;
393 Label* external_exit_; 390 Label* external_exit_;
394 int instruction_index_; 391 int instruction_index_;
395 }; 392 };
396 393
397 } } // namespace v8::internal 394 } } // namespace v8::internal
398 395
399 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ 396 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_
OLDNEW
« no previous file with comments | « src/ppc/lithium-codegen-ppc.cc ('k') | src/x64/lithium-codegen-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698