Browse Source

Update LuaJIT to LuaJIT/LuaJIT@7a0cf5f

Miku AuahDark 3 years ago
parent
commit
47bee6ffaa

+ 0 - 2
libs/LuaJIT/doc/contact.html

@@ -50,8 +50,6 @@
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/ext_buffer.html

@@ -61,8 +61,6 @@
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/ext_c_api.html

@@ -50,8 +50,6 @@
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/ext_ffi.html

@@ -50,8 +50,6 @@
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/ext_ffi_api.html

@@ -55,8 +55,6 @@ td.abiparam { font-weight: bold; width: 6em; }
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/ext_ffi_semantics.html

@@ -55,8 +55,6 @@ td.convop { font-style: italic; width: 40%; }
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/ext_ffi_tutorial.html

@@ -57,8 +57,6 @@ td.idiomlua b { font-weight: normal; color: #2142bf; }
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/ext_jit.html

@@ -50,8 +50,6 @@
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/ext_profiler.html

@@ -50,8 +50,6 @@
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/extensions.html

@@ -67,8 +67,6 @@ td.excinterop {
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 4
libs/LuaJIT/doc/faq.html

@@ -53,8 +53,6 @@ dd { margin-left: 1.5em; }
 </li><li>
 </li><li>
 <a class="current" href="faq.html">FAQ</a>
 <a class="current" href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>
@@ -65,8 +63,6 @@ dd { margin-left: 1.5em; }
 <ul style="padding: 0;">
 <ul style="padding: 0;">
 <li>The <a href="https://luajit.org/list.html"><span class="ext">&raquo;</span>&nbsp;LuaJIT mailing list</a> focuses on topics
 <li>The <a href="https://luajit.org/list.html"><span class="ext">&raquo;</span>&nbsp;LuaJIT mailing list</a> focuses on topics
 related to LuaJIT.</li>
 related to LuaJIT.</li>
-<li>The <a href="http://wiki.luajit.org/"><span class="ext">&raquo;</span>&nbsp;LuaJIT wiki</a> gathers community
-resources about LuaJIT.</li>
 <li>News about Lua itself can be found at the
 <li>News about Lua itself can be found at the
 <a href="https://www.lua.org/lua-l.html"><span class="ext">&raquo;</span>&nbsp;Lua mailing list</a>.
 <a href="https://www.lua.org/lua-l.html"><span class="ext">&raquo;</span>&nbsp;Lua mailing list</a>.
 The mailing list archives are worth checking out for older postings
 The mailing list archives are worth checking out for older postings

+ 0 - 2
libs/LuaJIT/doc/install.html

@@ -73,8 +73,6 @@ td.compatx {
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/luajit.html

@@ -135,8 +135,6 @@ table.feature small {
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/running.html

@@ -72,8 +72,6 @@ td.param_default {
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 0 - 2
libs/LuaJIT/doc/status.html

@@ -53,8 +53,6 @@ ul li { padding-bottom: 0.3em; }
 </li><li>
 </li><li>
 <a href="faq.html">FAQ</a>
 <a href="faq.html">FAQ</a>
 </li><li>
 </li><li>
-<a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
-</li><li>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 <a href="https://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
 </li></ul>
 </li></ul>
 </div>
 </div>

+ 4 - 4
libs/LuaJIT/src/lib_buffer.c

@@ -128,7 +128,7 @@ LJLIB_CF(buffer_method_put)		LJLIB_REC(.)
       lj_strfmt_putfnum((SBuf *)sbx, STRFMT_G14, numV(o));
       lj_strfmt_putfnum((SBuf *)sbx, STRFMT_G14, numV(o));
     } else if (tvisbuf(o)) {
     } else if (tvisbuf(o)) {
       SBufExt *sbx2 = bufV(o);
       SBufExt *sbx2 = bufV(o);
-      if (sbx2 == sbx) lj_err_arg(L, arg+1, LJ_ERR_BUFFER_SELF);
+      if (sbx2 == sbx) lj_err_arg(L, (int)(arg+1), LJ_ERR_BUFFER_SELF);
       lj_buf_putmem((SBuf *)sbx, sbx2->r, sbufxlen(sbx2));
       lj_buf_putmem((SBuf *)sbx, sbx2->r, sbufxlen(sbx2));
     } else if (!mo && !tvisnil(mo = lj_meta_lookup(L, o, MM_tostring))) {
     } else if (!mo && !tvisnil(mo = lj_meta_lookup(L, o, MM_tostring))) {
       /* Call __tostring metamethod inline. */
       /* Call __tostring metamethod inline. */
@@ -140,7 +140,7 @@ LJLIB_CF(buffer_method_put)		LJLIB_REC(.)
       L->top = L->base + narg;
       L->top = L->base + narg;
       goto retry;  /* Retry with the result. */
       goto retry;  /* Retry with the result. */
     } else {
     } else {
-      lj_err_argtype(L, arg+1, "string/number/__tostring");
+      lj_err_argtype(L, (int)(arg+1), "string/number/__tostring");
     }
     }
     /* Probably not useful to inline other __tostring MMs, e.g. FFI numbers. */
     /* Probably not useful to inline other __tostring MMs, e.g. FFI numbers. */
   }
   }
@@ -169,7 +169,7 @@ LJLIB_CF(buffer_method_get)		LJLIB_REC(.)
   for (arg = 1; arg < narg; arg++) {
   for (arg = 1; arg < narg; arg++) {
     TValue *o = &L->base[arg];
     TValue *o = &L->base[arg];
     MSize n = tvisnil(o) ? LJ_MAX_BUF :
     MSize n = tvisnil(o) ? LJ_MAX_BUF :
-	      (MSize) lj_lib_checkintrange(L, arg+1, 0, LJ_MAX_BUF);
+	      (MSize) lj_lib_checkintrange(L, (int)(arg+1), 0, LJ_MAX_BUF);
     MSize len = sbufxlen(sbx);
     MSize len = sbufxlen(sbx);
     if (n > len) n = len;
     if (n > len) n = len;
     setstrV(L, o, lj_str_new(L, sbx->r, n));
     setstrV(L, o, lj_str_new(L, sbx->r, n));
@@ -177,7 +177,7 @@ LJLIB_CF(buffer_method_get)		LJLIB_REC(.)
   }
   }
   if (sbx->r == sbx->w && !sbufiscow(sbx)) sbx->r = sbx->w = sbx->b;
   if (sbx->r == sbx->w && !sbufiscow(sbx)) sbx->r = sbx->w = sbx->b;
   lj_gc_check(L);
   lj_gc_check(L);
-  return narg-1;
+  return (int)(narg-1);
 }
 }
 
 
 #if LJ_HASFFI
 #if LJ_HASFFI

