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

Side by Side Diff: src/x64/lithium-codegen-x64.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. 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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 jump_table_(4, info->zone()), 53 jump_table_(4, info->zone()),
54 deoptimization_literals_(8, info->zone()), 54 deoptimization_literals_(8, info->zone()),
55 inlined_function_count_(0), 55 inlined_function_count_(0),
56 scope_(info->scope()), 56 scope_(info->scope()),
57 translations_(info->zone()), 57 translations_(info->zone()),
58 deferred_(8, info->zone()), 58 deferred_(8, info->zone()),
59 osr_pc_offset_(-1), 59 osr_pc_offset_(-1),
60 frame_is_built_(false), 60 frame_is_built_(false),
61 safepoints_(info->zone()), 61 safepoints_(info->zone()),
62 resolver_(this), 62 resolver_(this),
63 expected_safepoint_kind_(Safepoint::kSimple), 63 expected_safepoint_kind_(Safepoint::kSimple) {
64 old_position_(RelocInfo::kNoPosition) {
65 PopulateDeoptimizationLiteralsWithInlinedFunctions(); 64 PopulateDeoptimizationLiteralsWithInlinedFunctions();
66 } 65 }
67 66
68 int LookupDestination(int block_id) const { 67 int LookupDestination(int block_id) const {
69 return chunk()->LookupDestination(block_id); 68 return chunk()->LookupDestination(block_id);
70 } 69 }
71 70
72 bool IsNextEmittedBlock(int block_id) const { 71 bool IsNextEmittedBlock(int block_id) const {
73 return LookupDestination(block_id) == GetNextEmittedBlock(); 72 return LookupDestination(block_id) == GetNextEmittedBlock();
74 } 73 }
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 // Support for recording safepoint and position information. 248 // Support for recording safepoint and position information.
250 void RecordSafepoint(LPointerMap* pointers, 249 void RecordSafepoint(LPointerMap* pointers,
251 Safepoint::Kind kind, 250 Safepoint::Kind kind,
252 int arguments, 251 int arguments,
253 Safepoint::DeoptMode mode); 252 Safepoint::DeoptMode mode);
254 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode); 253 void RecordSafepoint(LPointerMap* pointers, Safepoint::DeoptMode mode);
255 void RecordSafepoint(Safepoint::DeoptMode mode); 254 void RecordSafepoint(Safepoint::DeoptMode mode);
256 void RecordSafepointWithRegisters(LPointerMap* pointers, 255 void RecordSafepointWithRegisters(LPointerMap* pointers,
257 int arguments, 256 int arguments,
258 Safepoint::DeoptMode mode); 257 Safepoint::DeoptMode mode);
259 void RecordPosition(int position); 258 void RecordAndWritePosition(int position) V8_OVERRIDE;
260 void RecordAndUpdatePosition(int position) V8_OVERRIDE;
261 259
262 static Condition TokenToCondition(Token::Value op, bool is_unsigned); 260 static Condition TokenToCondition(Token::Value op, bool is_unsigned);
263 void EmitGoto(int block); 261 void EmitGoto(int block);
264 template<class InstrType> 262 template<class InstrType>
265 void EmitBranch(InstrType instr, Condition cc); 263 void EmitBranch(InstrType instr, Condition cc);
266 template<class InstrType> 264 template<class InstrType>
267 void EmitFalseBranch(InstrType instr, Condition cc); 265 void EmitFalseBranch(InstrType instr, Condition cc);
268 void EmitNumberUntagD( 266 void EmitNumberUntagD(
269 Register input, 267 Register input,
270 XMMRegister result, 268 XMMRegister result,
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 337
340 // Builder that keeps track of safepoints in the code. The table 338 // Builder that keeps track of safepoints in the code. The table
341 // itself is emitted at the end of the generated code. 339 // itself is emitted at the end of the generated code.
342 SafepointTableBuilder safepoints_; 340 SafepointTableBuilder safepoints_;
343 341
344 // Compiler from a set of parallel moves to a sequential list of moves. 342 // Compiler from a set of parallel moves to a sequential list of moves.
345 LGapResolver resolver_; 343 LGapResolver resolver_;
346 344
347 Safepoint::Kind expected_safepoint_kind_; 345 Safepoint::Kind expected_safepoint_kind_;
348 346
349 int old_position_;
350
351 class PushSafepointRegistersScope V8_FINAL BASE_EMBEDDED { 347 class PushSafepointRegistersScope V8_FINAL BASE_EMBEDDED {
352 public: 348 public:
353 explicit PushSafepointRegistersScope(LCodeGen* codegen) 349 explicit PushSafepointRegistersScope(LCodeGen* codegen)
354 : codegen_(codegen) { 350 : codegen_(codegen) {
355 ASSERT(codegen_->info()->is_calling()); 351 ASSERT(codegen_->info()->is_calling());
356 ASSERT(codegen_->expected_safepoint_kind_ == Safepoint::kSimple); 352 ASSERT(codegen_->expected_safepoint_kind_ == Safepoint::kSimple);
357 codegen_->masm_->PushSafepointRegisters(); 353 codegen_->masm_->PushSafepointRegisters();
358 codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters; 354 codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters;
359 } 355 }
360 356
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 Label entry_; 399 Label entry_;
404 Label exit_; 400 Label exit_;
405 Label done_; 401 Label done_;
406 Label* external_exit_; 402 Label* external_exit_;
407 int instruction_index_; 403 int instruction_index_;
408 }; 404 };
409 405
410 } } // namespace v8::internal 406 } } // namespace v8::internal
411 407
412 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ 408 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698