From f93252591d7f9e80979259b24a571b72699e5d8e Mon Sep 17 00:00:00 2001 From: cancel Date: Fri, 30 Nov 2018 21:47:58 +0900 Subject: [PATCH] Remove use of memcpy in sim.c --- sim.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/sim.c b/sim.c index ce7ea54..129388e 100644 --- a/sim.c +++ b/sim.c @@ -2,6 +2,16 @@ #include "mark.h" #include "sim.h" +#if 0 +ORCA_FORCE_STATIC_INLINE void stupid_memcpy(char* restrict dest, + char* restrict src, size_t sz) { + for (size_t i = 0; i < sz; ++i) { + dest[i] = src[i]; + } +} +#define ORCA_MEMCPY(_dest, _src, _sz) memcpy(_dest, _src, _sz) +#endif + //////// Utilities static Glyph const indexed_glyphs[] = { @@ -508,9 +518,15 @@ BEGIN_DUAL_PHASE_1(loop) Glyph buff[15]; Glyph* gs = gbuffer + y * width + x + 1; Glyph hopped = *gs; - memcpy(buff, gs + 1, len - 1); + // ORCA_MEMCPY(buff, gs + 1, len - 1); + for (Usz i = 0; i < len - 1; ++i) { + buff[i] = gs[i + 1]; + } buff[len - 1] = hopped; - memcpy(gs, buff, len); + // ORCA_MEMCPY(gs, buff, len); + for (Usz i = 0; i < len; ++i) { + gs[i] = buff[i]; + } for (Usz i = 0; i < len; ++i) { STUN(0, (Isz)i + 1); }