From 2d1562cc1f42f3661a8ba7d5d9e6327588005cb7 Mon Sep 17 00:00:00 2001 From: cancel Date: Thu, 20 Dec 2018 04:52:25 +0900 Subject: [PATCH] Remove 'pseudo dual' exceptions --- sim.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/sim.c b/sim.c index d6e4c19..dc43c67 100644 --- a/sim.c +++ b/sim.c @@ -346,8 +346,6 @@ Usz usz_clamp(Usz val, Usz min, Usz max) { (Uppercase_oper_char == This_oper_char) || \ oper_has_neighboring_bang(gbuffer, height, width, y, x); -#define PSEUDO_DUAL bool const Dual_is_active = true - #define BEGIN_DUAL_PORTS \ { \ bool const Oper_ports_enabled = Dual_is_active; @@ -566,7 +564,7 @@ BEGIN_DUAL_PHASE_1(clock) END_PHASE BEGIN_DUAL_PHASE_0(delay) - PSEUDO_DUAL; + REALIZE_DUAL; BEGIN_DUAL_PORTS PORT(0, 1, IN); PORT(0, -1, IN | HASTE); @@ -908,7 +906,7 @@ BEGIN_DUAL_PHASE_1(random) END_PHASE BEGIN_DUAL_PHASE_0(track) - PSEUDO_DUAL; + REALIZE_DUAL; Isz read_val_x = 1; if (IS_AWAKE) { Usz len = index_of(PEEK(0, -1)) + 1; @@ -929,6 +927,8 @@ BEGIN_DUAL_PHASE_0(track) END_PORTS END_PHASE BEGIN_DUAL_PHASE_1(track) + REALIZE_DUAL; + STOP_IF_DUAL_INACTIVE; I32 ival[1]; if (!LOAD(ival)) { ival[0] = 1; @@ -960,8 +960,7 @@ BEGIN_DUAL_PHASE_0(uturn) END_PHASE BEGIN_DUAL_PHASE_1(uturn) REALIZE_DUAL; - if (!DUAL_IS_ACTIVE) - return; + STOP_IF_DUAL_INACTIVE; for (Usz i = 0; i < Uturn_loop_limit; i += Uturn_per) { Isz dy = uturn_data[i + 0]; Isz dx = uturn_data[i + 1]; @@ -998,8 +997,7 @@ BEGIN_DUAL_PHASE_0(variable) END_PHASE BEGIN_DUAL_PHASE_1(variable) REALIZE_DUAL; - if (!DUAL_IS_ACTIVE) - return; + STOP_IF_DUAL_INACTIVE; Glyph left = PEEK(0, -1); if (left != '.') return;