lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

0006-libvixl-cxx-macro-isnan.patch (1818B)


      1 --- a/disas/libvixl/vixl/utils.h.orig	2016-11-22 22:36:20.691253883 +0800
      2 +++ b/disas/libvixl/vixl/utils.h	2016-11-22 22:55:44.639618185 +0800
      3 @@ -118,11 +118,17 @@ double double_pack(uint64_t sign, uint64
      4  // An fpclassify() function for 16-bit half-precision floats.
      5  int float16classify(float16 value);
      6  
      7 +#ifdef isnan
      8 +#define isnan_ isnan
      9 +#else
     10 +#define isnan_ std::isnan
     11 +#endif
     12 +
     13  // NaN tests.
     14  inline bool IsSignallingNaN(double num) {
     15    const uint64_t kFP64QuietNaNMask = UINT64_C(0x0008000000000000);
     16    uint64_t raw = double_to_rawbits(num);
     17 -  if (std::isnan(num) && ((raw & kFP64QuietNaNMask) == 0)) {
     18 +  if (isnan_(num) && ((raw & kFP64QuietNaNMask) == 0)) {
     19      return true;
     20    }
     21    return false;
     22 @@ -132,7 +138,7 @@ inline bool IsSignallingNaN(double num)
     23  inline bool IsSignallingNaN(float num) {
     24    const uint32_t kFP32QuietNaNMask = 0x00400000;
     25    uint32_t raw = float_to_rawbits(num);
     26 -  if (std::isnan(num) && ((raw & kFP32QuietNaNMask) == 0)) {
     27 +  if (isnan_(num) && ((raw & kFP32QuietNaNMask) == 0)) {
     28      return true;
     29    }
     30    return false;
     31 @@ -148,21 +154,21 @@ inline bool IsSignallingNaN(float16 num)
     32  
     33  template <typename T>
     34  inline bool IsQuietNaN(T num) {
     35 -  return std::isnan(num) && !IsSignallingNaN(num);
     36 +  return isnan_(num) && !IsSignallingNaN(num);
     37  }
     38  
     39  
     40  // Convert the NaN in 'num' to a quiet NaN.
     41  inline double ToQuietNaN(double num) {
     42    const uint64_t kFP64QuietNaNMask = UINT64_C(0x0008000000000000);
     43 -  VIXL_ASSERT(std::isnan(num));
     44 +  VIXL_ASSERT(isnan_(num));
     45    return rawbits_to_double(double_to_rawbits(num) | kFP64QuietNaNMask);
     46  }
     47  
     48  
     49  inline float ToQuietNaN(float num) {
     50    const uint32_t kFP32QuietNaNMask = 0x00400000;
     51 -  VIXL_ASSERT(std::isnan(num));
     52 +  VIXL_ASSERT(isnan_(num));
     53    return rawbits_to_float(float_to_rawbits(num) | kFP32QuietNaNMask);
     54  }
     55