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