libcopp 2.3.1
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fcontext_ppc.hpp
Go to the documentation of this file.
1// Copyright 2023 owent
2
3#pragma once
4
5#include <libcopp/utils/config/libcopp_build_features.h>
6
7// clang-format off
8#include <libcopp/utils/config/stl_include_prefix.h> // NOLINT(build/include_order)
9// clang-format on
10#include <stdint.h>
11#include <cstddef>
12// clang-format off
13#include <libcopp/utils/config/stl_include_suffix.h> // NOLINT(build/include_order)
14// clang-format on
15
18
19#ifdef LIBCOPP_HAS_ABI_HEADERS
20# include LIBCOPP_ABI_PREFIX
21#endif
22
23LIBCOPP_COPP_NAMESPACE_BEGIN
24namespace fcontext {
25
26extern "C" {
27
28#define LIBCOPP_BOOST_CONTEXT_CALLDECL
29
30struct stack_t {
31 void *sp;
32 std::size_t size;
33
34 stack_t() : sp(0), size(0) {}
35};
36
37struct fp_t {
38 uint64_t fc_freg[19];
39
40 fp_t() : fc_freg() {}
41};
42
43struct fcontext_t {
44#if defined(__powerpc64__)
45 uint64_t fc_greg[23];
46#else
47 uint32_t fc_greg[23];
48#endif
49 stack_t fc_stack;
50 fp_t fc_fp;
51
53};
54}
55} // namespace fcontext
56LIBCOPP_COPP_NAMESPACE_END
57
58#ifdef LIBCOPP_HAS_ABI_HEADERS
59# include LIBCOPP_ABI_SUFFIX
60#endif
uint32_t fc_freg[16]