From 9bb6b35f7fc099ade96951e016c84fc5f3eb41bb Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sat, 24 Aug 2024 17:03:17 +0200 Subject: [PATCH 1/2] Always use IRT_NIL for IR_TBAR. Thanks to Peter Cawley. #1258 --- src/lj_ffrecord.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c index 4127fe81..32d9e4c7 100644 --- a/src/lj_ffrecord.c +++ b/src/lj_ffrecord.c @@ -171,7 +171,7 @@ static void LJ_FASTCALL recff_setmetatable(jit_State *J, RecordFFData *rd) mtref = tref_isnil(mt) ? lj_ir_knull(J, IRT_TAB) : mt; emitir(IRT(IR_FSTORE, IRT_TAB), fref, mtref); if (!tref_isnil(mt)) - emitir(IRT(IR_TBAR, IRT_TAB), tr, 0); + emitir(IRT(IR_TBAR, IRT_NIL), tr, 0); J->base[0] = tr; J->needsnap = 1; } /* else: Interpreter will throw. */ From e45fd4cb713b610506213692f3b55a1869febb03 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sat, 24 Aug 2024 17:11:45 +0200 Subject: [PATCH 2/2] Fix limit check in narrow_conv_backprop(). Thanks to Sergey Kaplun. #1262 --- src/lj_opt_narrow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lj_opt_narrow.c b/src/lj_opt_narrow.c index 700c23d4..2f02407c 100644 --- a/src/lj_opt_narrow.c +++ b/src/lj_opt_narrow.c @@ -341,7 +341,8 @@ static int narrow_conv_backprop(NarrowConv *nc, IRRef ref, int depth) NarrowIns *savesp = nc->sp; int count = narrow_conv_backprop(nc, ir->op1, depth); count += narrow_conv_backprop(nc, ir->op2, depth); - if (count <= 1) { /* Limit total number of conversions. */ + /* Limit total number of conversions. */ + if (count <= 1 && nc->sp < nc->maxsp) { *nc->sp++ = NARROWINS(IRT(ir->o, nc->t), ref); return count; }