summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/i86/i286.cpp
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-05-03 23:13:09 -0400
committer AJR <ajrhacker@users.noreply.github.com>2020-05-03 23:13:47 -0400
commite59af6d5e89f02a2a626adc95b244924403b98f9 (patch)
tree07e47529777bfdfd41b02ccdff0b62a20fa22638 /src/devices/cpu/i86/i286.cpp
parent16550d533fdcc4d563e5ba06cb146436a1af7b58 (diff)
i86, i286: Update m_prev_ip (and therefore CURPC) after taking interrupt (nw)
Diffstat (limited to 'src/devices/cpu/i86/i286.cpp')
-rw-r--r--src/devices/cpu/i86/i286.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/devices/cpu/i86/i286.cpp b/src/devices/cpu/i86/i286.cpp
index 76e142a7645..c307e23901b 100644
--- a/src/devices/cpu/i86/i286.cpp
+++ b/src/devices/cpu/i86/i286.cpp
@@ -769,7 +769,7 @@ void i80286_cpu_device::code_descriptor(uint16_t selector, uint16_t offset, int
m_limit[CS] = LIMIT(desc);
m_base[CS] = BASE(desc);
m_rights[CS] = RIGHTS(desc);
- m_ip = offset;
+ m_prev_ip = m_ip = offset;
}
else
{ // systemdescriptor
@@ -862,7 +862,7 @@ void i80286_cpu_device::code_descriptor(uint16_t selector, uint16_t offset, int
}
else
{
- m_ip = offset;
+ m_prev_ip = m_ip = offset;
m_sregs[CS]=selector;
m_base[CS]=selector<<4;
m_rights[CS]=0x93;
@@ -979,7 +979,7 @@ void i80286_cpu_device::interrupt_descriptor(int number, int hwint, int error)
m_limit[CS] = LIMIT(gatedesc);
m_base[CS] = BASE(gatedesc);
m_rights[CS] = RIGHTS(gatedesc);
- m_ip = GATEOFF(desc);
+ m_prev_ip = m_ip = GATEOFF(desc);
m_TF = 0;
m_NT = 0;
if(GATE(RIGHTS(desc)) == INTGATE)