ChangeLog:
authorUlrich Weigand <uweigand@de.ibm.com>
Fri, 6 May 2011 20:48:48 +0000 (20:48 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Fri, 6 May 2011 20:48:48 +0000 (20:48 +0000)
* ppc-linux-tdep.c (ppu2spu_prev_register): Handle pseudo registers.
(ppu2spu_unwind_register): Mark pseudo registers unavailable.
* spu-tdep.c (op_selb): Use correct value.

testsuite/ChangeLog:

* gdb.cell/bt.exp: Delete breakpoints before running to signal
to avoid race condition.
* gdb.cell/coremaker.c: Use small stack size.
* gdb.cell/ea-standalone.exp: Use file name without path as
argument to c_to.
* gdb.cell/fork.exp: Allow other output when continuing to end.

gdb/ChangeLog
gdb/ppc-linux-tdep.c
gdb/spu-tdep.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.cell/bt.exp
gdb/testsuite/gdb.cell/coremaker.c
gdb/testsuite/gdb.cell/ea-standalone.exp
gdb/testsuite/gdb.cell/fork.exp

index 90fdec510a78aee847b66462eee45b07dfbd4196..c01e09183f56b8181a2a475de59043900997f716 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * ppc-linux-tdep.c (ppu2spu_prev_register): Handle pseudo registers.
+       (ppu2spu_unwind_register): Mark pseudo registers unavailable.
+       * spu-tdep.c (op_selb): Use correct value.
+
 2011-05-06  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * spu-linux-nat.c (spu_symbol_file_add_from_memory): Add NULL
index c6e4b838c09aad1f940e20e39438f7dd924d2495..e6237422b9b144cef6daa49fdbac9645c1008443 100644 (file)
@@ -1367,7 +1367,12 @@ ppu2spu_prev_register (struct frame_info *this_frame,
   gdb_byte *buf;
 
   buf = alloca (register_size (gdbarch, regnum));
-  regcache_cooked_read (cache->regcache, regnum, buf);
+
+  if (regnum < gdbarch_num_regs (gdbarch))
+    regcache_raw_read (cache->regcache, regnum, buf);
+  else
+    gdbarch_pseudo_register_read (gdbarch, cache->regcache, regnum, buf);
+
   return frame_unwind_got_bytes (this_frame, regnum, buf);
 }
 
@@ -1392,9 +1397,9 @@ ppu2spu_unwind_register (void *src, int regnum, gdb_byte *buf)
   else if (regnum == SPU_PC_REGNUM)
     store_unsigned_integer (buf, 4, byte_order, data->npc);
   else
-    return 0;
+    return REG_UNAVAILABLE;
 
-  return 1;
+  return REG_VALID;
 }
 
 static int
index 7f2079474e673624cf853c78372d769b96b1ed6f..236b2056d0a9f865a895e7b42f0817c4b32d8420 100644 (file)
@@ -456,7 +456,7 @@ enum
     op_a     = 0x0c0,
     op_ai    = 0x1c,
 
-    op_selb  = 0x4,
+    op_selb  = 0x8,
 
     op_br    = 0x64,
     op_bra   = 0x60,
index ff015f070a18ac017f83c579096f92c1e6c57b54..c920d382b17530e2a1d44dda7af03d243f849372 100644 (file)
@@ -1,3 +1,12 @@
+2011-05-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * gdb.cell/bt.exp: Delete breakpoints before running to signal
+       to avoid race condition.
+       * gdb.cell/coremaker.c: Use small stack size.
+       * gdb.cell/ea-standalone.exp: Use file name without path as
+       argument to c_to.
+       * gdb.cell/fork.exp: Allow other output when continuing to end.
+
 2011-05-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * gdb.threads/corethreads.c: New file.
index 8bff6f2c813699d96cd1eac72496ed97d669cb81..b1ee45839f64e056c380dabc1acb7f98a5361e75 100644 (file)
@@ -72,6 +72,7 @@ if ![runto_main] then {
   return 0
 }
 
+delete_breakpoints
 gdb_test "continue" ".*Program received signal SIGABRT, Aborted.*"
 
 gdb_test "backtrace" ".*abort.*crash_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu2_file.c.*<cross-architecture call>.*spe_context_run.*indirect_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*"
index f1754ceeb4f856cec6d3867cf9bd041aacd929f8..48ad90c9eee4761b224fac1ce5f4e659376cf75e 100644 (file)
@@ -43,18 +43,25 @@ int
 main (void)
 {
   int thread_id[nr_t];
+  pthread_attr_t attr;
   pthread_t pts[nr_t];
   spe_context_ptr_t ctx[nr_t];
   unsigned int value;
   int cnt;
 
+  /* Use small thread stacks to speed up writing out core file.  */
+  pthread_attr_init (&attr);
+  pthread_attr_setstacksize (&attr, 2*PTHREAD_STACK_MIN);
+
   for (cnt = 0; cnt < nr_t; cnt++)
     {
       ctx[cnt] = spe_context_create (0, NULL);
       thread_id[cnt]
-       = pthread_create (&pts[cnt], NULL, &spe_thread, &ctx[cnt]);
+       = pthread_create (&pts[cnt], &attr, &spe_thread, &ctx[cnt]);
     }
 
+  pthread_attr_destroy (&attr);
+
   for (cnt = 0; cnt < nr_t; cnt++)
     spe_out_intr_mbox_read (ctx[cnt], &value, 1, SPE_MBOX_ALL_BLOCKING);
 
index 8753fa15c18d7aebdc14c6cf8a19a625a826123c..fd6f6224c5fc6ea320d50d521d8579f8a30be7d7 100644 (file)
@@ -44,12 +44,12 @@ if ![runto_main] then {
   return 0
 }
 
-c_to "Marker SPUEA1" $srcfile
+c_to "Marker SPUEA1" $testfile.c
 gdb_test "p myarray\[0\]" \
         ".*= 0" \
         "p myarray\[0\]"
 
-c_to "Marker SPUEA2" $srcfile
+c_to "Marker SPUEA2" $testfile.c
 gdb_test "p myarray\[0\]" \
         ".*= 1" \
         "p myarray\[0\]"
index ad5c75aa7733ae64242d25d9de0619d213d737eb..b8c603dddc28593438145bb2e9cebee51826442d 100644 (file)
@@ -77,7 +77,7 @@ gdb_test_no_output "delete \$bpnum" "delete watchpoint"
 gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, func \\(\\) at .*$spu_file.c:.*" \
         "run until breakpoint hit"
 
-gdb_continue_to_end
+gdb_continue_to_end "" continue 1
 
 gdb_exit