| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_CRANKSHAFT_LITHIUM_H_ | 5 #ifndef V8_CRANKSHAFT_LITHIUM_H_ |
| 6 #define V8_CRANKSHAFT_LITHIUM_H_ | 6 #define V8_CRANKSHAFT_LITHIUM_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 LSubKindOperand() : LOperand() { } | 337 LSubKindOperand() : LOperand() { } |
| 338 explicit LSubKindOperand(int index) : LOperand(kOperandKind, index) { } | 338 explicit LSubKindOperand(int index) : LOperand(kOperandKind, index) { } |
| 339 }; | 339 }; |
| 340 | 340 |
| 341 | 341 |
| 342 #define LITHIUM_TYPEDEF_SUBKIND_OPERAND_CLASS(name, type, number) \ | 342 #define LITHIUM_TYPEDEF_SUBKIND_OPERAND_CLASS(name, type, number) \ |
| 343 typedef LSubKindOperand<LOperand::type, number> L##name; | 343 typedef LSubKindOperand<LOperand::type, number> L##name; |
| 344 LITHIUM_OPERAND_LIST(LITHIUM_TYPEDEF_SUBKIND_OPERAND_CLASS) | 344 LITHIUM_OPERAND_LIST(LITHIUM_TYPEDEF_SUBKIND_OPERAND_CLASS) |
| 345 #undef LITHIUM_TYPEDEF_SUBKIND_OPERAND_CLASS | 345 #undef LITHIUM_TYPEDEF_SUBKIND_OPERAND_CLASS |
| 346 | 346 |
| 347 | |
| 348 class LParallelMove final : public ZoneObject { | 347 class LParallelMove final : public ZoneObject { |
| 349 public: | 348 public: |
| 350 explicit LParallelMove(Zone* zone) : move_operands_(4, zone) { } | 349 explicit LParallelMove(Zone* zone) : move_operands_(4, zone) { } |
| 351 | 350 |
| 352 void AddMove(LOperand* from, LOperand* to, Zone* zone) { | 351 void AddMove(LOperand* from, LOperand* to, Zone* zone) { |
| 353 move_operands_.Add(LMoveOperands(from, to), zone); | 352 move_operands_.Add(LMoveOperands(from, to), zone); |
| 354 } | 353 } |
| 355 | 354 |
| 356 bool IsRedundant() const; | 355 bool IsRedundant() const; |
| 357 | 356 |
| 358 ZoneList<LMoveOperands>* move_operands() { return &move_operands_; } | 357 ZoneList<LMoveOperands>* move_operands() { return &move_operands_; } |
| 359 | 358 |
| 360 void PrintDataTo(StringStream* stream) const; | 359 void PrintDataTo(StringStream* stream) const; |
| 361 | 360 |
| 362 private: | 361 private: |
| 363 ZoneList<LMoveOperands> move_operands_; | 362 ZoneList<LMoveOperands> move_operands_; |
| 364 }; | 363 }; |
| 365 | 364 |
| 366 | |
| 367 class LPointerMap final : public ZoneObject { | 365 class LPointerMap final : public ZoneObject { |
| 368 public: | 366 public: |
| 369 explicit LPointerMap(Zone* zone) | 367 explicit LPointerMap(Zone* zone) |
| 370 : pointer_operands_(8, zone), | 368 : pointer_operands_(8, zone), |
| 371 untagged_operands_(0, zone), | 369 untagged_operands_(0, zone), |
| 372 lithium_position_(-1) { } | 370 lithium_position_(-1) { } |
| 373 | 371 |
| 374 const ZoneList<LOperand*>* GetNormalizedOperands() { | 372 const ZoneList<LOperand*>* GetNormalizedOperands() { |
| 375 for (int i = 0; i < untagged_operands_.length(); ++i) { | 373 for (int i = 0; i < untagged_operands_.length(); ++i) { |
| 376 RemovePointer(untagged_operands_[i]); | 374 RemovePointer(untagged_operands_[i]); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 389 void RemovePointer(LOperand* op); | 387 void RemovePointer(LOperand* op); |
| 390 void RecordUntagged(LOperand* op, Zone* zone); | 388 void RecordUntagged(LOperand* op, Zone* zone); |
| 391 void PrintTo(StringStream* stream); | 389 void PrintTo(StringStream* stream); |
| 392 | 390 |
| 393 private: | 391 private: |
| 394 ZoneList<LOperand*> pointer_operands_; | 392 ZoneList<LOperand*> pointer_operands_; |
| 395 ZoneList<LOperand*> untagged_operands_; | 393 ZoneList<LOperand*> untagged_operands_; |
| 396 int lithium_position_; | 394 int lithium_position_; |
| 397 }; | 395 }; |
| 398 | 396 |
| 399 | |
| 400 class LEnvironment final : public ZoneObject { | 397 class LEnvironment final : public ZoneObject { |
| 401 public: | 398 public: |
| 402 LEnvironment(Handle<JSFunction> closure, | 399 LEnvironment(Handle<JSFunction> closure, |
| 403 FrameType frame_type, | 400 FrameType frame_type, |
| 404 BailoutId ast_id, | 401 BailoutId ast_id, |
| 405 int parameter_count, | 402 int parameter_count, |
| 406 int argument_count, | 403 int argument_count, |
| 407 int value_count, | 404 int value_count, |
| 408 LEnvironment* outer, | 405 LEnvironment* outer, |
| 409 HEnterInlined* entry, | 406 HEnterInlined* entry, |
| (...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 847 InputIterator input_iterator_; | 844 InputIterator input_iterator_; |
| 848 DeepIterator env_iterator_; | 845 DeepIterator env_iterator_; |
| 849 }; | 846 }; |
| 850 | 847 |
| 851 class LInstruction; | 848 class LInstruction; |
| 852 class LCodeGen; | 849 class LCodeGen; |
| 853 } // namespace internal | 850 } // namespace internal |
| 854 } // namespace v8 | 851 } // namespace v8 |
| 855 | 852 |
| 856 #endif // V8_CRANKSHAFT_LITHIUM_H_ | 853 #endif // V8_CRANKSHAFT_LITHIUM_H_ |
| OLD | NEW |