--- hatari/src/uae-cpu/newcpu.h 2019/04/09 08:54:38 1.1.1.15 +++ hatari/src/uae-cpu/newcpu.h 2019/04/09 08:59:34 1.1.1.18 @@ -117,8 +117,11 @@ extern struct regstruct uae_u32 pc; uae_u8 *pc_p; uae_u8 *pc_oldp; + uae_u16 opcode; + uae_u32 instruction_pc; uae_u32 vbr,sfc,dfc; + uae_u32 caar, cacr; fptype fp[8]; fptype fp_result; @@ -162,6 +165,8 @@ STATIC_INLINE uaecptr m68k_getpc_p (uae_ return regs.pc + ((char *)p - (char *)regs.pc_oldp); } +#define M68K_GETPC m68k_getpc() + #define get_ibyte(o) do_get_mem_byte(regs.pc_p + (o) + 1) #define get_iword(o) do_get_mem_word(regs.pc_p + (o)) #define get_ilong(o) do_get_mem_long(regs.pc_p + (o)) @@ -170,6 +175,8 @@ STATIC_INLINE void refill_prefetch (uae_ { uae_u32 t = (currpc + offs) & ~1; uae_u32 r; + +//fprintf ( stderr , "refill pc %x o %d old %x\n" , currpc,offs,regs.prefetch_pc ); #ifdef UNALIGNED_PROFITABLE if ( t - regs.prefetch_pc == 2 ) /* keep 1 word and read 1 new word */ { @@ -361,6 +368,10 @@ extern uae_u16 last_op_for_exception_3; extern uaecptr last_addr_for_exception_3; /* Address that generated the exception */ extern uaecptr last_fault_for_exception_3; +/* read (0) or write (1) access */ +extern int last_writeaccess_for_exception_3; +/* instruction (1) or data (0) access */ +extern int last_instructionaccess_for_exception_3; #define CPU_OP_NAME(a) op ## a @@ -379,12 +390,11 @@ extern const struct cputbl op_smalltbl_5 extern cpuop_func *cpufunctbl[65536]; -extern uae_u32 caar, cacr; /* Family of the latest instruction executed (to check for pairing) */ extern int OpcodeFamily; /* see instrmnem in readcpu.h */ -/* How many cycles to add to the current instruction in case a "misaligned" bus acces is made */ +/* How many cycles to add to the current instruction in case a "misaligned" bus access is made */ /* (used when addressing mode is d8(an,ix)) */ extern int BusCyclePenalty;