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

Side by Side Diff: src/ppc/lithium-codegen-ppc.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/mips64/lithium-codegen-mips64.cc ('k') | src/ppc/lithium-codegen-ppc.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 #ifndef V8_PPC_LITHIUM_CODEGEN_PPC_H_ 5 #ifndef V8_PPC_LITHIUM_CODEGEN_PPC_H_
6 #define V8_PPC_LITHIUM_CODEGEN_PPC_H_ 6 #define V8_PPC_LITHIUM_CODEGEN_PPC_H_
7 7
8 #include "src/ppc/lithium-ppc.h" 8 #include "src/ppc/lithium-ppc.h"
9 9
10 #include "src/ppc/lithium-gap-resolver-ppc.h" 10 #include "src/ppc/lithium-gap-resolver-ppc.h"
11 #include "src/deoptimizer.h" 11 #include "src/deoptimizer.h"
12 #include "src/lithium-codegen.h" 12 #include "src/lithium-codegen.h"
13 #include "src/safepoint-table.h" 13 #include "src/safepoint-table.h"
14 #include "src/scopes.h" 14 #include "src/scopes.h"
15 #include "src/utils.h" 15 #include "src/utils.h"
16 16
17 namespace v8 { 17 namespace v8 {
18 namespace internal { 18 namespace internal {
19 19
20 // Forward declarations. 20 // Forward declarations.
21 class LDeferredCode; 21 class LDeferredCode;
22 class SafepointGenerator; 22 class SafepointGenerator;
23 23
24 class LCodeGen : public LCodeGenBase { 24 class LCodeGen : public LCodeGenBase {
25 public: 25 public:
26 LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info) 26 LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info)
27 : LCodeGenBase(chunk, assembler, info), 27 : LCodeGenBase(chunk, assembler, info),
28 deoptimizations_(4, info->zone()), 28 deoptimizations_(4, info->zone()),
29 jump_table_(4, info->zone()), 29 jump_table_(4, info->zone()),
30 deoptimization_literals_(8, info->zone()),
31 inlined_function_count_(0), 30 inlined_function_count_(0),
32 scope_(info->scope()), 31 scope_(info->scope()),
33 translations_(info->zone()), 32 translations_(info->zone()),
34 deferred_(8, info->zone()), 33 deferred_(8, info->zone()),
35 osr_pc_offset_(-1), 34 osr_pc_offset_(-1),
36 frame_is_built_(false), 35 frame_is_built_(false),
37 safepoints_(info->zone()), 36 safepoints_(info->zone()),
38 resolver_(this), 37 resolver_(this),
39 expected_safepoint_kind_(Safepoint::kSimple) { 38 expected_safepoint_kind_(Safepoint::kSimple) {
40 PopulateDeoptimizationLiteralsWithInlinedFunctions(); 39 PopulateDeoptimizationLiteralsWithInlinedFunctions();
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 Deoptimizer::DeoptReason deopt_reason, 205 Deoptimizer::DeoptReason deopt_reason,
207 Deoptimizer::BailoutType bailout_type, CRegister cr = cr7); 206 Deoptimizer::BailoutType bailout_type, CRegister cr = cr7);
208 void DeoptimizeIf(Condition condition, LInstruction* instr, 207 void DeoptimizeIf(Condition condition, LInstruction* instr,
209 Deoptimizer::DeoptReason deopt_reason, CRegister cr = cr7); 208 Deoptimizer::DeoptReason deopt_reason, CRegister cr = cr7);
210 209
211 void AddToTranslation(LEnvironment* environment, Translation* translation, 210 void AddToTranslation(LEnvironment* environment, Translation* translation,
212 LOperand* op, bool is_tagged, bool is_uint32, 211 LOperand* op, bool is_tagged, bool is_uint32,
213 int* object_index_pointer, 212 int* object_index_pointer,
214 int* dematerialized_index_pointer); 213 int* dematerialized_index_pointer);
215 void PopulateDeoptimizationData(Handle<Code> code); 214 void PopulateDeoptimizationData(Handle<Code> code);
216 int DefineDeoptimizationLiteral(Handle<Object> literal);
217 215
218 void PopulateDeoptimizationLiteralsWithInlinedFunctions(); 216 void PopulateDeoptimizationLiteralsWithInlinedFunctions();
219 217
220 Register ToRegister(int index) const; 218 Register ToRegister(int index) const;
221 DoubleRegister ToDoubleRegister(int index) const; 219 DoubleRegister ToDoubleRegister(int index) const;
222 220
223 MemOperand BuildSeqStringOperand(Register string, LOperand* index, 221 MemOperand BuildSeqStringOperand(Register string, LOperand* index,
224 String::Encoding encoding); 222 String::Encoding encoding);
225 223
226 void EmitMathAbs(LMathAbs* instr); 224 void EmitMathAbs(LMathAbs* instr);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 void DoLoadKeyedFixedArray(LLoadKeyed* instr); 281 void DoLoadKeyedFixedArray(LLoadKeyed* instr);
284 void DoStoreKeyedExternalArray(LStoreKeyed* instr); 282 void DoStoreKeyedExternalArray(LStoreKeyed* instr);
285 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr); 283 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr);
286 void DoStoreKeyedFixedArray(LStoreKeyed* instr); 284 void DoStoreKeyedFixedArray(LStoreKeyed* instr);
287 285
288 template <class T> 286 template <class T>
289 void EmitVectorLoadICRegisters(T* instr); 287 void EmitVectorLoadICRegisters(T* instr);
290 288
291 ZoneList<LEnvironment*> deoptimizations_; 289 ZoneList<LEnvironment*> deoptimizations_;
292 ZoneList<Deoptimizer::JumpTableEntry> jump_table_; 290 ZoneList<Deoptimizer::JumpTableEntry> jump_table_;
293 ZoneList<Handle<Object> > deoptimization_literals_;
294 int inlined_function_count_; 291 int inlined_function_count_;
295 Scope* const scope_; 292 Scope* const scope_;
296 TranslationBuffer translations_; 293 TranslationBuffer translations_;
297 ZoneList<LDeferredCode*> deferred_; 294 ZoneList<LDeferredCode*> deferred_;
298 int osr_pc_offset_; 295 int osr_pc_offset_;
299 bool frame_is_built_; 296 bool frame_is_built_;
300 297
301 // Builder that keeps track of safepoints in the code. The table 298 // Builder that keeps track of safepoints in the code. The table
302 // itself is emitted at the end of the generated code. 299 // itself is emitted at the end of the generated code.
303 SafepointTableBuilder safepoints_; 300 SafepointTableBuilder safepoints_;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 LCodeGen* codegen_; 359 LCodeGen* codegen_;
363 Label entry_; 360 Label entry_;
364 Label exit_; 361 Label exit_;
365 Label* external_exit_; 362 Label* external_exit_;
366 int instruction_index_; 363 int instruction_index_;
367 }; 364 };
368 } 365 }
369 } // namespace v8::internal 366 } // namespace v8::internal
370 367
371 #endif // V8_PPC_LITHIUM_CODEGEN_PPC_H_ 368 #endif // V8_PPC_LITHIUM_CODEGEN_PPC_H_
OLDNEW
« no previous file with comments | « src/mips64/lithium-codegen-mips64.cc ('k') | src/ppc/lithium-codegen-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698