mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Fix Clang build.
This commit is contained in:
parent
18eef08fb8
commit
384d6d56f4
@ -597,7 +597,7 @@ static int has_segment_link(mstate m, msegmentptr ss)
|
|||||||
noncontiguous segments are added.
|
noncontiguous segments are added.
|
||||||
*/
|
*/
|
||||||
#define TOP_FOOT_SIZE\
|
#define TOP_FOOT_SIZE\
|
||||||
(align_offset(chunk2mem(0))+pad_request(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE)
|
(align_offset(TWO_SIZE_T_SIZES)+pad_request(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE)
|
||||||
|
|
||||||
/* ---------------------------- Indexing Bins ---------------------------- */
|
/* ---------------------------- Indexing Bins ---------------------------- */
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ typedef uintptr_t BloomFilter;
|
|||||||
#define bloomset(b, x) ((b) |= bloombit((x)))
|
#define bloomset(b, x) ((b) |= bloombit((x)))
|
||||||
#define bloomtest(b, x) ((b) & bloombit((x)))
|
#define bloomtest(b, x) ((b) & bloombit((x)))
|
||||||
|
|
||||||
#if defined(__GNUC__) || defined(__psp2__)
|
#if defined(__GNUC__) || defined(__clang__) || defined(__psp2__)
|
||||||
|
|
||||||
#define LJ_NORET __attribute__((noreturn))
|
#define LJ_NORET __attribute__((noreturn))
|
||||||
#define LJ_ALIGN(n) __attribute__((aligned(n)))
|
#define LJ_ALIGN(n) __attribute__((aligned(n)))
|
||||||
@ -182,7 +182,7 @@ static LJ_AINLINE uint64_t lj_bswap64(uint64_t x)
|
|||||||
{
|
{
|
||||||
return ((uint64_t)lj_bswap((uint32_t)x)<<32) | lj_bswap((uint32_t)(x>>32));
|
return ((uint64_t)lj_bswap((uint32_t)x)<<32) | lj_bswap((uint32_t)(x>>32));
|
||||||
}
|
}
|
||||||
#elif (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
|
#elif (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __clang__
|
||||||
static LJ_AINLINE uint32_t lj_bswap(uint32_t x)
|
static LJ_AINLINE uint32_t lj_bswap(uint32_t x)
|
||||||
{
|
{
|
||||||
return (uint32_t)__builtin_bswap32((int32_t)x);
|
return (uint32_t)__builtin_bswap32((int32_t)x);
|
||||||
|
@ -45,7 +45,7 @@ static LJ_AINLINE MCode *emit_op(x86Op xo, Reg rr, Reg rb, Reg rx,
|
|||||||
*(uint32_t *)(p+delta-5) = (uint32_t)xo;
|
*(uint32_t *)(p+delta-5) = (uint32_t)xo;
|
||||||
return p+delta-5;
|
return p+delta-5;
|
||||||
}
|
}
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__) || defined(__clang__)
|
||||||
if (__builtin_constant_p(xo) && n == -2)
|
if (__builtin_constant_p(xo) && n == -2)
|
||||||
p[delta-2] = (MCode)(xo >> 24);
|
p[delta-2] = (MCode)(xo >> 24);
|
||||||
else if (__builtin_constant_p(xo) && n == -3)
|
else if (__builtin_constant_p(xo) && n == -3)
|
||||||
|
@ -61,7 +61,7 @@
|
|||||||
** The POSIX/x64 interpreter only saves r12/r13 for INT (e.g. PS4).
|
** The POSIX/x64 interpreter only saves r12/r13 for INT (e.g. PS4).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(__GNUC__) && (LJ_TARGET_X64 || defined(LUAJIT_UNWIND_EXTERNAL)) && !LJ_NO_UNWIND
|
#if (defined(__GNUC__) || defined(__clang__)) && (LJ_TARGET_X64 || defined(LUAJIT_UNWIND_EXTERNAL)) && !LJ_NO_UNWIND
|
||||||
#define LJ_UNWIND_EXT 1
|
#define LJ_UNWIND_EXT 1
|
||||||
#elif LJ_TARGET_WINDOWS
|
#elif LJ_TARGET_WINDOWS
|
||||||
#define LJ_UNWIND_EXT 1
|
#define LJ_UNWIND_EXT 1
|
||||||
@ -184,7 +184,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode)
|
|||||||
|
|
||||||
/* -- External frame unwinding -------------------------------------------- */
|
/* -- External frame unwinding -------------------------------------------- */
|
||||||
|
|
||||||
#if defined(__GNUC__) && !LJ_NO_UNWIND && !LJ_ABI_WIN
|
#if (defined(__GNUC__) || defined(__clang__)) && !LJ_NO_UNWIND && !LJ_ABI_WIN
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** We have to use our own definitions instead of the mandatory (!) unwind.h,
|
** We have to use our own definitions instead of the mandatory (!) unwind.h,
|
||||||
|
@ -334,7 +334,7 @@ extern double lj_vm_sfmax(double a, double b);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if LJ_HASFFI && LJ_NEED_FP64 && !(LJ_TARGET_ARM && LJ_SOFTFP)
|
#if LJ_HASFFI && LJ_NEED_FP64 && !(LJ_TARGET_ARM && LJ_SOFTFP)
|
||||||
#ifdef __GNUC__
|
#if defined(__GNUC__) || defined(__clang__)
|
||||||
#define fp64_l2d __floatdidf
|
#define fp64_l2d __floatdidf
|
||||||
#define fp64_ul2d __floatundidf
|
#define fp64_ul2d __floatundidf
|
||||||
#define fp64_l2f __floatdisf
|
#define fp64_l2f __floatdisf
|
||||||
|
@ -45,7 +45,7 @@ void lj_mcode_sync(void *start, void *end)
|
|||||||
sys_icache_invalidate(start, (char *)end-(char *)start);
|
sys_icache_invalidate(start, (char *)end-(char *)start);
|
||||||
#elif LJ_TARGET_PPC
|
#elif LJ_TARGET_PPC
|
||||||
lj_vm_cachesync(start, end);
|
lj_vm_cachesync(start, end);
|
||||||
#elif defined(__GNUC__)
|
#elif defined(__GNUC__) || defined(__clang__)
|
||||||
__clear_cache(start, end);
|
__clear_cache(start, end);
|
||||||
#else
|
#else
|
||||||
#error "Missing builtin to flush instruction cache"
|
#error "Missing builtin to flush instruction cache"
|
||||||
|
@ -118,7 +118,7 @@ LJ_FUNC GCstr * LJ_FASTCALL lj_strfmt_obj(lua_State *L, cTValue *o);
|
|||||||
LJ_FUNC const char *lj_strfmt_pushvf(lua_State *L, const char *fmt,
|
LJ_FUNC const char *lj_strfmt_pushvf(lua_State *L, const char *fmt,
|
||||||
va_list argp);
|
va_list argp);
|
||||||
LJ_FUNC const char *lj_strfmt_pushf(lua_State *L, const char *fmt, ...)
|
LJ_FUNC const char *lj_strfmt_pushf(lua_State *L, const char *fmt, ...)
|
||||||
#ifdef __GNUC__
|
#if defined(__GNUC__) || defined(__clang__)
|
||||||
__attribute__ ((format (printf, 2, 3)))
|
__attribute__ ((format (printf, 2, 3)))
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
@ -79,7 +79,7 @@ static void strscan_double(uint64_t x, TValue *o, int32_t ex2, int32_t neg)
|
|||||||
/* Avoid double rounding for denormals. */
|
/* Avoid double rounding for denormals. */
|
||||||
if (LJ_UNLIKELY(ex2 <= -1075 && x != 0)) {
|
if (LJ_UNLIKELY(ex2 <= -1075 && x != 0)) {
|
||||||
/* NYI: all of this generates way too much code on 32 bit CPUs. */
|
/* NYI: all of this generates way too much code on 32 bit CPUs. */
|
||||||
#if defined(__GNUC__) && LJ_64
|
#if (defined(__GNUC__) || defined(__clang__)) && LJ_64
|
||||||
int32_t b = (int32_t)(__builtin_clzll(x)^63);
|
int32_t b = (int32_t)(__builtin_clzll(x)^63);
|
||||||
#else
|
#else
|
||||||
int32_t b = (x>>32) ? 32+(int32_t)lj_fls((uint32_t)(x>>32)) :
|
int32_t b = (x>>32) ? 32+(int32_t)lj_fls((uint32_t)(x>>32)) :
|
||||||
|
Loading…
Reference in New Issue
Block a user