v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
deoptimizer-s390.cc
Go to the documentation of this file.
1// Copyright 2014 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
21const int Deoptimizer::kEagerDeoptExitSize = 6 + 2;
22const int Deoptimizer::kLazyDeoptExitSize = 6 + 2;
23
25
26// static
28
31 reinterpret_cast<Address>(simd128_registers_ + n));
32 return Float32::FromBits(static_cast<uint32_t>(f64_val.get_bits() >> 32));
33}
34
37 reinterpret_cast<Address>(simd128_registers_ + n));
38}
39
40void RegisterValues::SetDoubleRegister(unsigned n, Float64 value) {
42 reinterpret_cast<Address>(simd128_registers_ + n), value);
43}
44
45void FrameDescription::SetCallerPc(unsigned offset, intptr_t value) {
46 SetFrameSlot(offset, value);
47}
48
49void FrameDescription::SetCallerFp(unsigned offset, intptr_t value) {
50 SetFrameSlot(offset, value);
51}
52
53void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) {
54 // No out-of-line constant pool support.
56}
57
58void FrameDescription::SetPc(intptr_t pc) { pc_ = pc; }
59
60} // namespace internal
61} // 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]
#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