Index: src/deoptimizer.cc |
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
index 723d3f692e6b3e45e415534d20d21e1eb977ee03..ea27bc55112b92837f444b34ca142b7993cd30ec 100644 |
--- a/src/deoptimizer.cc |
+++ b/src/deoptimizer.cc |
@@ -787,7 +787,6 @@ void Deoptimizer::DoComputeOutputFrames() { |
case Translation::DOUBLE_STACK_SLOT: |
case Translation::LITERAL: |
case Translation::ARGUMENTS_OBJECT: |
- case Translation::DUPLICATE: |
default: |
UNREACHABLE(); |
break; |
@@ -1715,14 +1714,8 @@ void Deoptimizer::DoTranslateCommand(TranslationIterator* iterator, |
const intptr_t kPlaceholder = reinterpret_cast<intptr_t>(Smi::FromInt(0)); |
bool is_native = value_type == TRANSLATED_VALUE_IS_NATIVE; |
- // Ignore commands marked as duplicate and act on the first non-duplicate. |
Translation::Opcode opcode = |
static_cast<Translation::Opcode>(iterator->Next()); |
- while (opcode == Translation::DUPLICATE) { |
- opcode = static_cast<Translation::Opcode>(iterator->Next()); |
- iterator->Skip(Translation::NumberOfOperandsFor(opcode)); |
- opcode = static_cast<Translation::Opcode>(iterator->Next()); |
- } |
switch (opcode) { |
case Translation::BEGIN: |
@@ -1732,9 +1725,6 @@ void Deoptimizer::DoTranslateCommand(TranslationIterator* iterator, |
case Translation::GETTER_STUB_FRAME: |
case Translation::SETTER_STUB_FRAME: |
case Translation::COMPILED_STUB_FRAME: |
- case Translation::DUPLICATE: |
- UNREACHABLE(); |
Michael Starzinger
2013/06/11 17:24:07
Don't remove the unreachable assertion, other case
titzer
2013/06/12 09:30:04
Done.
|
- return; |
case Translation::REGISTER: { |
int input_reg = iterator->Next(); |
@@ -1998,10 +1988,6 @@ bool Deoptimizer::DoOsrTranslateCommand(TranslationIterator* iterator, |
Translation::Opcode opcode = |
static_cast<Translation::Opcode>(iterator->Next()); |
- bool duplicate = (opcode == Translation::DUPLICATE); |
- if (duplicate) { |
- opcode = static_cast<Translation::Opcode>(iterator->Next()); |
- } |
switch (opcode) { |
case Translation::BEGIN: |
@@ -2011,9 +1997,6 @@ bool Deoptimizer::DoOsrTranslateCommand(TranslationIterator* iterator, |
case Translation::GETTER_STUB_FRAME: |
case Translation::SETTER_STUB_FRAME: |
case Translation::COMPILED_STUB_FRAME: |
- case Translation::DUPLICATE: |
- UNREACHABLE(); // Malformed input. |
Michael Starzinger
2013/06/11 17:24:07
Don't remove the unreachable assertion, other case
titzer
2013/06/12 09:30:04
Done.
|
- return false; |
case Translation::REGISTER: { |
int output_reg = iterator->Next(); |
@@ -2170,7 +2153,7 @@ bool Deoptimizer::DoOsrTranslateCommand(TranslationIterator* iterator, |
} |
} |
- if (!duplicate) *input_offset -= kPointerSize; |
+ *input_offset -= kPointerSize; |
return true; |
} |
@@ -2620,15 +2603,8 @@ void Translation::StoreArgumentsObject(bool args_known, |
} |
-void Translation::MarkDuplicate() { |
- buffer_->Add(DUPLICATE, zone()); |
-} |
- |
- |
int Translation::NumberOfOperandsFor(Opcode opcode) { |
switch (opcode) { |
- case DUPLICATE: |
- return 0; |
case GETTER_STUB_FRAME: |
case SETTER_STUB_FRAME: |
case REGISTER: |
@@ -2693,8 +2669,6 @@ const char* Translation::StringFor(Opcode opcode) { |
return "LITERAL"; |
case ARGUMENTS_OBJECT: |
return "ARGUMENTS_OBJECT"; |
- case DUPLICATE: |
- return "DUPLICATE"; |
} |
UNREACHABLE(); |
return ""; |
@@ -2746,7 +2720,6 @@ SlotRef SlotRef::ComputeSlotForNextArgument(TranslationIterator* iterator, |
case Translation::INT32_REGISTER: |
case Translation::UINT32_REGISTER: |
case Translation::DOUBLE_REGISTER: |
- case Translation::DUPLICATE: |
// We are at safepoint which corresponds to call. All registers are |
// saved by caller so there would be no live registers at this |
// point. Thus these translation commands should not be used. |