| OLD | NEW | 
|    1 diff --git a/third_party/qcms/src/iccread.c b/third_party/qcms/src/iccread.c |    1 diff --git a/third_party/qcms/src/iccread.c b/third_party/qcms/src/iccread.c | 
|    2 index 36b7011..d3c3dfe 100644 |    2 index 36b7011..d3c3dfe 100644 | 
|    3 --- a/third_party/qcms/src/iccread.c |    3 --- a/third_party/qcms/src/iccread.c | 
|    4 +++ b/third_party/qcms/src/iccread.c |    4 +++ b/third_party/qcms/src/iccread.c | 
|    5 @@ -266,7 +266,7 @@ qcms_bool qcms_profile_is_bogus(qcms_profile *profile) |    5 @@ -266,7 +266,7 @@ qcms_bool qcms_profile_is_bogus(qcms_profile *profile) | 
|    6         if (profile->color_space != RGB_SIGNATURE) |    6         if (profile->color_space != RGB_SIGNATURE) | 
|    7                return false; |    7                return false; | 
|    8   |    8   | 
|    9 -       if (profile->A2B0 || profile->B2A0) |    9 -       if (profile->A2B0 || profile->B2A0) | 
|   10 +       if (qcms_supports_iccv4 && (profile->A2B0 || profile->B2A0)) |   10 +       if (qcms_supports_iccv4 && (profile->A2B0 || profile->B2A0)) | 
| (...skipping 730 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  741 +#if defined(SSE2_ENABLE) && !(defined(_MSC_VER) && defined(_M_AMD64)) |  741 +#if defined(SSE2_ENABLE) && !(defined(_MSC_VER) && defined(_M_AMD64)) | 
|  742                      /* Microsoft Compiler for x64 doesn't support MMX. |  742                      /* Microsoft Compiler for x64 doesn't support MMX. | 
|  743                       * SSE code uses MMX so that we disable on x64 */ |  743                       * SSE code uses MMX so that we disable on x64 */ | 
|  744                     } else |  744                     } else | 
|  745 @@ -1256,13 +1323,34 @@ qcms_transform* qcms_transform_create( |  745 @@ -1256,13 +1323,34 @@ qcms_transform* qcms_transform_create( | 
|  746         return transform; |  746         return transform; | 
|  747  } |  747  } | 
|  748   |  748   | 
|  749 -#if defined(__GNUC__) && !defined(__x86_64__) && !defined(__amd64__) |  749 -#if defined(__GNUC__) && !defined(__x86_64__) && !defined(__amd64__) | 
|  750 +/* __force_align_arg_pointer__ is an x86-only attribute, and gcc/clang warns on
      unused |  750 +/* __force_align_arg_pointer__ is an x86-only attribute, and gcc/clang warns on
      unused | 
|  751 + * attributes. Don't use this on ARM or AMD64. __has_attribute can detect the p
     resence |  751 + * attributes. Don't use this on ARM, AMD64 or MIPS. __has_attribute can detect
      the presence | 
|  752 + * of the attribute but is currently only supported by clang */ |  752 + * of the attribute but is currently only supported by clang */ | 
|  753 +#if defined(__has_attribute) |  753 +#if defined(__has_attribute) | 
|  754 +#define HAS_FORCE_ALIGN_ARG_POINTER __has_attribute(__force_align_arg_pointer__
     ) |  754 +#define HAS_FORCE_ALIGN_ARG_POINTER __has_attribute(__force_align_arg_pointer__
     ) | 
|  755 +#elif defined(__GNUC__) && !defined(__x86_64__) && !defined(__amd64__) && !defi
     ned(__arm__) |  755 +#elif defined(__GNUC__) && !defined(__x86_64__) && !defined(__amd64__) && !defi
     ned(__arm__) && !defined(__mips__) | 
|  756 +#define HAS_FORCE_ALIGN_ARG_POINTER 1 |  756 +#define HAS_FORCE_ALIGN_ARG_POINTER 1 | 
|  757 +#else |  757 +#else | 
|  758 +#define HAS_FORCE_ALIGN_ARG_POINTER 0 |  758 +#define HAS_FORCE_ALIGN_ARG_POINTER 0 | 
|  759 +#endif |  759 +#endif | 
|  760 + |  760 + | 
|  761 +#if HAS_FORCE_ALIGN_ARG_POINTER |  761 +#if HAS_FORCE_ALIGN_ARG_POINTER | 
|  762  /* we need this to avoid crashes when gcc assumes the stack is 128bit aligned *
     / |  762  /* we need this to avoid crashes when gcc assumes the stack is 128bit aligned *
     / | 
|  763  __attribute__((__force_align_arg_pointer__)) |  763  __attribute__((__force_align_arg_pointer__)) | 
|  764  #endif |  764  #endif | 
|  765  void qcms_transform_data(qcms_transform *transform, void *src, void *dest, size
     _t length) |  765  void qcms_transform_data(qcms_transform *transform, void *src, void *dest, size
     _t length) | 
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  882   |  882   | 
|  883 -float lut_interp_linear(double value, uint16_t *table, int length); |  883 -float lut_interp_linear(double value, uint16_t *table, int length); | 
|  884 -float lut_interp_linear_float(float value, float *table, int length); |  884 -float lut_interp_linear_float(float value, float *table, int length); | 
|  885 -uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, int length)
     ; |  885 -uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, int length)
     ; | 
|  886 +float lut_interp_linear(double value, uint16_t *table, size_t length); |  886 +float lut_interp_linear(double value, uint16_t *table, size_t length); | 
|  887 +float lut_interp_linear_float(float value, float *table, size_t length); |  887 +float lut_interp_linear_float(float value, float *table, size_t length); | 
|  888 +uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, size_t leng
     th); |  888 +uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, size_t leng
     th); | 
|  889   |  889   | 
|  890   |  890   | 
|  891  static inline float lerp(float a, float b, float t) |  891  static inline float lerp(float a, float b, float t) | 
| OLD | NEW |