OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.0/] [gdb/] [or1k-tdep.c] - Diff between revs 1115 and 1123

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 1115 Rev 1123
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");

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.