From 16b1e65fa3db4e2cd7552e8cdb443faa8bbc7646 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 8 Sep 2026 19:48:07 -0400 Subject: [PATCH] merge lane L3: trade/spy workload (watchpoint modes unioned: modcount|tshn|snlv|cont) --- src/shim/hooks/watchpoints.cpp | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/src/shim/hooks/watchpoints.cpp b/src/shim/hooks/watchpoints.cpp index c79dedb..40c1f30 100644 --- a/src/shim/hooks/watchpoints.cpp +++ b/src/shim/hooks/watchpoints.cpp @@ -20,18 +20,14 @@ int g_players = 2; char g_outPath[MAX_PATH] = {}; // Which four addresses the single arming point computes. `modcount` is lane W2's set and is the -<<<<<<< HEAD -// default so its run stays reproducible byte for byte; `tshn` is lane W3's. -enum class Mode { ModCount, Tshn, Snlv }; -======= -// default so its run stays reproducible byte for byte; `tshn` is lane W3's; `cont` is lane L3's. +// default so its run stays reproducible byte for byte; `tshn` is lane W3's; `snlv` is lane L1's; +// `cont` is lane L3's. // -// `cont` differs from the other two in one further respect: it re-arms and re-logs on EVERY End -// Turn rather than only the first. The other two modes measure one turn of one save, where arming -// once is right. L3's workload is a game played forward across many turns and the question is -// "did the container grow on turn N", which needs a line per turn. -enum class Mode { ModCount, Tshn, Cont }; ->>>>>>> wip/l3 +// `cont` differs from the others in one further respect: it re-arms and re-logs on EVERY End Turn +// rather than only the first. The other modes measure one turn of one save, where arming once is +// right. L3's workload is a game played forward across many turns and the question is "did the +// container grow on turn N", which needs a line per turn. +enum class Mode { ModCount, Tshn, Snlv, Cont }; Mode g_mode = Mode::ModCount; // ---- what is being watched ------------------------------------------------------------------ @@ -505,13 +501,9 @@ extern "C" void WatchOnApplyAll(void* self) { g_watchAddr[2] = 0; g_watchAddr[3] = 0; -<<<<<<< HEAD - if (g_mode == Mode::Tshn || g_mode == Mode::Snlv) { -======= if (g_mode == Mode::Cont) { ArmContSlots(S); - } else if (g_mode == Mode::Tshn) { ->>>>>>> wip/l3 + } else if (g_mode == Mode::Tshn || g_mode == Mode::Snlv) { ArmTshnSlots(S); } else { @@ -604,13 +596,9 @@ bool watch_apply_config(const char* key, const char* value, std::string* err) { if (std::strcmp(key, "watch.mode") == 0) { if (std::strcmp(value, "modcount") == 0) g_mode = Mode::ModCount; else if (std::strcmp(value, "tshn") == 0) g_mode = Mode::Tshn; -<<<<<<< HEAD else if (std::strcmp(value, "snlv") == 0) g_mode = Mode::Snlv; - else if (err) *err = "expected modcount|tshn|snlv"; -======= else if (std::strcmp(value, "cont") == 0) g_mode = Mode::Cont; - else if (err) *err = "expected modcount|tshn|cont"; ->>>>>>> wip/l3 + else if (err) *err = "expected modcount|tshn|snlv|cont"; return true; } if (std::strcmp(key, "watch.out") == 0) {