From 19f6954410ea21bcb19d834ff0b2994499fd546b Mon Sep 17 00:00:00 2001 From: OBattler Date: Mon, 19 Feb 2024 15:20:59 +0100 Subject: [PATCH] Reverted some CPU-related changes. --- src/cpu/386_common.c | 10 ++++++++-- src/cpu/x86seg.c | 11 ++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/cpu/386_common.c b/src/cpu/386_common.c index 77d984048..beb6869e9 100644 --- a/src/cpu/386_common.c +++ b/src/cpu/386_common.c @@ -1539,7 +1539,10 @@ x86_int_sw(int num) } } - trap &= ~1; + if (cpu_use_exec) + trap = 0; + else + trap &= ~1; CPU_BLOCK_END(); } @@ -1582,7 +1585,10 @@ x86_int_sw_rm(int num) #endif cycles -= timing_int_rm; - trap &= ~1; + if (cpu_use_exec) + trap = 0; + else + trap &= ~1; CPU_BLOCK_END(); return 0; diff --git a/src/cpu/x86seg.c b/src/cpu/x86seg.c index 245f3fa65..c50c97a39 100644 --- a/src/cpu/x86seg.c +++ b/src/cpu/x86seg.c @@ -2286,10 +2286,14 @@ taskswitch286(uint16_t seg, uint16_t *segdat, int is32) op_loadseg(new_fs, &cpu_state.seg_fs); op_loadseg(new_gs, &cpu_state.seg_gs); - rf_flag_no_clear = 1; + if (!cpu_use_exec) + rf_flag_no_clear = 1; if (t_bit) { - trap |= 2; + if (cpu_use_exec) + trap = 2; + else + trap |= 2; #ifdef USE_DYNAREC cpu_block_end = 1; #endif @@ -2469,7 +2473,8 @@ taskswitch286(uint16_t seg, uint16_t *segdat, int is32) tr.limit = limit; tr.access = segdat[2] >> 8; tr.ar_high = segdat[3] & 0xff; - dr[7] &= 0xFFFFFFAA; + if (!cpu_use_exec) + dr[7] &= 0xFFFFFFAA; } void