| Index: src/sampler.cc
|
| diff --git a/src/sampler.cc b/src/sampler.cc
|
| index 5a7aac71bb31467ce4f1fcccf66fe7ff36b723fb..4e669ca6dc13611fdda5bacc728d2f1227592646 100644
|
| --- a/src/sampler.cc
|
| +++ b/src/sampler.cc
|
| @@ -173,69 +173,6 @@ class PlatformDataCommon : public Malloced {
|
| ThreadId profiled_thread_id_;
|
| };
|
|
|
| -
|
| -bool IsSamePage(byte* ptr1, byte* ptr2) {
|
| - const uint32_t kPageSize = 4096;
|
| - uintptr_t mask = ~static_cast<uintptr_t>(kPageSize - 1);
|
| - return (reinterpret_cast<uintptr_t>(ptr1) & mask) ==
|
| - (reinterpret_cast<uintptr_t>(ptr2) & mask);
|
| -}
|
| -
|
| -
|
| -// Check if the code at specified address could potentially be a
|
| -// frame setup code.
|
| -bool IsNoFrameRegion(Address address) {
|
| - struct Pattern {
|
| - int bytes_count;
|
| - byte bytes[8];
|
| - int offsets[4];
|
| - };
|
| - byte* pc = reinterpret_cast<byte*>(address);
|
| - static Pattern patterns[] = {
|
| -#if V8_HOST_ARCH_IA32
|
| - // push %ebp
|
| - // mov %esp,%ebp
|
| - {3, {0x55, 0x89, 0xe5}, {0, 1, -1}},
|
| - // pop %ebp
|
| - // ret N
|
| - {2, {0x5d, 0xc2}, {0, 1, -1}},
|
| - // pop %ebp
|
| - // ret
|
| - {2, {0x5d, 0xc3}, {0, 1, -1}},
|
| -#elif V8_HOST_ARCH_X64
|
| - // pushq %rbp
|
| - // movq %rsp,%rbp
|
| - {4, {0x55, 0x48, 0x89, 0xe5}, {0, 1, -1}},
|
| - // popq %rbp
|
| - // ret N
|
| - {2, {0x5d, 0xc2}, {0, 1, -1}},
|
| - // popq %rbp
|
| - // ret
|
| - {2, {0x5d, 0xc3}, {0, 1, -1}},
|
| -#endif
|
| - {0, {}, {}}
|
| - };
|
| - for (Pattern* pattern = patterns; pattern->bytes_count; ++pattern) {
|
| - for (int* offset_ptr = pattern->offsets; *offset_ptr != -1; ++offset_ptr) {
|
| - int offset = *offset_ptr;
|
| - if (!offset || IsSamePage(pc, pc - offset)) {
|
| - MSAN_MEMORY_IS_INITIALIZED(pc - offset, pattern->bytes_count);
|
| - if (!memcmp(pc - offset, pattern->bytes, pattern->bytes_count))
|
| - return true;
|
| - } else {
|
| - // It is not safe to examine bytes on another page as it might not be
|
| - // allocated thus causing a SEGFAULT.
|
| - // Check the pattern part that's on the same page and
|
| - // pessimistically assume it could be the entire pattern match.
|
| - MSAN_MEMORY_IS_INITIALIZED(pc, pattern->bytes_count - offset);
|
| - if (!memcmp(pc, pattern->bytes + offset, pattern->bytes_count - offset))
|
| - return true;
|
| - }
|
| - }
|
| - }
|
| - return false;
|
| -}
|
| -
|
| } // namespace
|
|
|
| #if defined(USE_SIGNALS)
|
| @@ -655,11 +592,6 @@ DISABLE_ASAN void TickSample::Init(Isolate* isolate,
|
| Address js_entry_sp = isolate->js_entry_sp();
|
| if (js_entry_sp == 0) return; // Not executing JS now.
|
|
|
| - if (pc && IsNoFrameRegion(pc)) {
|
| - pc = 0;
|
| - return;
|
| - }
|
| -
|
| ExternalCallbackScope* scope = isolate->external_callback_scope();
|
| Address handler = Isolate::handler(isolate->thread_local_top());
|
| // If there is a handler on top of the external callback scope then
|
|
|