- Cleanups & make sure PPC emulator config is setup in sysdeps.h

- Log r24 in SheepShaver mode as this represents the 68k emulator PC
This commit is contained in:
gbeauche 2003-10-11 09:03:03 +00:00
parent be50ff1b42
commit 1012da75dd
4 changed files with 16 additions and 3 deletions

View File

@ -83,6 +83,9 @@
**/
#ifndef PPC_LAZY_PC_UPDATE
#define PPC_LAZY_PC_UPDATE
#endif
#ifdef PPC_NO_LAZY_PC_UPDATE
#undef PPC_LAZY_PC_UPDATE
#endif
@ -124,7 +127,7 @@
**/
#ifndef PPC_NO_DECODE_CACHE
#define PPC_NO_DECODE_CACHE 1
#undef PPC_NO_DECODE_CACHE
#endif

View File

@ -119,6 +119,9 @@ void powerpc_cpu::record_step(uint32 opcode)
#if PPC_FLIGHT_RECORDER
log[log_ptr].pc = pc();
log[log_ptr].opcode = opcode;
#ifdef SHEEPSHAVER
log[log_ptr].extra = gpr(24);
#endif
#if PPC_FLIGHT_RECORDER >= 2
for (int i = 0; i < 32; i++) {
log[log_ptr].r[i] = gpr(i);
@ -168,7 +171,11 @@ void powerpc_cpu::dump_log(const char *filename)
fprintf(f, "r28 %08x r29 %08x r30 %08x r31 %08x\n", log[j].r[28], log[j].r[29], log[j].r[30], log[j].r[31]);
fprintf(f, "opcode %08x\n", log[j].opcode);
#else
fprintf(f, " pc %08x opc %08x | ", log[j].pc, log[j].opcode);
fprintf(f, " pc %08x opc %08x", log[j].pc, log[j].opcode);
#ifdef SHEEPSHAVER
fprintf(f, " r24 %08x", log[j].extra);
#endif
fprintf(f, "| ");
#if !ENABLE_MON
fprintf(f, "\n");
#endif

View File

@ -101,6 +101,7 @@ protected:
#endif
uint32 pc;
uint32 opcode;
uint32 extra;
};
// Instruction formats
@ -202,10 +203,12 @@ public:
// Handle flight recorder
#if PPC_FLIGHT_RECORDER
bool is_logging() { return logging; }
void start_log() { logging = true; }
void stop_log() { logging = false; }
void dump_log(const char *filename = NULL);
#else
bool is_logging() { return false; }
void start_log() { }
void stop_log() { }
void dump_log(const char *filename = NULL) { }

View File

@ -566,7 +566,7 @@ void powerpc_cpu::execute_loadstore_multiple(uint32 opcode)
// FIXME: generate exception if ea is not word-aligned
if ((ea & 3) != 0) {
#ifdef SHEEPSHAVER
D(bug("unaligned EA load/store multiple\n"));
D(bug("unaligned load/store multiple to %08x\n", ea));
increment_pc(4);
return;
#else