From 3a782faaf304e3b8bed95bdcfdbb3f41004612cc Mon Sep 17 00:00:00 2001
From: Thomas Harte <thomas.harte@gmail.com>
Date: Fri, 10 Nov 2023 22:58:59 -0500
Subject: [PATCH] Ensure shoutouts upon LDS, LES and any far jump/call/int.

---
 .../x86/Implementation/PerformImplementation.hpp       | 10 ++++++++--
 OSBindings/Mac/Clock SignalTests/8088Tests.mm          |  1 +
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/InstructionSets/x86/Implementation/PerformImplementation.hpp b/InstructionSets/x86/Implementation/PerformImplementation.hpp
index a12bd65ae..0016495bd 100644
--- a/InstructionSets/x86/Implementation/PerformImplementation.hpp
+++ b/InstructionSets/x86/Implementation/PerformImplementation.hpp
@@ -246,10 +246,16 @@ template <
 		case Operation::LAHF:	Primitive::lahf(context.registers.ah(), context);		return;
 
 		case Operation::LDS:
-			if constexpr (data_size == DataSize::Word) Primitive::ld<Source::DS>(instruction, destination_w(), context);
+			if constexpr (data_size == DataSize::Word) {
+				Primitive::ld<Source::DS>(instruction, destination_w(), context);
+				context.registers.did_update(Source::DS);
+			}
 		return;
 		case Operation::LES:
-			if constexpr (data_size == DataSize::Word) Primitive::ld<Source::ES>(instruction, destination_w(), context);
+			if constexpr (data_size == DataSize::Word) {
+				Primitive::ld<Source::ES>(instruction, destination_w(), context);
+				context.registers.did_update(Source::ES);
+			}
 		return;
 
 		case Operation::LEA:	Primitive::lea<IntT>(instruction, destination_w(), context);	return;
diff --git a/OSBindings/Mac/Clock SignalTests/8088Tests.mm b/OSBindings/Mac/Clock SignalTests/8088Tests.mm
index d5a84da74..1272f9648 100644
--- a/OSBindings/Mac/Clock SignalTests/8088Tests.mm	
+++ b/OSBindings/Mac/Clock SignalTests/8088Tests.mm	
@@ -348,6 +348,7 @@ class FlowController {
 
 		void jump(uint16_t segment, uint16_t address) {
 			registers_.cs_ = segment;
+			registers_.did_update(Registers::Source::CS);
 			registers_.ip_ = address;
 		}