aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/ppc-linux-tdep.c11
-rw-r--r--gdb/spu-tdep.c2
-rw-r--r--gdb/testsuite/ChangeLog9
-rw-r--r--gdb/testsuite/gdb.cell/bt.exp1
-rw-r--r--gdb/testsuite/gdb.cell/coremaker.c9
-rw-r--r--gdb/testsuite/gdb.cell/ea-standalone.exp4
-rw-r--r--gdb/testsuite/gdb.cell/fork.exp2
8 files changed, 36 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 90fdec5..c01e091 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
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
"parent" parameter to symbol_file_add_from_bfd call.
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index c6e4b83..e623742 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -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
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
index 7f20794..236b205 100644
--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -456,7 +456,7 @@ enum
op_a = 0x0c0,
op_ai = 0x1c,
- op_selb = 0x4,
+ op_selb = 0x8,
op_br = 0x64,
op_bra = 0x60,
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index ff015f0..c920d38 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -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.
diff --git a/gdb/testsuite/gdb.cell/bt.exp b/gdb/testsuite/gdb.cell/bt.exp
index 8bff6f2..b1ee458 100644
--- a/gdb/testsuite/gdb.cell/bt.exp
+++ b/gdb/testsuite/gdb.cell/bt.exp
@@ -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.*"
diff --git a/gdb/testsuite/gdb.cell/coremaker.c b/gdb/testsuite/gdb.cell/coremaker.c
index f1754ce..48ad90c 100644
--- a/gdb/testsuite/gdb.cell/coremaker.c
+++ b/gdb/testsuite/gdb.cell/coremaker.c
@@ -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);
diff --git a/gdb/testsuite/gdb.cell/ea-standalone.exp b/gdb/testsuite/gdb.cell/ea-standalone.exp
index 8753fa1..fd6f622 100644
--- a/gdb/testsuite/gdb.cell/ea-standalone.exp
+++ b/gdb/testsuite/gdb.cell/ea-standalone.exp
@@ -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\]"
diff --git a/gdb/testsuite/gdb.cell/fork.exp b/gdb/testsuite/gdb.cell/fork.exp
index ad5c75a..b8c603d 100644
--- a/gdb/testsuite/gdb.cell/fork.exp
+++ b/gdb/testsuite/gdb.cell/fork.exp
@@ -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