| Index: src/lithium.cc
|
| diff --git a/src/lithium.cc b/src/lithium.cc
|
| index 1a97df67cdcf097e1e110612c1bbfcaa90ec41d2..665ef4bb8736ffa47986ffd9451f1c30cc89cd75 100644
|
| --- a/src/lithium.cc
|
| +++ b/src/lithium.cc
|
| @@ -134,6 +134,17 @@ void LOperand::TearDownCaches() {
|
| }
|
|
|
|
|
| +bool LMoveOperands::UsesRegeneration() const {
|
| + bool prefer_regen =
|
| + (source_->parent_linstr() == destination_->parent_linstr()) &&
|
| + (destination_->parent_linstr() != NULL) &&
|
| + destination_->parent_linstr()->PreferRegenerateToSpill();
|
| + bool one_is_mem = source_->IsInMemory() || destination_->IsInMemory();
|
| + bool one_is_reg = source_->IsInRegister() || destination_->IsInRegister();
|
| + return prefer_regen && one_is_mem && one_is_reg;
|
| +}
|
| +
|
| +
|
| bool LParallelMove::IsRedundant() const {
|
| for (int i = 0; i < move_operands_.length(); ++i) {
|
| if (!move_operands_[i].IsRedundant()) return false;
|
|
|