From cc94ec4cbcc7bc0775c87fea874314f5c9f38198 Mon Sep 17 00:00:00 2001 From: dzaima Date: Fri, 5 May 2023 13:28:58 +0300 Subject: [PATCH] =?UTF-8?q?move=20out=20another=20s+=E2=86=95n=20loop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/fns.c | 5 ++++- src/builtins/sysfn.c | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/builtins/fns.c b/src/builtins/fns.c index 13e80b6d..79fd7a63 100644 --- a/src/builtins/fns.c +++ b/src/builtins/fns.c @@ -12,9 +12,12 @@ NOINLINE B intRange16(ux s, ux n) { // s+↕n with i16arr result for (ux i = 0; i < n; i++) rp[i] = (i16)s + (i16)i; return r; } +NOINLINE void intRange32Fill(i32* xp, ux s, ux n) { // fill xp with s+↕n + for (ux i = 0; i < n; i++) xp[i] = (i32)s + (i32)i; +} NOINLINE B intRange32(ux s, ux n) { // s+↕n with i32arr result i32* rp; B r = m_i32arrv(&rp, n); - for (ux i = 0; i < n; i++) rp[i] = (i32)s + (i32)i; + intRange32Fill(rp, s, n); return r; } NOINLINE B intRangeF64(ux s, ux n) { // s+↕n with f64arr result diff --git a/src/builtins/sysfn.c b/src/builtins/sysfn.c index 1a302397..4d38f530 100644 --- a/src/builtins/sysfn.c +++ b/src/builtins/sysfn.c @@ -427,8 +427,9 @@ B rand_range_c2(B t, B w, B x) { extern Arr* bitUD[3]; // from fns.c extern B bit2x[2]; -NOINLINE B intRange16(ux s, ux n); -NOINLINE B intRange32(ux s, ux n); +B intRange16(ux s, ux n); +B intRange32(ux s, ux n); +void intRange32Fill(i32* xp, ux s, ux n); B rand_deal_c1(B t, B x) { i32 xi = o2i(x); @@ -497,7 +498,7 @@ B rand_deal_c1(B t, B x) { b+= l; } TFREE(pos) - for (usz j=i; j