blob: 1afd66184712b169b10260aeb0f8744c82540511 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#ifndef FPU_MODES_H
#define FPU_MODES_H
class FPUCtl {
#if defined(__GNUC__) && defined(HAVE_SSE)
unsigned int sse_state{};
#elif defined(HAVE___CONTROL87_2)
unsigned int state{};
unsigned int sse_state{};
#elif defined(HAVE__CONTROLFP)
unsigned int state{};
#endif
bool in_mode{};
public:
FPUCtl() noexcept;
~FPUCtl() { leave(); }
FPUCtl(const FPUCtl&) = delete;
FPUCtl& operator=(const FPUCtl&) = delete;
void leave() noexcept;
};
#endif /* FPU_MODES_H */
|