summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorVladislav Vaintroub <vvaintroub@mysql.com>2010-02-18 14:09:35 +0100
committerVladislav Vaintroub <vvaintroub@mysql.com>2010-02-18 14:09:35 +0100
commita99f78da5c07e3312632bf4f157aea0284422d15 (patch)
tree2ccdd16fa9f2a2dcac8a365396e497aaca74c3f5 /include
parentb2eebd996653766670449c7fd53ebc8eb9cc774c (diff)
parentb5936f7340ffe26e2f1b3a1c98c647f88b16940e (diff)
downloadmariadb-git-a99f78da5c07e3312632bf4f157aea0284422d15.tar.gz
merge
Diffstat (limited to 'include')
-rw-r--r--include/m_ctype.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/m_ctype.h b/include/m_ctype.h
index 35d40e8bfa4..7cf5ce113f8 100644
--- a/include/m_ctype.h
+++ b/include/m_ctype.h
@@ -38,6 +38,23 @@ extern "C" {
#define my_wc_t ulong
+
+/*
+ On i386 we store Unicode->CS conversion tables for
+ some character sets using Big-endian order,
+ to copy two bytes at onces.
+ This gives some performance improvement.
+*/
+#ifdef __i386__
+#define MB2(x) (((x) >> 8) + (((x) & 0xFF) << 8))
+#define MY_PUT_MB2(s, code) { *((uint16*)(s))= (code); }
+#else
+#define MB2(x) (x)
+#define MY_PUT_MB2(s, code) { (s)[0]= code >> 8; (s)[1]= code & 0xFF; }
+#endif
+
+
+
typedef struct unicase_info_st
{
uint32 toupper;