Line 23... |
Line 23... |
#if HAVE_CONFIG_H
|
#if HAVE_CONFIG_H
|
#include <config.h>
|
#include <config.h>
|
#endif
|
#endif
|
|
|
#include <stdio.h>
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
#if HAVE_MALLOC_H
|
#if HAVE_MALLOC_H
|
#include <malloc.h> /* calloc, free */
|
#include <malloc.h> /* calloc, free */
|
#endif
|
#endif
|
#include "support/profile.h"
|
#include "support/profile.h"
|
#include "mprofiler.h"
|
#include "mprofiler.h"
|
Line 141... |
Line 143... |
}
|
}
|
|
|
void printout (int mode)
|
void printout (int mode)
|
{
|
{
|
unsigned long addr = start_addr & ~((1 << group_bits) - 1);
|
unsigned long addr = start_addr & ~((1 << group_bits) - 1);
|
PRINTF ("start = %08x (%08x); end = %08x; group_bits = %08x\n", start_addr, addr, end_addr, (1 << group_bits) - 1);
|
PRINTF ("start = %08x (%08lx); end = %08x; group_bits = %08x\n", start_addr, addr, end_addr, (1 << group_bits) - 1);
|
for (; addr <= end_addr; addr += (1 << group_bits)) {
|
for (; addr <= end_addr; addr += (1 << group_bits)) {
|
int i;
|
int i;
|
unsigned long a = hash_get (addr >> group_bits, 0);
|
unsigned long a = hash_get (addr >> group_bits, 0);
|
unsigned long b = hash_get (addr >> group_bits, 1);
|
unsigned long b = hash_get (addr >> group_bits, 1);
|
unsigned long c = hash_get (addr >> group_bits, 2);
|
unsigned long c = hash_get (addr >> group_bits, 2);
|
PRINTF ("%08x:", addr);
|
PRINTF ("%08lx:", addr);
|
switch (mode) {
|
switch (mode) {
|
case MODE_DETAIL:
|
case MODE_DETAIL:
|
if (a) PRINTF (" %10i R", a);
|
if (a) PRINTF (" %10li R", a);
|
else PRINTF (" R");
|
else PRINTF (" R");
|
if (b) PRINTF (" %10i W", b);
|
if (b) PRINTF (" %10li W", b);
|
else PRINTF (" W");
|
else PRINTF (" W");
|
if (c) PRINTF (" %10i F", c);
|
if (c) PRINTF (" %10li F", c);
|
else PRINTF (" F");
|
else PRINTF (" F");
|
break;
|
break;
|
case MODE_ACCESS:
|
case MODE_ACCESS:
|
PRINTF (" %10i", a + b + c);
|
PRINTF (" %10li", a + b + c);
|
break;
|
break;
|
case MODE_PRETTY:
|
case MODE_PRETTY:
|
PRINTF (" %10i ", a + b + c);
|
PRINTF (" %10li ", a + b + c);
|
for (i = 0; i < nbits (a + b + c); i++)
|
for (i = 0; i < nbits (a + b + c); i++)
|
PRINTF ("#");
|
PRINTF ("#");
|
#if 0
|
#if 0
|
for (; i < 64; i++)
|
for (; i < 64; i++)
|
PRINTF (".");
|
PRINTF (".");
|
#endif
|
#endif
|
break;
|
break;
|
case MODE_WIDTH:
|
case MODE_WIDTH:
|
if (a) PRINTF (" %10i B", a);
|
if (a) PRINTF (" %10li B", a);
|
else PRINTF (" B");
|
else PRINTF (" B");
|
if (b) PRINTF (" %10i H", b);
|
if (b) PRINTF (" %10li H", b);
|
else PRINTF (" H");
|
else PRINTF (" H");
|
if (c) PRINTF (" %10i W", c);
|
if (c) PRINTF (" %10li W", c);
|
else PRINTF (" W");
|
else PRINTF (" W");
|
break;
|
break;
|
}
|
}
|
PRINTF ("\n");
|
PRINTF ("\n");
|
if (addr >= addr + (1 << group_bits)) break; /* Overflow? */
|
if (addr >= addr + (1 << group_bits)) break; /* Overflow? */
|