Merge V8 5.3.332.45. DO NOT MERGE
Test: Manual
FPIIM-449
Change-Id: Id3254828b068abdea3cb10442e0172a8c9a98e03
(cherry picked from commit 13e2dadd00298019ed862f2b2fc5068bba730bcf)
diff --git a/src/disassembler.cc b/src/disassembler.cc
index c29022a..8fe1e7f 100644
--- a/src/disassembler.cc
+++ b/src/disassembler.cc
@@ -9,6 +9,7 @@
#include "src/debug/debug.h"
#include "src/deoptimizer.h"
#include "src/disasm.h"
+#include "src/ic/ic.h"
#include "src/macro-assembler.h"
#include "src/snapshot/serializer-common.h"
#include "src/string-stream.h"
@@ -36,7 +37,7 @@
code_ == NULL ? NULL : code_->GetIsolate()->builtins()->Lookup(pc);
if (name != NULL) {
- SNPrintF(v8_buffer_, "%s (%p)", name, pc);
+ SNPrintF(v8_buffer_, "%s (%p)", name, static_cast<void*>(pc));
return v8_buffer_.start();
}
@@ -44,7 +45,7 @@
int offs = static_cast<int>(pc - code_->instruction_start());
// print as code offset, if it seems reasonable
if (0 <= offs && offs < code_->instruction_size()) {
- SNPrintF(v8_buffer_, "%d (%p)", offs, pc);
+ SNPrintF(v8_buffer_, "%d (%p)", offs, static_cast<void*>(pc));
return v8_buffer_.start();
}
}
@@ -146,7 +147,8 @@
}
// Instruction address and instruction offset.
- out.AddFormatted("%p %4" V8PRIdPTRDIFF " ", prev_pc, prev_pc - begin);
+ out.AddFormatted("%p %4" V8PRIdPTRDIFF " ", static_cast<void*>(prev_pc),
+ prev_pc - begin);
// Instruction.
out.AddFormatted("%s", decode_buffer.start());
@@ -199,14 +201,16 @@
Code* code = Code::GetCodeFromTargetAddress(relocinfo.target_address());
Code::Kind kind = code->kind();
if (code->is_inline_cache_stub()) {
- if (kind == Code::LOAD_IC &&
- LoadICState::GetTypeofMode(code->extra_ic_state()) ==
- NOT_INSIDE_TYPEOF) {
- out.AddFormatted(" contextual,");
+ if (kind == Code::LOAD_GLOBAL_IC &&
+ LoadGlobalICState::GetTypeofMode(code->extra_ic_state()) ==
+ INSIDE_TYPEOF) {
+ out.AddFormatted(" inside typeof,");
}
- InlineCacheState ic_state = code->ic_state();
- out.AddFormatted(" %s, %s", Code::Kind2String(kind),
- Code::ICState2String(ic_state));
+ out.AddFormatted(" %s", Code::Kind2String(kind));
+ if (!IC::ICUseVector(kind)) {
+ InlineCacheState ic_state = IC::StateFromCode(code);
+ out.AddFormatted(" %s", Code::ICState2String(ic_state));
+ }
} else if (kind == Code::STUB || kind == Code::HANDLER) {
// Get the STUB key and extract major and minor key.
uint32_t key = code->stub_key();