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

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

Issue 7037006: Revert r7909 (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/arm/lithium-codegen-arm.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 class LCodeGen BASE_EMBEDDED { 44 class LCodeGen BASE_EMBEDDED {
45 public: 45 public:
46 LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info) 46 LCodeGen(LChunk* chunk, MacroAssembler* assembler, CompilationInfo* info)
47 : chunk_(chunk), 47 : chunk_(chunk),
48 masm_(assembler), 48 masm_(assembler),
49 info_(info), 49 info_(info),
50 current_block_(-1), 50 current_block_(-1),
51 current_instruction_(-1), 51 current_instruction_(-1),
52 instructions_(chunk->instructions()), 52 instructions_(chunk->instructions()),
53 deoptimizations_(4), 53 deoptimizations_(4),
54 deopt_jump_table_(4),
55 deoptimization_literals_(8), 54 deoptimization_literals_(8),
56 inlined_function_count_(0), 55 inlined_function_count_(0),
57 scope_(info->scope()), 56 scope_(info->scope()),
58 status_(UNUSED), 57 status_(UNUSED),
59 deferred_(8), 58 deferred_(8),
60 osr_pc_offset_(-1), 59 osr_pc_offset_(-1),
61 resolver_(this), 60 resolver_(this),
62 expected_safepoint_kind_(Safepoint::kSimple) { 61 expected_safepoint_kind_(Safepoint::kSimple) {
63 PopulateDeoptimizationLiteralsWithInlinedFunctions(); 62 PopulateDeoptimizationLiteralsWithInlinedFunctions();
64 } 63 }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 void Abort(const char* format, ...); 165 void Abort(const char* format, ...);
167 void Comment(const char* format, ...); 166 void Comment(const char* format, ...);
168 167
169 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code); } 168 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code); }
170 169
171 // Code generation passes. Returns true if code generation should 170 // Code generation passes. Returns true if code generation should
172 // continue. 171 // continue.
173 bool GeneratePrologue(); 172 bool GeneratePrologue();
174 bool GenerateBody(); 173 bool GenerateBody();
175 bool GenerateDeferredCode(); 174 bool GenerateDeferredCode();
176 bool GenerateDeoptJumpTable();
177 bool GenerateSafepointTable(); 175 bool GenerateSafepointTable();
178 176
179 enum SafepointMode { 177 enum SafepointMode {
180 RECORD_SIMPLE_SAFEPOINT, 178 RECORD_SIMPLE_SAFEPOINT,
181 RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS 179 RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS
182 }; 180 };
183 181
184 void CallCode(Handle<Code> code, 182 void CallCode(Handle<Code> code,
185 RelocInfo::Mode mode, 183 RelocInfo::Mode mode,
186 LInstruction* instr); 184 LInstruction* instr);
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 282
285 // Emits optimized code for %_IsConstructCall(). 283 // Emits optimized code for %_IsConstructCall().
286 // Caller should branch on equal condition. 284 // Caller should branch on equal condition.
287 void EmitIsConstructCall(Register temp1, Register temp2); 285 void EmitIsConstructCall(Register temp1, Register temp2);
288 286
289 void EmitLoadFieldOrConstantFunction(Register result, 287 void EmitLoadFieldOrConstantFunction(Register result,
290 Register object, 288 Register object,
291 Handle<Map> type, 289 Handle<Map> type,
292 Handle<String> name); 290 Handle<String> name);
293 291
294 struct JumpTableEntry {
295 explicit inline JumpTableEntry(Address entry)
296 : label(),
297 address(entry) { }
298 Label label;
299 Address address;
300 };
301
302 LChunk* const chunk_; 292 LChunk* const chunk_;
303 MacroAssembler* const masm_; 293 MacroAssembler* const masm_;
304 CompilationInfo* const info_; 294 CompilationInfo* const info_;
305 295
306 int current_block_; 296 int current_block_;
307 int current_instruction_; 297 int current_instruction_;
308 const ZoneList<LInstruction*>* instructions_; 298 const ZoneList<LInstruction*>* instructions_;
309 ZoneList<LEnvironment*> deoptimizations_; 299 ZoneList<LEnvironment*> deoptimizations_;
310 ZoneList<JumpTableEntry> deopt_jump_table_;
311 ZoneList<Handle<Object> > deoptimization_literals_; 300 ZoneList<Handle<Object> > deoptimization_literals_;
312 int inlined_function_count_; 301 int inlined_function_count_;
313 Scope* const scope_; 302 Scope* const scope_;
314 Status status_; 303 Status status_;
315 TranslationBuffer translations_; 304 TranslationBuffer translations_;
316 ZoneList<LDeferredCode*> deferred_; 305 ZoneList<LDeferredCode*> deferred_;
317 int osr_pc_offset_; 306 int osr_pc_offset_;
318 307
319 // Builder that keeps track of safepoints in the code. The table 308 // Builder that keeps track of safepoints in the code. The table
320 // itself is emitted at the end of the generated code. 309 // itself is emitted at the end of the generated code.
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 private: 382 private:
394 LCodeGen* codegen_; 383 LCodeGen* codegen_;
395 Label entry_; 384 Label entry_;
396 Label exit_; 385 Label exit_;
397 Label* external_exit_; 386 Label* external_exit_;
398 }; 387 };
399 388
400 } } // namespace v8::internal 389 } } // namespace v8::internal
401 390
402 #endif // V8_ARM_LITHIUM_CODEGEN_ARM_H_ 391 #endif // V8_ARM_LITHIUM_CODEGEN_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/lithium-codegen-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698