| Index: src/ia32/deoptimizer-ia32.cc
 | 
| diff --git a/src/ia32/deoptimizer-ia32.cc b/src/ia32/deoptimizer-ia32.cc
 | 
| index 026572f2e54ddd1e5c2fef42acf27e3c6d6d3cdb..c6342d7b4847437e4402e2ad9976c8a7673fa5af 100644
 | 
| --- a/src/ia32/deoptimizer-ia32.cc
 | 
| +++ b/src/ia32/deoptimizer-ia32.cc
 | 
| @@ -369,13 +369,31 @@ void Deoptimizer::DoComputeOsrOutputFrame() {
 | 
|  
 | 
|    // There are no translation commands for the caller's pc and fp, the
 | 
|    // context, and the function.  Set them up explicitly.
 | 
| -  for (int i = 0; ok && i < 4; i++) {
 | 
| +  for (int i =  StandardFrameConstants::kCallerPCOffset;
 | 
| +       ok && i >=  StandardFrameConstants::kMarkerOffset;
 | 
| +       i -= kPointerSize) {
 | 
|      uint32_t input_value = input_->GetFrameSlot(input_offset);
 | 
|      if (FLAG_trace_osr) {
 | 
| -      PrintF("    [esp + %d] <- 0x%08x ; [esp + %d] (fixed part)\n",
 | 
| +      const char* name = "UNKNOWN";
 | 
| +      switch (i) {
 | 
| +        case StandardFrameConstants::kCallerPCOffset:
 | 
| +          name = "caller's pc";
 | 
| +          break;
 | 
| +        case StandardFrameConstants::kCallerFPOffset:
 | 
| +          name = "fp";
 | 
| +          break;
 | 
| +        case StandardFrameConstants::kContextOffset:
 | 
| +          name = "context";
 | 
| +          break;
 | 
| +        case StandardFrameConstants::kMarkerOffset:
 | 
| +          name = "function";
 | 
| +          break;
 | 
| +      }
 | 
| +      PrintF("    [esp + %d] <- 0x%08x ; [esp + %d] (fixed part - %s)\n",
 | 
|               output_offset,
 | 
|               input_value,
 | 
| -             input_offset);
 | 
| +             input_offset,
 | 
| +             name);
 | 
|      }
 | 
|      output_[0]->SetFrameSlot(output_offset, input_->GetFrameSlot(input_offset));
 | 
|      input_offset -= kPointerSize;
 | 
| 
 |