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

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

Issue 14738009: Ensure that soft-deopts don't count against opt_count (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Implement x64 and ARM, review feedback Created 7 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 CallKind call_kind, 283 CallKind call_kind,
284 R1State r1_state); 284 R1State r1_state);
285 285
286 void LoadHeapObject(Register result, Handle<HeapObject> object); 286 void LoadHeapObject(Register result, Handle<HeapObject> object);
287 287
288 void RecordSafepointWithLazyDeopt(LInstruction* instr, 288 void RecordSafepointWithLazyDeopt(LInstruction* instr,
289 SafepointMode safepoint_mode); 289 SafepointMode safepoint_mode);
290 290
291 void RegisterEnvironmentForDeoptimization(LEnvironment* environment, 291 void RegisterEnvironmentForDeoptimization(LEnvironment* environment,
292 Safepoint::DeoptMode mode); 292 Safepoint::DeoptMode mode);
293 void DeoptimizeIf(Condition cc,
294 LEnvironment* environment,
295 Deoptimizer::BailoutType bailout_type);
293 void DeoptimizeIf(Condition cc, LEnvironment* environment); 296 void DeoptimizeIf(Condition cc, LEnvironment* environment);
297 void SoftDeoptimize(LEnvironment* environment);
294 298
295 void AddToTranslation(Translation* translation, 299 void AddToTranslation(Translation* translation,
296 LOperand* op, 300 LOperand* op,
297 bool is_tagged, 301 bool is_tagged,
298 bool is_uint32, 302 bool is_uint32,
299 bool arguments_known, 303 bool arguments_known,
300 int arguments_index, 304 int arguments_index,
301 int arguments_count); 305 int arguments_count);
302 void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code); 306 void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code);
303 void PopulateDeoptimizationData(Handle<Code> code); 307 void PopulateDeoptimizationData(Handle<Code> code);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 // Inputs are signed. 384 // Inputs are signed.
381 // All registers are clobbered. 385 // All registers are clobbered.
382 // If 'remainder' is no_reg, it is not computed. 386 // If 'remainder' is no_reg, it is not computed.
383 void EmitSignedIntegerDivisionByConstant(Register result, 387 void EmitSignedIntegerDivisionByConstant(Register result,
384 Register dividend, 388 Register dividend,
385 int32_t divisor, 389 int32_t divisor,
386 Register remainder, 390 Register remainder,
387 Register scratch, 391 Register scratch,
388 LEnvironment* environment); 392 LEnvironment* environment);
389 393
390 struct JumpTableEntry {
391 inline JumpTableEntry(Address entry, bool frame, bool is_lazy)
392 : label(),
393 address(entry),
394 needs_frame(frame),
395 is_lazy_deopt(is_lazy) { }
396 Label label;
397 Address address;
398 bool needs_frame;
399 bool is_lazy_deopt;
400 };
401
402 void EnsureSpaceForLazyDeopt(); 394 void EnsureSpaceForLazyDeopt();
403 void DoLoadKeyedExternalArray(LLoadKeyed* instr); 395 void DoLoadKeyedExternalArray(LLoadKeyed* instr);
404 void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr); 396 void DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr);
405 void DoLoadKeyedFixedArray(LLoadKeyed* instr); 397 void DoLoadKeyedFixedArray(LLoadKeyed* instr);
406 void DoStoreKeyedExternalArray(LStoreKeyed* instr); 398 void DoStoreKeyedExternalArray(LStoreKeyed* instr);
407 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr); 399 void DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr);
408 void DoStoreKeyedFixedArray(LStoreKeyed* instr); 400 void DoStoreKeyedFixedArray(LStoreKeyed* instr);
409 401
410 Zone* zone_; 402 Zone* zone_;
411 LPlatformChunk* const chunk_; 403 LPlatformChunk* const chunk_;
412 MacroAssembler* const masm_; 404 MacroAssembler* const masm_;
413 CompilationInfo* const info_; 405 CompilationInfo* const info_;
414 406
415 int current_block_; 407 int current_block_;
416 int current_instruction_; 408 int current_instruction_;
417 const ZoneList<LInstruction*>* instructions_; 409 const ZoneList<LInstruction*>* instructions_;
418 ZoneList<LEnvironment*> deoptimizations_; 410 ZoneList<LEnvironment*> deoptimizations_;
419 ZoneList<JumpTableEntry> deopt_jump_table_; 411 ZoneList<Deoptimizer::JumpTableEntry> deopt_jump_table_;
420 ZoneList<Handle<Object> > deoptimization_literals_; 412 ZoneList<Handle<Object> > deoptimization_literals_;
421 ZoneList<Handle<Map> > prototype_maps_; 413 ZoneList<Handle<Map> > prototype_maps_;
422 ZoneList<Handle<Map> > transition_maps_; 414 ZoneList<Handle<Map> > transition_maps_;
423 int inlined_function_count_; 415 int inlined_function_count_;
424 Scope* const scope_; 416 Scope* const scope_;
425 Status status_; 417 Status status_;
426 TranslationBuffer translations_; 418 TranslationBuffer translations_;
427 ZoneList<LDeferredCode*> deferred_; 419 ZoneList<LDeferredCode*> deferred_;
428 int osr_pc_offset_; 420 int osr_pc_offset_;
429 int last_lazy_deopt_pc_; 421 int last_lazy_deopt_pc_;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 LCodeGen* codegen_; 504 LCodeGen* codegen_;
513 Label entry_; 505 Label entry_;
514 Label exit_; 506 Label exit_;
515 Label* external_exit_; 507 Label* external_exit_;
516 int instruction_index_; 508 int instruction_index_;
517 }; 509 };
518 510
519 } } // namespace v8::internal 511 } } // namespace v8::internal
520 512
521 #endif // V8_ARM_LITHIUM_CODEGEN_ARM_H_ 513 #endif // V8_ARM_LITHIUM_CODEGEN_ARM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698