Fixed the 286+ CPU timer running.

This commit is contained in:
OBattler
2020-01-21 02:00:04 +01:00
parent fd58f1e79b
commit f662b9f342
6 changed files with 15 additions and 35 deletions

View File

@@ -73,12 +73,8 @@ extern int dontprint;
#define OP_TABLE(name) ops_ ## name #define OP_TABLE(name) ops_ ## name
#define CLOCK_CYCLES(c) do { cycles -= (c); \ #define CLOCK_CYCLES(c) cycles -= (c)
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) \ #define CLOCK_CYCLES_ALWAYS(c) cycles -= (c)
timer_process(); } while(0)
#define CLOCK_CYCLES_ALWAYS(c) do { cycles -= (c); \
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) \
timer_process(); } while(0)
#include "x86_ops.h" #include "x86_ops.h"
@@ -252,9 +248,9 @@ dontprint=0;
if (!timetolive) if (!timetolive)
fatal("Life expired\n"); fatal("Life expired\n");
} }
}
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc))
timer_process(); timer_process();
}
} }
} }

View File

@@ -710,12 +710,8 @@ void leave_smm()
} }
#define OP_TABLE(name) ops_ ## name #define OP_TABLE(name) ops_ ## name
#define CLOCK_CYCLES(c) do { cycles -= (c); \ #define CLOCK_CYCLES(c) cycles -= (c)
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) \ #define CLOCK_CYCLES_ALWAYS(c) cycles -= (c)
timer_process(); } while(0)
#define CLOCK_CYCLES_ALWAYS(c) do { cycles -= (c); \
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) \
timer_process(); } while(0)
#include "386_ops.h" #include "386_ops.h"
@@ -1138,10 +1134,10 @@ inrecomp=0;
} }
} }
} }
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc))
timer_process();
} }
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc))
timer_process();
cycles_main -= (cycles_start - cycles); cycles_main -= (cycles_start - cycles);
} }
} }

View File

@@ -65,7 +65,5 @@ static __inline void fetch_ea_16_long(uint32_t rmdat)
#define OP_TABLE(name) dynarec_ops_ ## name #define OP_TABLE(name) dynarec_ops_ ## name
#define CLOCK_CYCLES(c) #define CLOCK_CYCLES(c)
#define CLOCK_CYCLES_ALWAYS(c) do { cycles -= (c); \ #define CLOCK_CYCLES_ALWAYS(c) cycles -= (c)
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) \
timer_process(); } while(0)
#include "386_ops.h" #include "386_ops.h"

View File

@@ -175,12 +175,8 @@ fetch_ea_16_long(uint32_t rmdat)
#define OP_TABLE(name) ops_ ## name #define OP_TABLE(name) ops_ ## name
#define CLOCK_CYCLES(c) do { cycles -= (c); \ #define CLOCK_CYCLES(c) cycles -= (c)
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) \ #define CLOCK_CYCLES_ALWAYS(c) cycles -= (c)
timer_process(); } while(0)
#define CLOCK_CYCLES_ALWAYS(c) do { cycles -= (c); \
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) \
timer_process(); } while(0)
#include "x86_ops.h" #include "x86_ops.h"

View File

@@ -471,12 +471,8 @@ void leave_smm()
} }
#define OP_TABLE(name) ops_ ## name #define OP_TABLE(name) ops_ ## name
#define CLOCK_CYCLES(c) do { cycles -= (c); \ #define CLOCK_CYCLES(c) cycles -= (c)
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) \ #define CLOCK_CYCLES_ALWAYS(c) cycles -= (c)
timer_process(); } while(0)
#define CLOCK_CYCLES_ALWAYS(c) do { cycles -= (c); \
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) \
timer_process(); } while(0)
#include "386_ops.h" #include "386_ops.h"

View File

@@ -64,8 +64,6 @@ static inline void fetch_ea_16_long(uint32_t rmdat)
#define OP_TABLE(name) dynarec_ops_ ## name #define OP_TABLE(name) dynarec_ops_ ## name
/*Temporary*/ /*Temporary*/
#define CLOCK_CYCLES(c) #define CLOCK_CYCLES(c)
#define CLOCK_CYCLES_ALWAYS(c) do { cycles -= (c); \ #define CLOCK_CYCLES_ALWAYS(c) cycles -= (c)
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc)) \
timer_process(); } while(0)
#include "386_ops.h" #include "386_ops.h"