#include <frame_rebase.h>
Definition at line 32 of file frame_rebase.h.
◆ FrameRebase()
dart::compiler::ffi::FrameRebase::FrameRebase |
( |
Zone * |
zone, |
|
|
const Register |
old_base, |
|
|
const Register |
new_base, |
|
|
intptr_t |
stack_delta_in_bytes |
|
) |
| |
|
inline |
Definition at line 34 of file frame_rebase.h.
38 : zone_(zone),
39 old_base_(old_base),
40 new_base_(new_base),
41 stack_delta_in_bytes_(stack_delta_in_bytes) {}
◆ Rebase() [1/2]
Definition at line 23 of file frame_rebase.cc.
23 {
24 if (loc.IsPairLocation()) {
26 }
27 if (!loc.HasStackIndex() || loc.base_reg() != old_base_) {
28 return loc;
29 }
30
31 const intptr_t new_stack_index =
33 if (loc.IsStackSlot()) {
35 }
36 if (loc.IsDoubleStackSlot()) {
38 }
39 ASSERT(loc.IsQuadStackSlot());
41}
static Location StackSlot(intptr_t stack_index, Register base)
static Location QuadStackSlot(intptr_t stack_index, Register base)
static Location Pair(Location first, Location second)
static Location DoubleStackSlot(intptr_t stack_index, Register base)
const NativeLocation & Rebase(const NativeLocation &loc) const
static constexpr intptr_t kWordSize
◆ Rebase() [2/2]
Definition at line 13 of file frame_rebase.cc.
13 {
14 if (!loc.IsStack() || loc.AsStack().base_register() != old_base_) {
15 return loc;
16 }
17
18 return *new (zone_) NativeStackLocation(
19 loc.payload_type(), loc.container_type(), new_base_,
20 loc.AsStack().offset_in_bytes() + stack_delta_in_bytes_);
21}
The documentation for this class was generated from the following files: