Some minor CPU bugfixes - one for 808x and one for the new dynarec.

This commit is contained in:
OBattler
2023-04-20 02:24:03 +02:00
parent 06fc5e9d0d
commit 333e9377ff
2 changed files with 7 additions and 3 deletions

View File

@@ -426,13 +426,13 @@ pfq_write(void)
free in the queue. */ free in the queue. */
tempw = readmemwf(pfq_ip); tempw = readmemwf(pfq_ip);
*(uint16_t *) &(pfq[pfq_pos]) = tempw; *(uint16_t *) &(pfq[pfq_pos]) = tempw;
pfq_ip += 2; pfq_ip = (pfq_ip + 2) & 0xffff;
pfq_pos += 2; pfq_pos += 2;
} else if (!is8086 && (pfq_pos < pfq_size)) { } else if (!is8086 && (pfq_pos < pfq_size)) {
/* The 8088 fetches 1 byte at a time, and only if there's at least 1 byte /* The 8088 fetches 1 byte at a time, and only if there's at least 1 byte
free in the queue. */ free in the queue. */
pfq[pfq_pos] = readmembf(pfq_ip); pfq[pfq_pos] = readmembf(pfq_ip);
pfq_ip++; pfq_ip = (pfq_ip + 1) & 0xffff;
pfq_pos++; pfq_pos++;
} }
} }
@@ -2248,7 +2248,7 @@ execx86(int cycs)
default: default:
opcode = orig_opcode; opcode = orig_opcode;
cpu_state.pc--; cpu_state.pc = (cpu_state.pc - 1) & 0xffff;
break; break;
} }
} else } else

View File

@@ -416,7 +416,11 @@ typedef struct {
#define CPU_STATUS_PMODE (1 << 2) #define CPU_STATUS_PMODE (1 << 2)
#define CPU_STATUS_V86 (1 << 3) #define CPU_STATUS_V86 (1 << 3)
#define CPU_STATUS_SMM (1 << 4) #define CPU_STATUS_SMM (1 << 4)
#ifdef USE_NEW_DYNAREC
#define CPU_STATUS_FLAGS 0xff
#else
#define CPU_STATUS_FLAGS 0xffff #define CPU_STATUS_FLAGS 0xffff
#endif
/*If the cpu_state.flags below are set in cpu_cur_status, they must be set in block->status. /*If the cpu_state.flags below are set in cpu_cur_status, they must be set in block->status.
Otherwise they are ignored*/ Otherwise they are ignored*/