// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef INCLUDE_V8_UNWINDER_STATE_H_
#define INCLUDE_V8_UNWINDER_STATE_H_

namespace v8 {

#ifdef V8_TARGET_ARCH_ARM
struct CalleeSavedRegisters {
  void* arm_r4;
  void* arm_r5;
  void* arm_r6;
  void* arm_r7;
  void* arm_r8;
  void* arm_r9;
  void* arm_r10;
};
#elif V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_ARM64 || \
    V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64 || V8_TARGET_ARCH_PPC ||  \
    V8_TARGET_ARCH_PPC64 || V8_TARGET_ARCH_S390
struct CalleeSavedRegisters {};
#else
#error Target architecture was not detected as supported by v8
#endif

}  // namespace v8

#endif  // INCLUDE_V8_UNWINDER _STATE_H_