+ 3 - 0
libs/LuaJIT/src/lj_arch.h

@@ -93,6 +93,9 @@
 #elif defined(__CYGWIN__)
 #elif defined(__CYGWIN__)
 #define LJ_TARGET_CYGWIN	1
 #define LJ_TARGET_CYGWIN	1
 #define LUAJIT_OS	LUAJIT_OS_POSIX
 #define LUAJIT_OS	LUAJIT_OS_POSIX
+#elif defined(__QNX__)
+#define LJ_TARGET_QNX		1
+#define LUAJIT_OS	LUAJIT_OS_POSIX
 #else
 #else
 #define LUAJIT_OS	LUAJIT_OS_OTHER
 #define LUAJIT_OS	LUAJIT_OS_OTHER
 #endif
 #endif

+ 1 - 1
libs/LuaJIT/src/lj_asm_arm64.h

@@ -1201,7 +1201,7 @@ dotypecheck:
       tmp = ra_scratch(as, allow);
       tmp = ra_scratch(as, allow);
       rset_clear(allow, tmp);
       rset_clear(allow, tmp);
     }
     }
-    if (irt_isnum(t) && !(ir->op2 & IRSLOAD_CONVERT))
+    if (ra_hasreg(dest) && irt_isnum(t) && !(ir->op2 & IRSLOAD_CONVERT))
       emit_dn(as, A64I_FMOV_D_R, (dest & 31), tmp);
       emit_dn(as, A64I_FMOV_D_R, (dest & 31), tmp);
     /* Need type check, even if the load result is unused. */
     /* Need type check, even if the load result is unused. */
     asm_guardcc(as, irt_isnum(t) ? CC_LS : CC_NE);
     asm_guardcc(as, irt_isnum(t) ? CC_LS : CC_NE);

+ 1 - 0
libs/LuaJIT/src/lj_err.c

@@ -777,6 +777,7 @@ LJ_NOINLINE void lj_err_mem(lua_State *L)
 {
 {
   if (L->status == LUA_ERRERR+1)  /* Don't touch the stack during lua_open. */
   if (L->status == LUA_ERRERR+1)  /* Don't touch the stack during lua_open. */
     lj_vm_unwind_c(L->cframe, LUA_ERRMEM);
     lj_vm_unwind_c(L->cframe, LUA_ERRMEM);
+  if (curr_funcisL(L)) L->top = curr_topL(L);
   setstrV(L, L->top++, lj_err_str(L, LJ_ERR_ERRMEM));
   setstrV(L, L->top++, lj_err_str(L, LJ_ERR_ERRMEM));
   lj_err_throw(L, LUA_ERRMEM);
   lj_err_throw(L, LUA_ERRMEM);
 }
 }

+ 2 - 2
libs/LuaJIT/src/lj_ffrecord.c

@@ -1117,7 +1117,7 @@ static LJ_AINLINE TRef recff_sbufx_len(jit_State *J, TRef trr, TRef trw)
 }
 }
 
 
 /* Emit typecheck for string buffer. */
 /* Emit typecheck for string buffer. */
