Revision 7fe48483 target-sparc/translate.c

b/target-sparc/translate.c
1391 1391

  
1392 1392
#define GET_FLAG(a,b) ((env->psr & a)?b:'-')
1393 1393

  
1394
void cpu_sparc_dump_state(CPUSPARCState * env, FILE * f, int flags)
1394
void cpu_dump_state(CPUState *env, FILE *f, 
1395
                    int (*cpu_fprintf)(FILE *f, const char *fmt, ...),
1396
                    int flags)
1395 1397
{
1396 1398
    int i, x;
1397 1399

  
1398
    fprintf(f, "pc: 0x%08x  npc: 0x%08x\n", (int) env->pc, (int) env->npc);
1399
    fprintf(f, "General Registers:\n");
1400
    cpu_fprintf(f, "pc: 0x%08x  npc: 0x%08x\n", (int) env->pc, (int) env->npc);
1401
    cpu_fprintf(f, "General Registers:\n");
1400 1402
    for (i = 0; i < 4; i++)
1401
	fprintf(f, "%%g%c: 0x%08x\t", i + '0', env->gregs[i]);
1402
    fprintf(f, "\n");
1403
	cpu_fprintf(f, "%%g%c: 0x%08x\t", i + '0', env->gregs[i]);
1404
    cpu_fprintf(f, "\n");
1403 1405
    for (; i < 8; i++)
1404
	fprintf(f, "%%g%c: 0x%08x\t", i + '0', env->gregs[i]);
1405
    fprintf(f, "\nCurrent Register Window:\n");
1406
	cpu_fprintf(f, "%%g%c: 0x%08x\t", i + '0', env->gregs[i]);
1407
    cpu_fprintf(f, "\nCurrent Register Window:\n");
1406 1408
    for (x = 0; x < 3; x++) {
1407 1409
	for (i = 0; i < 4; i++)
1408
	    fprintf(f, "%%%c%d: 0x%08x\t",
1410
	    cpu_fprintf(f, "%%%c%d: 0x%08x\t",
1409 1411
		    (x == 0 ? 'o' : (x == 1 ? 'l' : 'i')), i,
1410 1412
		    env->regwptr[i + x * 8]);
1411
	fprintf(f, "\n");
1413
	cpu_fprintf(f, "\n");
1412 1414
	for (; i < 8; i++)
1413
	    fprintf(f, "%%%c%d: 0x%08x\t",
1415
	    cpu_fprintf(f, "%%%c%d: 0x%08x\t",
1414 1416
		    (x == 0 ? 'o' : x == 1 ? 'l' : 'i'), i,
1415 1417
		    env->regwptr[i + x * 8]);
1416
	fprintf(f, "\n");
1418
	cpu_fprintf(f, "\n");
1417 1419
    }
1418
    fprintf(f, "\nFloating Point Registers:\n");
1420
    cpu_fprintf(f, "\nFloating Point Registers:\n");
1419 1421
    for (i = 0; i < 32; i++) {
1420 1422
        if ((i & 3) == 0)
1421
            fprintf(f, "%%f%02d:", i);
1422
        fprintf(f, " %016lf", env->fpr[i]);
1423
            cpu_fprintf(f, "%%f%02d:", i);
1424
        cpu_fprintf(f, " %016lf", env->fpr[i]);
1423 1425
        if ((i & 3) == 3)
1424
            fprintf(f, "\n");
1426
            cpu_fprintf(f, "\n");
1425 1427
    }
1426
    fprintf(f, "psr: 0x%08x -> %c%c%c%c %c%c%c wim: 0x%08x\n", GET_PSR(env),
1428
    cpu_fprintf(f, "psr: 0x%08x -> %c%c%c%c %c%c%c wim: 0x%08x\n", GET_PSR(env),
1427 1429
	    GET_FLAG(PSR_ZERO, 'Z'), GET_FLAG(PSR_OVF, 'V'),
1428 1430
	    GET_FLAG(PSR_NEG, 'N'), GET_FLAG(PSR_CARRY, 'C'),
1429 1431
	    env->psrs?'S':'-', env->psrps?'P':'-', 
1430 1432
	    env->psret?'E':'-', env->wim);
1431
    fprintf(f, "fsr: 0x%08x\n", env->fsr);
1433
    cpu_fprintf(f, "fsr: 0x%08x\n", env->fsr);
1432 1434
}
1433 1435

  
1434 1436
target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr)

Also available in: Unified diff