Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 : * vim: set ts=8 sts=4 et sw=4 tw=99:
3 : * This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this
5 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : #ifndef jit_JitFrameIterator_inl_h
8 : #define jit_JitFrameIterator_inl_h
9 :
10 : #include "jit/JitFrameIterator.h"
11 :
12 : #include "jit/Bailouts.h"
13 : #include "jit/BaselineFrame.h"
14 : #include "jit/JitFrames.h"
15 :
16 : namespace js {
17 : namespace jit {
18 :
19 : inline JitFrameLayout*
20 0 : JitProfilingFrameIterator::framePtr()
21 : {
22 0 : MOZ_ASSERT(!done());
23 0 : return (JitFrameLayout*) fp_;
24 : }
25 :
26 : inline JSScript*
27 0 : JitProfilingFrameIterator::frameScript()
28 : {
29 0 : return ScriptFromCalleeToken(framePtr()->calleeToken());
30 : }
31 :
32 : inline BaselineFrame*
33 55282 : JitFrameIterator::baselineFrame() const
34 : {
35 55282 : MOZ_ASSERT(isBaselineJS());
36 55282 : return (BaselineFrame*)(fp() - BaselineFrame::FramePointerOffset - BaselineFrame::Size());
37 : }
38 :
39 : template <typename T>
40 : bool
41 143 : JitFrameIterator::isExitFrameLayout() const
42 : {
43 143 : if (!isExitFrame())
44 0 : return false;
45 143 : return exitFrame()->is<T>();
46 : }
47 :
48 : } // namespace jit
49 : } // namespace js
50 :
51 : #endif /* jit_JitFrameIterator_inl_h */
|