mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 08:49:37 +00:00
Ensure shoutouts upon LDS, LES and any far jump/call/int.
This commit is contained in:
parent
19a61f867f
commit
3a782faaf3
@ -246,10 +246,16 @@ template <
|
|||||||
case Operation::LAHF: Primitive::lahf(context.registers.ah(), context); return;
|
case Operation::LAHF: Primitive::lahf(context.registers.ah(), context); return;
|
||||||
|
|
||||||
case Operation::LDS:
|
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;
|
return;
|
||||||
case Operation::LES:
|
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;
|
return;
|
||||||
|
|
||||||
case Operation::LEA: Primitive::lea<IntT>(instruction, destination_w(), context); return;
|
case Operation::LEA: Primitive::lea<IntT>(instruction, destination_w(), context); return;
|
||||||
|
@ -348,6 +348,7 @@ class FlowController {
|
|||||||
|
|
||||||
void jump(uint16_t segment, uint16_t address) {
|
void jump(uint16_t segment, uint16_t address) {
|
||||||
registers_.cs_ = segment;
|
registers_.cs_ = segment;
|
||||||
|
registers_.did_update(Registers::Source::CS);
|
||||||
registers_.ip_ = address;
|
registers_.ip_ = address;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user