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
7 disas/libvixl/vixl/utils.h | 16 +++++++++++-----
8 1 file changed, 11 insertions(+), 5 deletions(-)
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);
21 +#define isnan_ std::isnan
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)) {
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)) {
42 @@ -148,21 +154,21 @@ inline bool IsSignallingNaN(float16 num) {
45 inline bool IsQuietNaN(T num) {
46 - return std::isnan(num) && !IsSignallingNaN(num);
47 + return isnan_(num) && !IsSignallingNaN(num);
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);
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);