From c2c64f965490d85213c68627ad9ab952cf741528 Mon Sep 17 00:00:00 2001 From: dzaima Date: Tue, 20 Jul 2021 02:55:07 +0300 Subject: [PATCH] move thrF to a full function 0.3% more instrs with it never being called what --- src/core/stuff.c | 29 ++++++++++++++++++++++------- src/core/stuff.h | 3 ++- src/h.h | 3 +-- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/core/stuff.c b/src/core/stuff.c index f6a32bda..a914a38a 100644 --- a/src/core/stuff.c +++ b/src/core/stuff.c @@ -55,9 +55,6 @@ void decShR(Value* x) { } B bi_emptyHVec, bi_emptyIVec, bi_emptyCVec, bi_emptySVec; -NOINLINE B emptyCVecR() { - return emptyCVec(); -} NOINLINE TStack* ts_e(TStack* o, u32 elsz, u64 am) { u64 size = o->size; u64 alsz = mm_round(fsizeof(TStack, data, u8, (size+am)*elsz)); @@ -159,9 +156,7 @@ NOINLINE void printRaw(B x) { } } } -NOINLINE B append_fmt(B s, char* p, ...) { - va_list a; - va_start(a, p); +NOINLINE B do_fmt(B s, char* p, va_list a) { char buf[30]; char c; char* lp = p; @@ -258,9 +253,29 @@ NOINLINE B append_fmt(B s, char* p, ...) { lp = p; } if (lp!=p) AJOIN(fromUTF8(lp, p-lp)); - va_end(a); return s; } +NOINLINE B append_fmt(B s, char* p, ...) { + va_list a; + va_start(a, p); + B r = do_fmt(s, p, a); + va_end(a); + return r; +} +NOINLINE B make_fmt(char* p, ...) { + va_list a; + va_start(a, p); + B r = do_fmt(emptyCVec(), p, a); + va_end(a); + return r; +} +NOINLINE void thrF(char* p, ...) { + va_list a; + va_start(a, p); + B r = do_fmt(emptyCVec(), p, a); + va_end(a); + thr(r); +} #define CMP(W,X) ({ AUTO wt = (W); AUTO xt = (X); (wt>xt?1:0)-(wt