v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
deoptimizer-arm.cc
Go to the documentation of this file.
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
3// found in the LICENSE file.
4
7
8namespace v8 {
9namespace internal {
10
11// The deopt exit sizes below depend on the following IsolateData layout
12// guarantees:
13#define ASSERT_OFFSET(BuiltinName) \
14 static_assert(IsolateData::builtin_tier0_entry_table_offset() + \
15 Builtins::ToInt(BuiltinName) * kSystemPointerSize <= \
16 0x1000)
17ASSERT_OFFSET(Builtin::kDeoptimizationEntry_Eager);
18ASSERT_OFFSET(Builtin::kDeoptimizationEntry_Lazy);
19#undef ASSERT_OFFSET
20
23
25
26// static
28
30 const Address start = reinterpret_cast<Address>(simd128_registers_);
31 const size_t offset = n * sizeof(Float32);
33}
34
36 const Address start = reinterpret_cast<Address>(simd128_registers_);
37 const size_t offset = n * sizeof(Float64);
39}
40
43 const Address start = reinterpret_cast<Address>(simd128_registers_);
44 const size_t offset = n * sizeof(Float64);
46}
47
48void FrameDescription::SetCallerPc(unsigned offset, intptr_t value) {
49 SetFrameSlot(offset, value);
50}
51
52void FrameDescription::SetCallerFp(unsigned offset, intptr_t value) {
53 SetFrameSlot(offset, value);
54}
55
56void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) {
57 // No embedded constant pool support.
59}
60
61void FrameDescription::SetPc(intptr_t pc) { pc_ = pc; }
62
63} // namespace internal
64} // namespace v8
static void PatchToJump(Address pc, Address new_pc)
static V8_EXPORT_PRIVATE const int kEagerDeoptExitSize
static V8_EXPORT_PRIVATE const int kAdaptShadowStackOffsetToSubtract
static V8_EXPORT_PRIVATE const int kLazyDeoptExitSize
void SetCallerFp(unsigned offset, intptr_t value)
void SetCallerConstantPool(unsigned offset, intptr_t value)
void SetCallerPc(unsigned offset, intptr_t value)
void SetFrameSlot(unsigned offset, intptr_t value)
void SetDoubleRegister(unsigned n, Float64 value)
Float64 GetDoubleRegister(unsigned n) const
Float32 GetFloatRegister(unsigned n) const
Simd128 simd128_registers_[Simd128Register::kNumRegisters]
int start
#define ASSERT_OFFSET(BuiltinName)
int32_t offset
static V ReadUnalignedValue(Address p)
Definition memory.h:28
static void WriteUnalignedValue(Address p, V value)
Definition memory.h:41
FloatWithBits< 32 > Float32
Definition index.h:233
FloatWithBits< 64 > Float64
Definition index.h:234
constexpr uint8_t kInstrSize
#define arraysize(array)
Definition macros.h:67
#define V8_ASSUME
Definition v8config.h:533