-static TRef recff_sbufx_check(jit_State *J, RecordFFData *rd, int arg)
+static TRef recff_sbufx_check(jit_State *J, RecordFFData *rd, ptrdiff_t arg)
 {
 {
   TRef trtype, ud = J->base[arg];
   TRef trtype, ud = J->base[arg];
   if (!tvisbuf(&rd->argv[arg])) lj_trace_err(J, LJ_TRERR_BADTYPE);
   if (!tvisbuf(&rd->argv[arg])) lj_trace_err(J, LJ_TRERR_BADTYPE);
@@ -1135,7 +1135,7 @@ static TRef recff_sbufx_write(jit_State *J, TRef ud)
 }
 }
 
 
 /* Check for integer in range for the buffer API. */
 /* Check for integer in range for the buffer API. */
-static TRef recff_sbufx_checkint(jit_State *J, RecordFFData *rd, int arg)
+static TRef recff_sbufx_checkint(jit_State *J, RecordFFData *rd, ptrdiff_t arg)
 {
 {
   TRef tr = J->base[arg];
   TRef tr = J->base[arg];
   TRef trlim = lj_ir_kint(J, LJ_MAX_BUF);
   TRef trlim = lj_ir_kint(J, LJ_MAX_BUF);

+ 1 - 1
libs/LuaJIT/src/lj_prng.c

@@ -125,7 +125,7 @@ static PRGR libfunc_rgr;
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
 #define LJ_TARGET_HAS_GETENTROPY	1
 #define LJ_TARGET_HAS_GETENTROPY	1
 #endif
 #endif
-#elif (LJ_TARGET_BSD && !defined(__NetBSD__)) || LJ_TARGET_SOLARIS || LJ_TARGET_CYGWIN
+#elif (LJ_TARGET_BSD && !defined(__NetBSD__)) || LJ_TARGET_SOLARIS || LJ_TARGET_CYGWIN || LJ_TARGET_QNX
 #define LJ_TARGET_HAS_GETENTROPY	1
 #define LJ_TARGET_HAS_GETENTROPY	1
 #endif
 #endif
 
 

+ 4 - 0
libs/LuaJIT/src/lj_profile.c

@@ -185,7 +185,11 @@ static void profile_timer_start(ProfileState *ps)
   tm.it_value.tv_sec = tm.it_interval.tv_sec = interval / 1000;
   tm.it_value.tv_sec = tm.it_interval.tv_sec = interval / 1000;
   tm.it_value.tv_usec = tm.it_interval.tv_usec = (interval % 1000) * 1000;
   tm.it_value.tv_usec = tm.it_interval.tv_usec = (interval % 1000) * 1000;
   setitimer(ITIMER_PROF, &tm, NULL);
   setitimer(ITIMER_PROF, &tm, NULL);
+#if LJ_TARGET_QNX
+  sa.sa_flags = 0;
+#else
   sa.sa_flags = SA_RESTART;
   sa.sa_flags = SA_RESTART;
+#endif
   sa.sa_handler = profile_signal;
   sa.sa_handler = profile_signal;
   sigemptyset(&sa.sa_mask);
   sigemptyset(&sa.sa_mask);
   sigaction(SIGPROF, &sa, &ps->oldsa);
   sigaction(SIGPROF, &sa, &ps->oldsa);

+ 3 - 2
libs/LuaJIT/src/lj_record.c

@@ -1964,7 +1964,7 @@ static void rec_varg(jit_State *J, BCReg dst, ptrdiff_t nresults)
 	vbase = emitir(IRT(IR_ADD, IRT_PGC), vbase, lj_ir_kint(J, frofs-8*(1+LJ_FR2)));
 	vbase = emitir(IRT(IR_ADD, IRT_PGC), vbase, lj_ir_kint(J, frofs-8*(1+LJ_FR2)));
 	for (i = 0; i < nload; i++) {
 	for (i = 0; i < nload; i++) {
 	  IRType t = itype2irt(&J->L->base[i-1-LJ_FR2-nvararg]);
 	  IRType t = itype2irt(&J->L->base[i-1-LJ_FR2-nvararg]);
-	  J->base[dst+i] = lj_record_vload(J, vbase, i, t);
+	  J->base[dst+i] = lj_record_vload(J, vbase, (MSize)i, t);
 	}
 	}
       } else {
       } else {
 	emitir(IRTGI(IR_LE), fr, lj_ir_kint(J, frofs));
 	emitir(IRTGI(IR_LE), fr, lj_ir_kint(J, frofs));
@@ -2572,7 +2572,8 @@ void lj_record_ins(jit_State *J)
     break;
     break;
   case BC_JLOOP:
   case BC_JLOOP:
     rec_loop_jit(J, rc, rec_loop(J, ra,
     rec_loop_jit(J, rc, rec_loop(J, ra,
-				 !bc_isret(bc_op(traceref(J, rc)->startins))));
+				 !bc_isret(bc_op(traceref(J, rc)->startins)) &&
+				 bc_op(traceref(J, rc)->startins) != BC_ITERN));
     break;
     break;
 
 
   case BC_IFORL:
   case BC_IFORL: