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
5#ifndef V8_COMPILER_BACKEND_UNWINDING_INFO_WRITER_H_
6#define V8_COMPILER_BACKEND_UNWINDING_INFO_WRITER_H_
7
8#include "src/flags.h"
9
10#if V8_TARGET_ARCH_ARM
11#include "src/compiler/backend/arm/unwinding-info-writer-arm.h"
12#elif V8_TARGET_ARCH_ARM64
13#include "src/compiler/backend/arm64/unwinding-info-writer-arm64.h"
14#elif V8_TARGET_ARCH_X64
15#include "src/compiler/backend/x64/unwinding-info-writer-x64.h"
16#else
17
18// Placeholder for unsupported architectures.
19
20#include "src/base/logging.h"
21
22namespace v8 {
23namespace internal {
24
25class EhFrameWriter;
26
27namespace compiler {
28
29class InstructionBlock;
30
31class UnwindingInfoWriter {
32 public:
33 explicit UnwindingInfoWriter(Zone* zone) {}
34
35 void SetNumberOfInstructionBlocks(int number) {
36 if (FLAG_perf_prof_unwinding_info) UNIMPLEMENTED();
37 }
38
39 void BeginInstructionBlock(int pc_offset, const InstructionBlock* block) {
40 if (FLAG_perf_prof_unwinding_info) UNIMPLEMENTED();
41 }
42 void EndInstructionBlock(const InstructionBlock* block) {
43 if (FLAG_perf_prof_unwinding_info) UNIMPLEMENTED();
44 }
45
46 void Finish(int code_size) {}
47
48 EhFrameWriter* eh_frame_writer() { return nullptr; }
49};
50
51} // namespace compiler
52} // namespace internal
53} // namespace v8
54
55#endif
56
57#endif // V8_COMPILER_BACKEND_UNWINDING_INFO_WRITER_H_
58