Fixed JIT compiler

This commit is contained in:
Dimitris Panokostas 2019-08-31 18:39:11 +02:00
parent 46150052c1
commit d0faf2798c
4 changed files with 644 additions and 651 deletions

View file

@ -24,8 +24,8 @@ typedef uae_u32 REGPARAM3 cpuop_func (uae_u32) REGPARAM;
typedef void REGPARAM3 cpuop_func_ce (uae_u32) REGPARAM;
struct cputbl {
cpuop_func *handler;
uae_u16 opcode;
cpuop_func *handler;
uae_u16 opcode;
uae_s8 length;
uae_s8 disp020[2];
uae_u8 branch;
@ -44,9 +44,9 @@ typedef uae_u32 REGPARAM3 compop_func (uae_u32) REGPARAM;
#define COMP_OPCODE_USES_FPU 0x0020
struct comptbl {
compop_func *handler;
uae_u32 opcode;
int specific;
compop_func *handler;
uae_u32 specific;
uae_u32 opcode;
};
#else
#define MIN_JIT_CACHE 0
@ -64,8 +64,8 @@ typedef double fptype;
struct mmufixup
{
int reg;
uae_u32 value;
int reg;
uae_u32 value;
};
extern struct mmufixup mmufixup[1];
@ -160,7 +160,7 @@ extern int m68k_pc_indirect;
STATIC_INLINE void set_special (uae_u32 x)
{
atomic_or(&regs.spcflags, x);
cycles_do_special();
cycles_do_special();
}
STATIC_INLINE void unset_special (uae_u32 x)
@ -312,8 +312,7 @@ extern uae_u32 REGPARAM3 _get_disp_ea_020 (uae_u32 base) REGPARAM;
extern uae_u32 REGPARAM3 get_bitfield (uae_u32 src, uae_u32 bdata[2], uae_s32 offset, int width) REGPARAM;
extern void REGPARAM3 put_bitfield (uae_u32 dst, uae_u32 bdata[2], uae_u32 val, uae_s32 offset, int width) REGPARAM;
extern int get_cpu_model(void);
extern int get_cpu_model (void);
extern void set_cpu_caches (bool flush);
extern void flush_cpu_caches_040(uae_u16 opcode);
@ -323,7 +322,6 @@ extern void REGPARAM3 MakeFromSR_T0(void) REGPARAM;
extern void REGPARAM3 Exception (int) REGPARAM;
extern void REGPARAM3 Exception_cpu(int) REGPARAM;
extern void NMI (void);
extern void NMI_delayed(void);
extern void doint (void);
extern void dump_counts (void);
extern int m68k_move2c (int, uae_u32 *);

View file

@ -4025,9 +4025,9 @@ static bool inputdevice_handle_inputcode2(int code, int state, const TCHAR *s)
case AKS_EFLOPPY3:
disk_eject(3);
break;
case AKS_IRQ7:
NMI_delayed();
break;
//case AKS_IRQ7:
// NMI_delayed();
// break;
case AKS_PAUSE:
pausemode(newstate > 0 ? 1 : newstate);
break;

View file

@ -28,13 +28,8 @@
* along with ARAnyM; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <sys/mman.h>
#include <unistd.h>
#include <cstring>
#include <time.h>
#include <math.h>
#include "sysdeps.h"
@ -592,8 +587,8 @@ STATIC_INLINE uae_u8* get_target(void)
#define DATA_BUFFER_SIZE 768 // Enlarge POPALLSPACE_SIZE if this value is greater than 768
#define DATA_BUFFER_MAXOFFSET (4096 - 32) // max range between emit of data and use of data
static uae_u8* data_writepos = nullptr;
static uae_u8* data_endpos = nullptr;
static uae_u8* data_writepos = 0;
static uae_u8* data_endpos = 0;
#ifdef DEBUG_DATA_BUFFER
static uae_u32 data_wasted = 0;
static uae_u32 data_buffers_used = 0;

File diff suppressed because it is too large Load diff