aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-11-28 17:22:45 +0100
committerMike Pall <mike>2010-11-28 17:22:45 +0100
commit2033d6310bbda7dc5554dd3c473836743929f2c3 (patch)
tree4d3682497731875a1f8a8fdd52f0bbf24f86810f /src
parent24186e05e66550951002ccca6f7fb4782c5c0319 (diff)
downloadluajit-2033d6310bbda7dc5554dd3c473836743929f2c3.tar.gz
luajit-2033d6310bbda7dc5554dd3c473836743929f2c3.tar.bz2
luajit-2033d6310bbda7dc5554dd3c473836743929f2c3.zip
Add shorter defines for endianess checks.
Diffstat (limited to 'src')
-rw-r--r--src/lj_arch.h7
-rw-r--r--src/lj_str.c4
2 files changed, 6 insertions, 5 deletions
diff --git a/src/lj_arch.h b/src/lj_arch.h
index f9cb12e7..4b2bbe76 100644
--- a/src/lj_arch.h
+++ b/src/lj_arch.h
@@ -96,7 +96,6 @@
96#define LJ_ARCH_NAME "x86" 96#define LJ_ARCH_NAME "x86"
97#define LJ_ARCH_BITS 32 97#define LJ_ARCH_BITS 32
98#define LJ_ARCH_ENDIAN LUAJIT_LE 98#define LJ_ARCH_ENDIAN LUAJIT_LE
99#define LJ_ARCH_BITENDIAN LUAJIT_LE
100#define LJ_ARCH_HASFPU 1 99#define LJ_ARCH_HASFPU 1
101#define LJ_ABI_WIN LJ_TARGET_WINDOWS 100#define LJ_ABI_WIN LJ_TARGET_WINDOWS
102#define LJ_TARGET_X86 1 101#define LJ_TARGET_X86 1
@@ -110,7 +109,6 @@
110#define LJ_ARCH_NAME "x64" 109#define LJ_ARCH_NAME "x64"
111#define LJ_ARCH_BITS 64 110#define LJ_ARCH_BITS 64
112#define LJ_ARCH_ENDIAN LUAJIT_LE 111#define LJ_ARCH_ENDIAN LUAJIT_LE
113#define LJ_ARCH_BITENDIAN LUAJIT_LE
114#define LJ_ARCH_HASFPU 1 112#define LJ_ARCH_HASFPU 1
115#define LJ_ABI_WIN LJ_TARGET_WINDOWS 113#define LJ_ABI_WIN LJ_TARGET_WINDOWS
116#define LJ_TARGET_X64 1 114#define LJ_TARGET_X64 1
@@ -128,7 +126,6 @@
128#define LJ_ARCH_NAME "ppcspe" 126#define LJ_ARCH_NAME "ppcspe"
129#define LJ_ARCH_BITS 32 127#define LJ_ARCH_BITS 32
130#define LJ_ARCH_ENDIAN LUAJIT_BE 128#define LJ_ARCH_ENDIAN LUAJIT_BE
131#define LJ_ARCH_BITENDIAN LUAJIT_BE
132#define LJ_ARCH_HASFPU 1 129#define LJ_ARCH_HASFPU 1
133#define LJ_ABI_SOFTFP 1 130#define LJ_ABI_SOFTFP 1
134#define LJ_ABI_EABI 1 131#define LJ_ABI_EABI 1
@@ -187,9 +184,13 @@
187#endif 184#endif
188 185
189#if LJ_ARCH_ENDIAN == LUAJIT_BE 186#if LJ_ARCH_ENDIAN == LUAJIT_BE
187#define LJ_LE 0
188#define LJ_BE 1
190#define LJ_ENDIAN_SELECT(le, be) be 189#define LJ_ENDIAN_SELECT(le, be) be
191#define LJ_ENDIAN_LOHI(lo, hi) hi lo 190#define LJ_ENDIAN_LOHI(lo, hi) hi lo
192#else 191#else
192#define LJ_LE 1
193#define LJ_BE 0
193#define LJ_ENDIAN_SELECT(le, be) le 194#define LJ_ENDIAN_SELECT(le, be) le
194#define LJ_ENDIAN_LOHI(lo, hi) lo hi 195#define LJ_ENDIAN_LOHI(lo, hi) lo hi
195#endif 196#endif
diff --git a/src/lj_str.c b/src/lj_str.c
index 5e69ed0d..19f9d191 100644
--- a/src/lj_str.c
+++ b/src/lj_str.c
@@ -29,7 +29,7 @@ int32_t LJ_FASTCALL lj_str_cmp(GCstr *a, GCstr *b)
29 uint32_t va = *(const uint32_t *)(strdata(a)+i); 29 uint32_t va = *(const uint32_t *)(strdata(a)+i);
30 uint32_t vb = *(const uint32_t *)(strdata(b)+i); 30 uint32_t vb = *(const uint32_t *)(strdata(b)+i);
31 if (va != vb) { 31 if (va != vb) {
32#if LJ_ARCH_ENDIAN == LUAJIT_LE 32#if LJ_LE
33 va = lj_bswap(va); vb = lj_bswap(vb); 33 va = lj_bswap(va); vb = lj_bswap(vb);
34#endif 34#endif
35 i -= n; 35 i -= n;
@@ -53,7 +53,7 @@ static LJ_AINLINE int str_fastcmp(const char *a, const char *b, MSize len)
53 uint32_t v = *(const uint32_t *)(a+i) ^ *(const uint32_t *)(b+i); 53 uint32_t v = *(const uint32_t *)(a+i) ^ *(const uint32_t *)(b+i);
54 if (v) { 54 if (v) {
55 i -= len; 55 i -= len;
56#if LJ_ARCH_ENDIAN == LUAJIT_LE 56#if LJ_LE
57 return (int32_t)i >= -3 ? (v << (32+(i<<3))) : 1; 57 return (int32_t)i >= -3 ? (v << (32+(i<<3))) : 1;
58#else 58#else
59 return (int32_t)i >= -3 ? (v >> (32+(i<<3))) : 1; 59 return (int32_t)i >= -3 ? (v >> (32+(i<<3))) : 1;