summaryrefslogtreecommitdiff
path: root/internal.h
diff options
context:
space:
mode:
authorglass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-11-24 16:03:22 +0000
committerglass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-11-24 16:03:22 +0000
commitb25a6494cce1a78da03c4259a7610a51b1d907f6 (patch)
treeac430b89a5a8140bc46a0548ce221c6a39684606 /internal.h
parentbc65d709ab72fc0fcdb37a6965028ba1b98940ba (diff)
* internal.h: use __builtin_bswap16() if possible.
* configure.in: check existence of __builtin_bswap16(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'internal.h')
-rw-r--r--internal.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/internal.h b/internal.h
index 464266ffbb..963192d27b 100644
--- a/internal.h
+++ b/internal.h
@@ -70,6 +70,12 @@ extern "C" {
#define MUL_OVERFLOW_INT_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, INT_MIN, INT_MAX)
#ifndef swap16
+# ifdef HAVE_BUILTIN___BUILTIN_BSWAP16
+# define swap16(x) __builtin_bswap16(x)
+# endif
+#endif
+
+#ifndef swap16
# define swap16(x) ((uint16_t)((((x)&0xFF)<<8) | (((x)>>8)&0xFF)))
#endif