diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/cpu/i86/i286.cpp | 6 | ||||
-rw-r--r-- | src/devices/cpu/i86/i86.cpp | 2 |
2 files changed, 4 insertions, 4 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) diff --git a/src/devices/cpu/i86/i86.cpp b/src/devices/cpu/i86/i86.cpp index d14a2efe2df..8f9697cb97d 100644 --- a/src/devices/cpu/i86/i86.cpp +++ b/src/devices/cpu/i86/i86.cpp @@ -595,7 +595,7 @@ void i8086_common_cpu_device::interrupt(int int_num, int trap) PUSH(m_sregs[CS]); PUSH(m_ip); - m_ip = dest_off; + m_prev_ip = m_ip = dest_off; m_sregs[CS] = dest_seg; } |