summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/i386/i386.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/i386/i386.cpp')
-rw-r--r--src/devices/cpu/i386/i386.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/devices/cpu/i386/i386.cpp b/src/devices/cpu/i386/i386.cpp
index 62d3e17dabb..bd99c7f456b 100644
--- a/src/devices/cpu/i386/i386.cpp
+++ b/src/devices/cpu/i386/i386.cpp
@@ -165,14 +165,14 @@ MODRM_TABLE i386_MODRM_table[256];
/*************************************************************************/
-uint32_t i386_device::i386_translate(int segment, uint32_t ip, int rwn)
+uint32_t i386_device::i386_translate(int segment, uint32_t ip, int rwn, int size)
{
// TODO: segment limit access size, execution permission, handle exception thrown from exception handler
if (PROTECTED_MODE && !V8086_MODE && (rwn != -1))
{
if (!(m_sreg[segment].valid))
FAULT_THROW((segment == SS) ? FAULT_SS : FAULT_GP, 0);
- if (i386_limit_check(segment, ip))
+ if (i386_limit_check(segment, ip, size))
FAULT_THROW((segment == SS) ? FAULT_SS : FAULT_GP, 0);
if ((rwn == 0) && ((m_sreg[segment].flags & 8) && !(m_sreg[segment].flags & 2)))
FAULT_THROW(FAULT_GP, 0);
@@ -2778,6 +2778,7 @@ void i386_device::execute_run()
if (m_halted)
{
+ debugger_wait_hook();
m_tsc += cycles;
m_cycles = 0;
return;