Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenlib/BLI_endian_switch_inline.h
| Show All 20 Lines | |||||
| /* *** 16 *** */ | /* *** 16 *** */ | ||||
| BLI_INLINE void BLI_endian_switch_int16(short *val) | BLI_INLINE void BLI_endian_switch_int16(short *val) | ||||
| { | { | ||||
| BLI_endian_switch_uint16((unsigned short *)val); | BLI_endian_switch_uint16((unsigned short *)val); | ||||
| } | } | ||||
| BLI_INLINE void BLI_endian_switch_uint16(unsigned short *val) | BLI_INLINE void BLI_endian_switch_uint16(unsigned short *val) | ||||
| { | { | ||||
| #if (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 408)) /* gcc4.8+ only */ | #ifdef __GNUC__ | ||||
| *val = __builtin_bswap16(*val); | *val = __builtin_bswap16(*val); | ||||
| #else | #else | ||||
| unsigned short tval = *val; | unsigned short tval = *val; | ||||
| *val = (tval >> 8) | (tval << 8); | *val = (tval >> 8) | (tval << 8); | ||||
| #endif | #endif | ||||
| } | } | ||||
| /* *** 32 *** */ | /* *** 32 *** */ | ||||
| ▲ Show 20 Lines • Show All 45 Lines • Show Last 20 Lines | |||||