aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_api.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lj_api.c b/src/lj_api.c
index 852c8c8b..827ab42f 100644
--- a/src/lj_api.c
+++ b/src/lj_api.c
@@ -196,7 +196,11 @@ LUA_API int lua_type(lua_State *L, int idx)
196 return LUA_TNONE; 196 return LUA_TNONE;
197 } else { /* Magic internal/external tag conversion. ORDER LJ_T */ 197 } else { /* Magic internal/external tag conversion. ORDER LJ_T */
198 uint32_t t = ~itype(o); 198 uint32_t t = ~itype(o);
199#if LJ_64
200 int tt = (int)((U64x(7506,98042110) >> 4*t) & 15u);
201#else
199 int tt = (int)(((t < 8 ? 0x98042110 : 0x7506) >> 4*(t&7)) & 15u); 202 int tt = (int)(((t < 8 ? 0x98042110 : 0x7506) >> 4*(t&7)) & 15u);
203#endif
200 lua_assert(tt != LUA_TNIL || tvisnil(o)); 204 lua_assert(tt != LUA_TNIL || tvisnil(o));
201 return tt; 205 return tt;
202 } 206 }