* target.h: Add enum target_waitkind, enum target_signal, and
[deliverable/binutils-gdb.git] / gdb / a29k-tdep.c
index 8437c97400507b214c5ff53dc990beccb1c63516..88b630ae8e76afe6728f5d947f0416ca6511352a 100644 (file)
@@ -646,7 +646,7 @@ get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lvalp)
     {
       if (raw_buffer != NULL)
        {
-         store_address (raw_buffer, REGISTER_RAW_BYTES (regnum), fi->frame);
+         store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), fi->frame);
        }
       if (lvalp != NULL)
        *lvalp = not_lval;
@@ -656,7 +656,7 @@ get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lvalp)
     {
       if (raw_buffer != NULL)
        {
-         store_address (raw_buffer, REGISTER_RAW_BYTES (regnum), fi->pc);
+         store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), fi->pc);
        }
 
       /* Not sure we have to do this.  */
@@ -671,7 +671,7 @@ get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lvalp)
        {
          if (fi->next != NULL)
            {
-             store_address (raw_buffer, REGISTER_RAW_BYTES (regnum),
+             store_address (raw_buffer, REGISTER_RAW_SIZE (regnum),
                             fi->next->saved_msp);
            }
          else
@@ -817,6 +817,50 @@ push_dummy_frame ()
   write_register (lrnum, read_register (NPC_REGNUM));
 }
 
+enum a29k_processor_types processor_type = a29k_unknown;
+
+void
+a29k_get_processor_type ()
+{
+  unsigned int cfg_reg = (unsigned int) read_register (CFG_REGNUM);
+
+  /* Most of these don't have freeze mode.  */
+  processor_type = a29k_no_freeze_mode;
+
+  switch ((cfg_reg >> 28) & 0xf)
+    {
+    case 0:
+      fprintf_filtered (gdb_stderr, "Remote debugging an Am29000");
+      break;
+    case 1:
+      fprintf_filtered (gdb_stderr, "Remote debugging an Am29005");
+      break;
+    case 2:
+      fprintf_filtered (gdb_stderr, "Remote debugging an Am29050");
+      processor_type = a29k_freeze_mode;
+      break;
+    case 3:
+      fprintf_filtered (gdb_stderr, "Remote debugging an Am29035");
+      break;
+    case 4:
+      fprintf_filtered (gdb_stderr, "Remote debugging an Am29030");
+      break;
+    case 5:
+      fprintf_filtered (gdb_stderr, "Remote debugging an Am2920*");
+      break;
+    case 6:
+      fprintf_filtered (gdb_stderr, "Remote debugging an Am2924*");
+      break;
+    case 7:
+      fprintf_filtered (gdb_stderr, "Remote debugging an Am29040");
+      break;
+    default:
+      fprintf_filtered (gdb_stderr, "Remote debugging an unknown Am29k\n");
+      /* Don't bother to print the revision.  */
+      return;
+    }
+  fprintf_filtered (gdb_stderr, " revision %c\n", 'A' + ((cfg_reg >> 24) & 0x0f));
+}
 
 void
 _initialize_29k()
This page took 0.023686 seconds and 4 git commands to generate.