From adc4506ac87cfdc79b4774c018c52a450b0ab1f9 Mon Sep 17 00:00:00 2001 From: dzaima Date: Sun, 26 Nov 2023 22:15:14 +0200 Subject: [PATCH] fast path for ind integer checking --- src/vm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/vm.c b/src/vm.c index 45850b30..fdd201b7 100644 --- a/src/vm.c +++ b/src/vm.c @@ -485,8 +485,9 @@ NOINLINE Block* compileAll(B bcq, B objs, B allBlocks, B allBodies, B indices, B for (i32 i = 0; i < 2; i++) { B ind = IGetU(indices,i); if (isAtm(ind) || RNK(ind)!=1 || IA(ind)!=bcIA) thrM("VM compiler: Bad indices"); - SGetU(ind) - for (usz j = 0; j < bcIA; j++) o2i(GetU(ind,j)); + if (!elInt(TI(ind,elType))) { SGetU(ind) + for (usz j = 0; j < bcIA; j++) o2i(GetU(ind,j)); + } } } TALLOC(bool,bDone,bIA);