فهرست منبع

FFI: Add macros for consistent number to integer truncation.

Mike Pall 15 سال پیش
والد
کامیت
ef8c264873
1فایلهای تغییر یافته به همراه7 افزوده شده و 0 حذف شده
  1. 7 0
      src/lj_obj.h

+ 7 - 0
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. */