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/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#elif V8_TARGET_ARCH_S390X 17#include "src/compiler/backend/s390/unwinding-info-writer-s390.h" 18#elif V8_TARGET_ARCH_PPC || V8_TARGET_ARCH_PPC64 19#include "src/compiler/backend/ppc/unwinding-info-writer-ppc.h" 20#else 21 22// Placeholder for unsupported architectures. 23 24#include "src/base/logging.h" 25 26namespace v8 { 27namespace internal { 28 29class EhFrameWriter; 30class Zone; 31 32namespace compiler { 33 34class InstructionBlock; 35 36static_assert(!FLAG_perf_prof_unwinding_info, 37 "--perf-prof-unwinding-info should be statically disabled if not " 38 "supported"); 39 40class UnwindingInfoWriter { 41 public: 42 explicit UnwindingInfoWriter(Zone*) {} 43 44 void SetNumberOfInstructionBlocks(int number) {} 45 46 void BeginInstructionBlock(int pc_offset, const InstructionBlock*) {} 47 48 void EndInstructionBlock(const InstructionBlock*) {} 49 50 void Finish(int code_size) {} 51 52 EhFrameWriter* eh_frame_writer() { return nullptr; } 53}; 54 55} // namespace compiler 56} // namespace internal 57} // namespace v8 58 59#endif 60 61#endif // V8_COMPILER_BACKEND_UNWINDING_INFO_WRITER_H_ 62