Chromium Code Reviews

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

Issue 24957003: Add tool to visualize machine code/lithium. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Final polish before review Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | 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 46 matching lines...)
57 scope_(info->scope()), 57 scope_(info->scope()),
58 translations_(info->zone()), 58 translations_(info->zone()),
59 deferred_(8, info->zone()), 59 deferred_(8, info->zone()),
60 dynamic_frame_alignment_(false), 60 dynamic_frame_alignment_(false),
61 support_aligned_spilled_doubles_(false), 61 support_aligned_spilled_doubles_(false),
62 osr_pc_offset_(-1), 62 osr_pc_offset_(-1),
63 frame_is_built_(false), 63 frame_is_built_(false),
64 x87_stack_(assembler), 64 x87_stack_(assembler),
65 safepoints_(info->zone()), 65 safepoints_(info->zone()),
66 resolver_(this), 66 resolver_(this),
67 expected_safepoint_kind_(Safepoint::kSimple), 67 expected_safepoint_kind_(Safepoint::kSimple) {
68 old_position_(RelocInfo::kNoPosition) {
69 PopulateDeoptimizationLiteralsWithInlinedFunctions(); 68 PopulateDeoptimizationLiteralsWithInlinedFunctions();
70 } 69 }
71 70
72 int LookupDestination(int block_id) const { 71 int LookupDestination(int block_id) const {
73 return chunk()->LookupDestination(block_id); 72 return chunk()->LookupDestination(block_id);
74 } 73 }
75 74
76 bool IsNextEmittedBlock(int block_id) const { 75 bool IsNextEmittedBlock(int block_id) const {
77 return LookupDestination(block_id) == GetNextEmittedBlock(); 76 return LookupDestination(block_id) == GetNextEmittedBlock();
78 } 77 }
(...skipping 222 matching lines...)
301 // Support for recording safepoint and position information. 300 // Support for recording safepoint and position information.
302 void RecordSafepoint(LPointerMap* pointers, 301 void RecordSafepoint(LPointerMap* pointers,
303 Safepoint::Kind kind, 302 Safepoint::Kind kind,
304 int arguments, 303 int arguments,
305 Safepoint::DeoptMode mode); 304 Safepoint::DeoptMode mode);
306 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode); 305 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode);
307 void RecordSafepoint(Safepoint::DeoptMode mode); 306 void RecordSafepoint(Safepoint::DeoptMode mode);
308 void RecordSafepointWithRegisters(LPointerMap* pointers, 307 void RecordSafepointWithRegisters(LPointerMap* pointers,
309 int arguments, 308 int arguments,
310 Safepoint::DeoptMode mode); 309 Safepoint::DeoptMode mode);
311 void RecordPosition(int position);
312 310
313 void RecordAndUpdatePosition(int position) V8_OVERRIDE; 311 void RecordAndWritePosition(int position) V8_OVERRIDE;
314 312
315 static Condition TokenToCondition(Token::Value op, bool is_unsigned); 313 static Condition TokenToCondition(Token::Value op, bool is_unsigned);
316 void EmitGoto(int block); 314 void EmitGoto(int block);
317 template<class InstrType> 315 template<class InstrType>
318 void EmitBranch(InstrType instr, Condition cc); 316 void EmitBranch(InstrType instr, Condition cc);
319 template<class InstrType> 317 template<class InstrType>
320 void EmitFalseBranch(InstrType instr, Condition cc); 318 void EmitFalseBranch(InstrType instr, Condition cc);
321 void EmitNumberUntagD( 319 void EmitNumberUntagD(
322 Register input, 320 Register input,
323 Register temp, 321 Register temp,
(...skipping 141 matching lines...)
465 463
466 // Builder that keeps track of safepoints in the code. The table 464 // Builder that keeps track of safepoints in the code. The table
467 // itself is emitted at the end of the generated code. 465 // itself is emitted at the end of the generated code.
468 SafepointTableBuilder safepoints_; 466 SafepointTableBuilder safepoints_;
469 467
470 // Compiler from a set of parallel moves to a sequential list of moves. 468 // Compiler from a set of parallel moves to a sequential list of moves.
471 LGapResolver resolver_; 469 LGapResolver resolver_;
472 470
473 Safepoint::Kind expected_safepoint_kind_; 471 Safepoint::Kind expected_safepoint_kind_;
474 472
475 int old_position_;
476
477 class PushSafepointRegistersScope V8_FINAL BASE_EMBEDDED { 473 class PushSafepointRegistersScope V8_FINAL BASE_EMBEDDED {
478 public: 474 public:
479 explicit PushSafepointRegistersScope(LCodeGen* codegen) 475 explicit PushSafepointRegistersScope(LCodeGen* codegen)
480 : codegen_(codegen) { 476 : codegen_(codegen) {
481 ASSERT(codegen_->expected_safepoint_kind_ == Safepoint::kSimple); 477 ASSERT(codegen_->expected_safepoint_kind_ == Safepoint::kSimple);
482 codegen_->masm_->PushSafepointRegisters(); 478 codegen_->masm_->PushSafepointRegisters();
483 codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters; 479 codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters;
484 ASSERT(codegen_->info()->is_calling()); 480 ASSERT(codegen_->info()->is_calling());
485 } 481 }
486 482
(...skipping 45 matching lines...)
532 Label exit_; 528 Label exit_;
533 Label* external_exit_; 529 Label* external_exit_;
534 Label done_; 530 Label done_;
535 int instruction_index_; 531 int instruction_index_;
536 LCodeGen::X87Stack x87_stack_; 532 LCodeGen::X87Stack x87_stack_;
537 }; 533 };
538 534
539 } } // namespace v8::internal 535 } } // namespace v8::internal
540 536
541 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_ 537 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_
OLDNEW

Powered by Google App Engine