Future support for higher clocked CPU's

This commit is contained in:
Jasmine Iwanek
2023-10-13 15:34:00 -04:00
parent d909b86fd5
commit f6a5229a98
13 changed files with 131 additions and 39 deletions

View File

@@ -219,16 +219,16 @@ fetch_ea_16_long(uint32_t rmdat)
#include "386_ops.h"
void
exec386_2386(int cycs)
exec386_2386(int32_t cycs)
{
int ol;
int vector;
int tempi;
int cycdiff;
int oldcyc;
int cycle_period;
int ins_cycles;
int32_t cycdiff;
int32_t oldcyc;
int32_t cycle_period;
int32_t ins_cycles;
uint32_t addr;
cycles += cycs;

View File

@@ -226,12 +226,12 @@ fetch_ea_16_long(uint32_t rmdat)
#define CACHE_ON() (!(cr0 & (1 << 30)) && !(cpu_state.flags & T_FLAG))
#ifdef USE_DYNAREC
int cycles_main = 0;
static int cycles_old = 0;
int32_t cycles_main = 0;
static int32_t cycles_old = 0;
static uint64_t tsc_old = 0;
# ifdef USE_ACYCS
int acycs = 0;
int32_t acycs = 0;
# endif
void
@@ -676,24 +676,24 @@ exec386_dynarec_dyn(void)
}
void
exec386_dynarec(int cycs)
exec386_dynarec(int32_t cycs)
{
int vector;
int tempi;
int cycdiff;
int oldcyc;
int oldcyc2;
int32_t cycdiff;
int32_t oldcyc;
int32_t oldcyc2;
uint64_t oldtsc;
uint64_t delta;
int cyc_period = cycs / 2000; /*5us*/
int32_t cyc_period = cycs / 2000; /*5us*/
# ifdef USE_ACYCS
acycs = 0;
# endif
cycles_main += cycs;
while (cycles_main > 0) {
int cycles_start;
int32_t cycles_start;
cycles += cyc_period;
cycles_start = cycles;
@@ -799,14 +799,14 @@ exec386_dynarec(int cycs)
#endif
void
exec386(int cycs)
exec386(int32_t cycs)
{
int vector;
int tempi;
int cycdiff;
int oldcyc;
int cycle_period;
int ins_cycles;
int32_t cycdiff;
int32_t oldcyc;
int32_t cycle_period;
int32_t ins_cycles;
uint32_t addr;
cycles += cycs;

View File

@@ -2063,7 +2063,7 @@ farret(int far)
/* Executes instructions up to the specified number of cycles. */
void
execx86(int cycs)
execx86(int32_t cycs)
{
uint8_t temp = 0;
uint8_t temp2;

View File

@@ -258,7 +258,7 @@ CPU *cpu_s;
uint8_t do_translate = 0;
uint8_t do_translate2 = 0;
void (*cpu_exec)(int cycs);
void (*cpu_exec)(int32_t cycs);
static uint8_t ccr0;
static uint8_t ccr1;

View File

@@ -143,7 +143,7 @@ typedef struct cpu_t {
const char *name;
uint64_t cpu_type;
const FPU *fpus;
int rspeed;
uint32_t rspeed;
double multi;
uint16_t voltage;
uint32_t edx_reset;
@@ -166,9 +166,9 @@ typedef struct {
} cpu_family_t;
typedef struct {
const char *family;
const int rspeed;
const double multi;
const char *family;
const uint32_t rspeed;
const double multi;
} cpu_legacy_table_t;
typedef struct {
@@ -739,13 +739,13 @@ extern void codegen_block_end(void);
extern void codegen_reset(void);
extern void cpu_set_edx(void);
extern int divl(uint32_t val);
extern void execx86(int cycs);
extern void execx86(int32_t cycs);
extern void enter_smm(int in_hlt);
extern void enter_smm_check(int in_hlt);
extern void leave_smm(void);
extern void exec386_2386(int cycs);
extern void exec386(int cycs);
extern void exec386_dynarec(int cycs);
extern void exec386_2386(int32_t cycs);
extern void exec386(int32_t cycs);
extern void exec386_dynarec(int32_t cycs);
extern int idivl(int32_t val);
extern void resetmcr(void);
extern void resetx86(void);
@@ -814,7 +814,7 @@ extern int prefetch_prefixes;
extern uint8_t use_custom_nmi_vector;
extern uint32_t custom_nmi_vector;
extern void (*cpu_exec)(int cycs);
extern void (*cpu_exec)(int32_t cycs);
extern uint8_t do_translate;
extern uint8_t do_translate2;