v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
unwinder-arm.cc
Go to the documentation of this file.
1
// Copyright 2020 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include <memory>
6
7
#include "
include/v8-unwinder-state.h
"
8
#include "
include/v8-unwinder.h
"
9
#include "
src/diagnostics/unwinder.h
"
10
#include "
src/execution/frame-constants.h
"
11
12
namespace
v8
{
13
14
void
GetCalleeSavedRegistersFromEntryFrame
(
void
* fp,
15
RegisterState
* register_state) {
16
const
i::Address
base_addr =
17
reinterpret_cast<
i::Address
>
(fp) +
18
i::EntryFrameConstants::kDirectCallerGeneralRegistersOffset;
19
20
if
(!register_state->
callee_saved
) {
21
register_state->
callee_saved
= std::make_unique<CalleeSavedRegisters>();
22
}
23
24
register_state->
callee_saved
->arm_r4 =
25
reinterpret_cast<
void
*
>
(
Load
(base_addr + 0 *
i::kSystemPointerSize
));
26
register_state->
callee_saved
->arm_r5 =
27
reinterpret_cast<
void
*
>
(
Load
(base_addr + 1 *
i::kSystemPointerSize
));
28
register_state->
callee_saved
->arm_r6 =
29
reinterpret_cast<
void
*
>
(
Load
(base_addr + 2 *
i::kSystemPointerSize
));
30
register_state->
callee_saved
->arm_r7 =
31
reinterpret_cast<
void
*
>
(
Load
(base_addr + 3 *
i::kSystemPointerSize
));
32
register_state->
callee_saved
->arm_r8 =
33
reinterpret_cast<
void
*
>
(
Load
(base_addr + 4 *
i::kSystemPointerSize
));
34
register_state->
callee_saved
->arm_r9 =
35
reinterpret_cast<
void
*
>
(
Load
(base_addr + 5 *
i::kSystemPointerSize
));
36
register_state->
callee_saved
->arm_r10 =
37
reinterpret_cast<
void
*
>
(
Load
(base_addr + 6 *
i::kSystemPointerSize
));
38
}
39
40
}
// namespace v8
frame-constants.h
v8::internal::kSystemPointerSize
constexpr int kSystemPointerSize
Definition
globals.h:410
v8::internal::Address
Address
Definition
api-callbacks-inl.h:36
v8
Definition
api-arguments-inl.h:19
v8::GetCalleeSavedRegistersFromEntryFrame
void GetCalleeSavedRegistersFromEntryFrame(void *fp, RegisterState *register_state)
Definition
unwinder-arm.cc:14
v8::Load
i::Address Load(i::Address address)
Definition
unwinder.cc:19
v8::RegisterState
Definition
v8-unwinder.h:21
v8::RegisterState::callee_saved
std::unique_ptr< CalleeSavedRegisters > callee_saved
Definition
v8-unwinder.h:32
unwinder.h
v8-unwinder-state.h
v8-unwinder.h
src
diagnostics
arm
unwinder-arm.cc
Generated on Sun Apr 6 2025 21:08:53 for v8 by
1.12.0