gdb/gdbserver/

* Makefile.in (clean): Remove reg-mips64.c.
	(reg-mips64.c, reg-mips64.o): New rules.
	* configure.srv: Handle mips64.  Include regset support for mips.
	* linux-mips-low.c (union mips_register): New.
	(mips_get_pc, mips_set_pc, mips_reinsert_addr): Use it.
	(mips_breakpoint, mips_breakpoint_at): Use int.
	(mips_collect_register, mips_supply_register)
	(mips_collect_register_32bit, mips_supply_register_32bit)
	(mips_fill_gregset, mips_store_gregset, mips_fill_fpregset)
	(mips_store_fpregset, target_regsets): New.
	* thread-db.c (thread_db_get_tls_address): Use uintptr_t.
gdb/
	* regformats/reg-mips64.dat: New file.
This commit is contained in:
Daniel Jacobowitz
2006-11-28 22:21:23 +00:00
parent 29709017e8
commit 186947f7ca
7 changed files with 323 additions and 14 deletions

View File

@@ -33,6 +33,8 @@ extern int debug_threads;
#include "gdb_proc_service.h"
#include <stdint.h>
/* Structure that identifies the child process for the
<proc_service.h> interface. */
static struct ps_prochandle proc_handle;
@@ -333,11 +335,14 @@ thread_db_get_tls_address (struct thread_info *thread, CORE_ADDR offset,
if (!process->thread_known)
return TD_NOTHR;
err = td_thr_tls_get_addr (&process->th, (psaddr_t) load_module, offset,
&addr);
/* Note the cast through uintptr_t: this interface only works if
a target address fits in a psaddr_t, which is a host pointer.
So a 32-bit debugger can not access 64-bit TLS through this. */
err = td_thr_tls_get_addr (&process->th, (psaddr_t) (uintptr_t) load_module,
offset, &addr);
if (err == TD_OK)
{
*address = (CORE_ADDR) addr;
*address = (CORE_ADDR) (uintptr_t) addr;
return 0;
}
else