From ef8c264873ee6f88651699ebbbd15bc1c5065ef2 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Fri, 26 Nov 2010 13:40:40 +0100 Subject: [PATCH] FFI: Add macros for consistent number to integer truncation. --- src/lj_obj.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lj_obj.h b/src/lj_obj.h index 83e30b6e..b417dce7 100644 --- a/src/lj_obj.h +++ b/src/lj_obj.h @@ -761,6 +761,13 @@ static LJ_AINLINE int32_t lj_num2bit(lua_Number n) #define lj_num2int(n) ((int32_t)(n)) #endif +/* Truncate towards zero. */ +#define lj_trnum2int32(n) ((int32_t)(n)) +#define lj_trnum2uint32(n) ((uint32_t)(n)) +#define lj_trnum2int64(n) ((int64_t)(n)) +#define lj_trnum2uint64(n) \ + ((uint64_t)(int64_t)((n)- 9223372036854775808.0) + U64x(80000000,00000000)) + /* -- Miscellaneous object handling --------------------------------------- */ /* Names and maps for internal and external object tags. */