OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/frames.h" | 5 #include "src/frames.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <sstream> | 8 #include <sstream> |
9 | 9 |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 ReturnAddressLocationResolver resolver) { | 399 ReturnAddressLocationResolver resolver) { |
400 DCHECK(return_address_location_resolver_ == NULL); | 400 DCHECK(return_address_location_resolver_ == NULL); |
401 return_address_location_resolver_ = resolver; | 401 return_address_location_resolver_ = resolver; |
402 } | 402 } |
403 | 403 |
404 static bool IsInterpreterFramePc(Isolate* isolate, Address pc) { | 404 static bool IsInterpreterFramePc(Isolate* isolate, Address pc) { |
405 Code* interpreter_entry_trampoline = | 405 Code* interpreter_entry_trampoline = |
406 isolate->builtins()->builtin(Builtins::kInterpreterEntryTrampoline); | 406 isolate->builtins()->builtin(Builtins::kInterpreterEntryTrampoline); |
407 Code* interpreter_bytecode_dispatch = | 407 Code* interpreter_bytecode_dispatch = |
408 isolate->builtins()->builtin(Builtins::kInterpreterEnterBytecodeDispatch); | 408 isolate->builtins()->builtin(Builtins::kInterpreterEnterBytecodeDispatch); |
409 Code* interpreter_baseline_on_return = | |
410 isolate->builtins()->builtin(Builtins::kInterpreterMarkBaselineOnReturn); | |
411 | 409 |
412 return (pc >= interpreter_entry_trampoline->instruction_start() && | 410 return (pc >= interpreter_entry_trampoline->instruction_start() && |
413 pc < interpreter_entry_trampoline->instruction_end()) || | 411 pc < interpreter_entry_trampoline->instruction_end()) || |
414 (pc >= interpreter_bytecode_dispatch->instruction_start() && | 412 (pc >= interpreter_bytecode_dispatch->instruction_start() && |
415 pc < interpreter_bytecode_dispatch->instruction_end()) || | 413 pc < interpreter_bytecode_dispatch->instruction_end()); |
416 (pc >= interpreter_baseline_on_return->instruction_start() && | |
417 pc < interpreter_baseline_on_return->instruction_end()); | |
418 } | 414 } |
419 | 415 |
420 StackFrame::Type StackFrame::ComputeType(const StackFrameIteratorBase* iterator, | 416 StackFrame::Type StackFrame::ComputeType(const StackFrameIteratorBase* iterator, |
421 State* state) { | 417 State* state) { |
422 DCHECK(state->fp != NULL); | 418 DCHECK(state->fp != NULL); |
423 | 419 |
424 MSAN_MEMORY_IS_INITIALIZED( | 420 MSAN_MEMORY_IS_INITIALIZED( |
425 state->fp + CommonFrameConstants::kContextOrFrameTypeOffset, | 421 state->fp + CommonFrameConstants::kContextOrFrameTypeOffset, |
426 kPointerSize); | 422 kPointerSize); |
427 Object* marker = Memory::Object_at( | 423 Object* marker = Memory::Object_at( |
(...skipping 1548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1976 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { | 1972 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { |
1977 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); | 1973 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); |
1978 list.Add(frame, zone); | 1974 list.Add(frame, zone); |
1979 } | 1975 } |
1980 return list.ToVector(); | 1976 return list.ToVector(); |
1981 } | 1977 } |
1982 | 1978 |
1983 | 1979 |
1984 } // namespace internal | 1980 } // namespace internal |
1985 } // namespace v8 | 1981 } // namespace v8 |
OLD | NEW |