CPU_TRACING now emits machine cycles

This commit is contained in:
Aaron Culliney 2015-01-11 18:37:57 -08:00
parent 643a431386
commit 87a2d081d3
5 changed files with 22 additions and 11 deletions

View File

@ -788,7 +788,7 @@ GLUE_C_WRITE(cpu65_trace_epilogue)
}
flags_buf[8] = '\0';
fprintf(cpu_trace_fp, " %s EA:%04X", flags_buf, cpu65_ea);
fprintf(cpu_trace_fp, " %s CYC:%u EA:%04X", flags_buf, cpu65_opcycles, cpu65_ea);
char fmt[64];
sprintf(fmt, " %s %s", opcodes_65c02[cpu65_opcode].mnemonic, disasm_templates[opcodes_65c02[cpu65_opcode].mode]);
@ -829,6 +829,13 @@ GLUE_C_WRITE(cpu65_trace_epilogue)
fflush(cpu_trace_fp);
}
void cpu65_trace_checkpoint(void) {
if (cpu_trace_fp) {
fprintf(cpu_trace_fp, "---TOTAL CYC:%lu\n",g_nCumulativeCycles);
fflush(cpu_trace_fp);
}
}
# if RESET_VM_TRACING
# define VM_TRACING 1
# endif

View File

@ -64,6 +64,7 @@ extern int16_t cpu65_cycles_to_execute;
void cpu65_trace_begin(const char *trace_file);
void cpu65_trace_end(void);
void cpu65_trace_toggle(const char *trace_file);
void cpu65_trace_checkpoint(void);
#endif
#endif /* !__ASSEMBLER__ */

View File

@ -132,7 +132,7 @@ void test_common_init(bool do_cputhread) {
pthread_create(&cpu_thread_id, NULL, (void *) &cpu_thread, (void *)NULL);
c_debugger_set_watchpoint(WATCHPOINT_ADDR);
if (is_headless) {
c_debugger_set_timeout(10);
c_debugger_set_timeout(15);
} else {
fprintf(stderr, "NOTE : RUNNING WITH DISPLAY\n");
fprintf(stderr, "Will spinloop on failed tests for debugger intervention\n");

View File

@ -237,8 +237,8 @@ TEST test_boot_disk_cputrace() {
}
#endif
#define EXPECTED_CPUTRACE_HELLO_FILE_SIZE 107500760
#define EXPECTED_CPUTRACE_HELLO_SHA "CAF2507BAB937488F85377528041705114F06CA4"
#define EXPECTED_CPUTRACE_HELLO_FILE_SIZE 118664420
#define EXPECTED_CPUTRACE_HELLO_SHA "C01DDA6AE63A2FEA0CE8DA3A3B258F96AE8BA79B"
TEST test_cputrace_hello_dsk() {
test_setup_boot_disk(BLANK_DSK, 0);
@ -287,8 +287,8 @@ TEST test_cputrace_hello_dsk() {
PASS();
}
#define EXPECTED_CPUTRACE_HELLO_NIB_FILE_SIZE 12887880
#define EXPECTED_CPUTRACE_HELLO_NIB_SHA "CE14642D70BA42B214C22BFB460F00AA54C8BB5C"
#define EXPECTED_CPUTRACE_HELLO_NIB_FILE_SIZE 14612543
#define EXPECTED_CPUTRACE_HELLO_NIB_SHA "2D494B4302CC6E3753D7AB50B587C03C7E05C93A"
TEST test_cputrace_hello_nib() {
test_setup_boot_disk(BLANK_NIB, 0);
@ -337,8 +337,8 @@ TEST test_cputrace_hello_nib() {
PASS();
}
#define EXPECTED_CPUTRACE_HELLO_PO_FILE_SIZE EXPECTED_CPUTRACE_HELLO_FILE_SIZE
#define EXPECTED_CPUTRACE_HELLO_PO_SHA EXPECTED_CPUTRACE_HELLO_SHA
#define EXPECTED_CPUTRACE_HELLO_PO_FILE_SIZE 118680586
#define EXPECTED_CPUTRACE_HELLO_PO_SHA "716D8D515876C138B7F3D8F078F05684C801D707"
TEST test_cputrace_hello_po() {
test_setup_boot_disk(BLANK_PO, 0);
@ -388,7 +388,7 @@ TEST test_cputrace_hello_po() {
}
#define EXPECTED_VM_TRACE_FILE_SIZE 2830792
#define EXPECTED_VM_TRACE_SHA "0659556B878848A6421D93057F18B3FB518A7D76"
#define EXPECTED_VM_TRACE_SHA "E3AA4EBEACF9053D619E115F6AEB454A8939BFB4"
TEST test_boot_disk_vmtrace() {
char *homedir = getenv("HOME");
char *disk = NULL;
@ -434,7 +434,7 @@ TEST test_boot_disk_vmtrace() {
}
#define EXPECTED_VM_TRACE_NIB_FILE_SIZE 2930056
#define EXPECTED_VM_TRACE_NIB_SHA "9C1B64255B1946011FAAF5DF53C24114401485EE"
#define EXPECTED_VM_TRACE_NIB_SHA "D60DAE2F3AA4002678457F6D16FC8A25FA14C10E"
TEST test_boot_disk_vmtrace_nib() {
test_setup_boot_disk(BLANK_NIB, 0);
@ -482,7 +482,7 @@ TEST test_boot_disk_vmtrace_nib() {
}
#define EXPECTED_VM_TRACE_PO_FILE_SIZE EXPECTED_VM_TRACE_FILE_SIZE
#define EXPECTED_VM_TRACE_PO_SHA "23236C80A9CC38E75BB27F2E70359234B6B8D4DA"
#define EXPECTED_VM_TRACE_PO_SHA "DA200BE91FD8D6D09E551A19ED0445F985898C16"
TEST test_boot_disk_vmtrace_po() {
test_setup_boot_disk(BLANK_PO, 0);

View File

@ -257,6 +257,9 @@ void *cpu_thread(void *dummyptr) {
const int nRemainingCycles = uActualCyclesExecuted - g_nCyclesExecuted;
assert(nRemainingCycles >= 0);
g_nCumulativeCycles += nRemainingCycles;
#if CPU_TRACING
cpu65_trace_checkpoint();
#endif
if (!g_bFullSpeed)
{