From 3597ae18738e9fb8b7f9f7e46fc3b08bbfb1e5a0 Mon Sep 17 00:00:00 2001 From: SarahW Date: Thu, 5 May 2016 19:24:18 +0100 Subject: [PATCH] If POP SS causes a fault then don't run the following instruction. Fixes Virtual Pool. --- src/x86_ops_stack.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/x86_ops_stack.h b/src/x86_ops_stack.h index 9807b5b..392c03f 100644 --- a/src/x86_ops_stack.h +++ b/src/x86_ops_stack.h @@ -441,7 +441,7 @@ static int opPOP_SS_w(uint32_t fetchdat) uint16_t temp_seg; uint32_t temp_esp = ESP; temp_seg = POP_W(); if (abrt) return 1; - loadseg(temp_seg, &_ss); if (abrt) ESP = temp_esp; + loadseg(temp_seg, &_ss); if (abrt) { ESP = temp_esp; return 1; } CLOCK_CYCLES(is486 ? 3 : 7); oldpc = cpu_state.pc; @@ -460,7 +460,7 @@ static int opPOP_SS_l(uint32_t fetchdat) uint32_t temp_seg; uint32_t temp_esp = ESP; temp_seg = POP_L(); if (abrt) return 1; - loadseg(temp_seg & 0xffff, &_ss); if (abrt) ESP = temp_esp; + loadseg(temp_seg & 0xffff, &_ss); if (abrt) { ESP = temp_esp; return 1; } CLOCK_CYCLES(is486 ? 3 : 7); oldpc = cpu_state.pc;