Add more details the --trace-deopt output
R=ager@chromium.org Review URL: http://codereview.chromium.org/6735007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
886a3806a9
commit
5310b07c04
@ -288,14 +288,33 @@ 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(" [sp + %d] <- 0x%08x ; [sp + %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(" [sp + %d] <- 0x%08x ; [sp + %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;
|
||||
output_offset -= kPointerSize;
|
||||
|
@ -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;
|
||||
|
@ -361,13 +361,32 @@ 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) {
|
||||
intptr_t input_value = input_->GetFrameSlot(input_offset);
|
||||
if (FLAG_trace_osr) {
|
||||
PrintF(" [esp + %d] <- 0x%08" V8PRIxPTR " ; [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(" [rsp + %d] <- 0x%08" V8PRIxPTR " ; [rsp + %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;
|
||||
|
Loading…
Reference in New Issue
Block a user