usbmuxd: Update to latest git
[feed/packages.git] / utils / qemu / patches / 0002-disas-fix-compilation-failure-when-isnan-is-a-macro.patch
1 From 83e72b93889fbcbbfff281b0dbcc58c5a7455257 Mon Sep 17 00:00:00 2001
2 From: Yousong Zhou <yszhou4tech@gmail.com>
3 Date: Sat, 24 Feb 2018 13:45:25 +0800
4 Subject: [PATCH 2/3] disas: fix compilation failure when isnan is a macro
5
6 ---
7 disas/libvixl/vixl/utils.h | 16 +++++++++++-----
8 1 file changed, 11 insertions(+), 5 deletions(-)
9
10 diff --git a/disas/libvixl/vixl/utils.h b/disas/libvixl/vixl/utils.h
11 index 5ab134e..df30663 100644
12 --- a/disas/libvixl/vixl/utils.h
13 +++ b/disas/libvixl/vixl/utils.h
14 @@ -118,11 +118,17 @@ double double_pack(uint64_t sign, uint64_t exp, uint64_t mantissa);
15 // An fpclassify() function for 16-bit half-precision floats.
16 int float16classify(float16 value);
17
18 +#ifdef isnan
19 +#define isnan_ isnan
20 +#else
21 +#define isnan_ std::isnan
22 +#endif
23 +
24 // NaN tests.
25 inline bool IsSignallingNaN(double num) {
26 const uint64_t kFP64QuietNaNMask = UINT64_C(0x0008000000000000);
27 uint64_t raw = double_to_rawbits(num);
28 - if (std::isnan(num) && ((raw & kFP64QuietNaNMask) == 0)) {
29 + if (isnan_(num) && ((raw & kFP64QuietNaNMask) == 0)) {
30 return true;
31 }
32 return false;
33 @@ -132,7 +138,7 @@ inline bool IsSignallingNaN(double num) {
34 inline bool IsSignallingNaN(float num) {
35 const uint32_t kFP32QuietNaNMask = 0x00400000;
36 uint32_t raw = float_to_rawbits(num);
37 - if (std::isnan(num) && ((raw & kFP32QuietNaNMask) == 0)) {
38 + if (isnan_(num) && ((raw & kFP32QuietNaNMask) == 0)) {
39 return true;
40 }
41 return false;
42 @@ -148,21 +154,21 @@ inline bool IsSignallingNaN(float16 num) {
43
44 template <typename T>
45 inline bool IsQuietNaN(T num) {
46 - return std::isnan(num) && !IsSignallingNaN(num);
47 + return isnan_(num) && !IsSignallingNaN(num);
48 }
49
50
51 // Convert the NaN in 'num' to a quiet NaN.
52 inline double ToQuietNaN(double num) {
53 const uint64_t kFP64QuietNaNMask = UINT64_C(0x0008000000000000);
54 - VIXL_ASSERT(std::isnan(num));
55 + VIXL_ASSERT(isnan_(num));
56 return rawbits_to_double(double_to_rawbits(num) | kFP64QuietNaNMask);
57 }
58
59
60 inline float ToQuietNaN(float num) {
61 const uint32_t kFP32QuietNaNMask = 0x00400000;
62 - VIXL_ASSERT(std::isnan(num));
63 + VIXL_ASSERT(isnan_(num));
64 return rawbits_to_float(float_to_rawbits(num) | kFP32QuietNaNMask);
65 }
66
67 --
68 1.8.3.1
69