Line 40... |
Line 40... |
|
|
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
|
|
/* Group reg name size. See or1k_reg_names. */
|
/* Group reg name size. See or1k_reg_names. */
|
int or1k_group_name_sizes[OR1K_NUM_SPR_GROUPS] = {
|
int or1k_group_name_sizes[OR1K_NUM_SPR_GROUPS] = {
|
80, 0, 0, 6, 4, 2,
|
80, 0, 0, 6, 4, 3,
|
22, 16, 1, 3, 2, 8
|
22, 16, 1, 3, 2, 8
|
};
|
};
|
|
|
int or1k_group_name_start[OR1K_NUM_SPR_GROUPS] = {
|
|
0, 0, 0, 253, 254, 256,
|
|
0, 248, 16, 16, 255, 0
|
|
};
|
|
|
|
/* Generated reg names (max valid alias index).
|
/* Generated reg names (max valid alias index).
|
See or1k_spr_reg_name. */
|
See or1k_spr_reg_name. */
|
int or1k_spr_valid_aliases[OR1K_NUM_SPR_GROUPS] = {
|
int or1k_spr_valid_aliases[OR1K_NUM_SPR_GROUPS] = {
|
2047+1, 2047+1, 2047+1, 258+1, 257+1, 257+1,
|
2047+1, 2047+1, 2047+1, 258+1, 257+1, 257+1,
|
78+1, 263+1, 16+1, 18+1, 256+1, 7+1
|
78+1, 263+1, 16+1, 18+1, 256+1, 7+1
|
Line 82... |
Line 77... |
|
|
/* group 4 - Instruction cache */
|
/* group 4 - Instruction cache */
|
"ICCR", "ICBPR", "ICBIR", "ICBLR",
|
"ICCR", "ICBPR", "ICBIR", "ICBLR",
|
|
|
/* group 5 - MAC */
|
/* group 5 - MAC */
|
"MACLO", "MACHI",
|
"SPR5_0", "MACLO", "MACHI",
|
|
|
/* group 6 - debug */
|
/* group 6 - debug */
|
"DVR0", "DVR1", "DVR2", "DVR3", "DVR4", "DVR5", "DVR6", "DVR7",
|
"DVR0", "DVR1", "DVR2", "DVR3", "DVR4", "DVR5", "DVR6", "DVR7",
|
"DCR0", "DCR1", "DCR2", "DCR3", "DCR4", "DCR5", "DCR6", "DCR7",
|
"DCR0", "DCR1", "DCR2", "DCR3", "DCR4", "DCR5", "DCR6", "DCR7",
|
"DMR1", "DMR2", "DCWR0","DCWR1","DSR", "DRR",
|
"DMR1", "DMR2", "DCWR0","DCWR1","DSR", "DRR",
|
|
|
/* group 7 - performance counters unit */
|
/* group 7 - performance counters unit */
|
"PCCM0", "PCMR1", "PCMR2", "PCMR3", "PCMR4", "PCMR5", "PCMR6", "PCMR7",
|
|
"PCCR0", "PCCR1", "PCCR2", "PCCR3", "PCCR4", "PCCR5", "PCCR6", "PCCR7",
|
"PCCR0", "PCCR1", "PCCR2", "PCCR3", "PCCR4", "PCCR5", "PCCR6", "PCCR7",
|
|
"PCCMR0", "PCMR1", "PCMR2", "PCMR3", "PCMR4", "PCMR5", "PCMR6", "PCMR7",
|
|
|
/* group 8 - power management */
|
/* group 8 - power management */
|
"PMR",
|
"PMR",
|
|
|
/* group 9 - PIC */
|
/* group 9 - PIC */
|
"PICMR", "PICPR",
|
"PICMR", /* now-defunct PICPR */ "SPR9_1", "PICSR",
|
|
|
/* group 10 - tick timer */
|
/* group 10 - tick timer */
|
"TTMR", "TTCR",
|
"TTMR", "TTCR",
|
|
|
/* group 11 - configuration */
|
/* group 11 - configuration */
|
"CPUCFGR", "DMMUCFGR", "IMMUCFGR", "DCCFGR", "ICCFGR", "SPR11_5", "DCFGR", "PCCFGR"
|
"CPUCFGR", "DMMUCFGR", "IMMUCFGR", "DCCFGR", "ICCFGR", "SPR11_5", "DCFGR", "PCCFGR"
|
Line 266... |
Line 260... |
{
|
{
|
int group_start = 0;
|
int group_start = 0;
|
for (i = 0; i < group; i++)
|
for (i = 0; i < group; i++)
|
group_start += or1k_group_name_sizes[i];
|
group_start += or1k_group_name_sizes[i];
|
|
|
index -= or1k_group_name_start[group];
|
|
if (index >= or1k_group_name_sizes[group])
|
if (index >= or1k_group_name_sizes[group])
|
{
|
{
|
sprintf (tmp_name, "SPR%i_%i", group, index);
|
sprintf (tmp_name, "SPR%i_%i", group, index);
|
return (char *)&tmp_name;
|
return (char *)&tmp_name;
|
}
|
}
|
Line 340... |
Line 333... |
i = (int) strtoul (name, &ptr_c, 10);
|
i = (int) strtoul (name, &ptr_c, 10);
|
if (*ptr_c)
|
if (*ptr_c)
|
return -1;
|
return -1;
|
else return i;
|
else return i;
|
}
|
}
|
for (i = or1k_group_name_start[group]; i < or1k_spr_valid_aliases[group]; i++)
|
for (i = 0; i < or1k_spr_valid_aliases[group]; i++)
|
{
|
{
|
char *s;
|
char *s;
|
s = or1k_spr_register_name (SPR_REG(group, i));
|
s = or1k_spr_register_name (SPR_REG(group, i));
|
if (strcasecmp (name, s) == 0)
|
if (strcasecmp (name, s) == 0)
|
return i;
|
return i;
|
Line 1126... |
Line 1119... |
{
|
{
|
printf_filtered ("No register supplied. Valid registers are:\n");
|
printf_filtered ("No register supplied. Valid registers are:\n");
|
for (i = 0; i < or1k_spr_valid_aliases[*group]; i++)
|
for (i = 0; i < or1k_spr_valid_aliases[*group]; i++)
|
{
|
{
|
char reg_name[16];
|
char reg_name[16];
|
char *gen_name = or1k_spr_register_name (SPR_REG(*group, i + or1k_group_name_start[*group]));
|
char *gen_name = or1k_spr_register_name (SPR_REG(*group, i));
|
sprintf (reg_name, "SPR%i_%i", *group, i);
|
sprintf (reg_name, "SPR%i_%i", *group, i);
|
if (strcmp (reg_name, gen_name) != 0)
|
if (strcmp (reg_name, gen_name) != 0)
|
printf_filtered ("%s\t", gen_name);
|
printf_filtered ("%s\t", gen_name);
|
}
|
}
|
printf_filtered ("\n");
|
printf_filtered ("\n");
|