This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[Darwin]: Use STATE32 api for getting/setting i386 state
- From: Tristan Gingold <gingold at adacore dot com>
- To: "gdb-patches at sourceware dot org ml" <gdb-patches at sourceware dot org>
- Date: Mon, 2 Apr 2012 15:48:34 +0200
- Subject: [Darwin]: Use STATE32 api for getting/setting i386 state
Hi,
another minor update in i386-darwin-nat.c: the old and deprecated i386_THREAD_STATE api was used, so it's time to switch to the newest but almost the same x86_THREAD_STATE32 api.
Committed on trunk after manual testing.
Tristan.
2012-04-02 Tristan Gingold <gingold@adacore.com>
* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Use
the STATE32 api for i386 state.
(i386_darwin_store_inferior_registers): Likewise.
Index: i386-darwin-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/i386-darwin-nat.c,v
retrieving revision 1.17
diff -c -r1.17 i386-darwin-nat.c
*** i386-darwin-nat.c 2 Apr 2012 13:15:48 -0000 1.17
--- i386-darwin-nat.c 2 Apr 2012 13:47:59 -0000
***************
*** 103,115 ****
{
if (regno == -1 || regno < I386_NUM_GREGS)
{
! i386_thread_state_t gp_regs;
! unsigned int gp_count = i386_THREAD_STATE_COUNT;
kern_return_t ret;
int i;
ret = thread_get_state
! (current_thread, i386_THREAD_STATE, (thread_state_t) & gp_regs,
&gp_count);
if (ret != KERN_SUCCESS)
{
--- 103,115 ----
{
if (regno == -1 || regno < I386_NUM_GREGS)
{
! x86_thread_state32_t gp_regs;
! unsigned int gp_count = x86_THREAD_STATE32_COUNT;
kern_return_t ret;
int i;
ret = thread_get_state
! (current_thread, x86_THREAD_STATE32, (thread_state_t) &gp_regs,
&gp_count);
if (ret != KERN_SUCCESS)
{
***************
*** 129,140 ****
if (regno == -1
|| (regno >= I386_ST0_REGNUM && regno < I386_SSE_NUM_REGS))
{
! i386_float_state_t fp_regs;
! unsigned int fp_count = i386_FLOAT_STATE_COUNT;
kern_return_t ret;
ret = thread_get_state
! (current_thread, i386_FLOAT_STATE, (thread_state_t) & fp_regs,
&fp_count);
if (ret != KERN_SUCCESS)
{
--- 129,140 ----
if (regno == -1
|| (regno >= I386_ST0_REGNUM && regno < I386_SSE_NUM_REGS))
{
! x86_float_state32_t fp_regs;
! unsigned int fp_count = x86_FLOAT_STATE32_COUNT;
kern_return_t ret;
ret = thread_get_state
! (current_thread, x86_FLOAT_STATE32, (thread_state_t) &fp_regs,
&fp_count);
if (ret != KERN_SUCCESS)
{
***************
*** 216,228 ****
{
if (regno == -1 || regno < I386_NUM_GREGS)
{
! i386_thread_state_t gp_regs;
kern_return_t ret;
! unsigned int gp_count = i386_THREAD_STATE_COUNT;
int i;
ret = thread_get_state
! (current_thread, i386_THREAD_STATE, (thread_state_t) & gp_regs,
&gp_count);
MACH_CHECK_ERROR (ret);
--- 216,228 ----
{
if (regno == -1 || regno < I386_NUM_GREGS)
{
! x86_thread_state32_t gp_regs;
kern_return_t ret;
! unsigned int gp_count = x86_THREAD_STATE32_COUNT;
int i;
ret = thread_get_state
! (current_thread, x86_THREAD_STATE32, (thread_state_t) &gp_regs,
&gp_count);
MACH_CHECK_ERROR (ret);
***************
*** 232,260 ****
(regcache, i,
(char *)&gp_regs + i386_darwin_thread_state_reg_offset[i]);
! ret = thread_set_state (current_thread, i386_THREAD_STATE,
! (thread_state_t) & gp_regs,
! i386_THREAD_STATE_COUNT);
MACH_CHECK_ERROR (ret);
}
if (regno == -1
|| (regno >= I386_ST0_REGNUM && regno < I386_SSE_NUM_REGS))
{
! i386_float_state_t fp_regs;
! unsigned int fp_count = i386_FLOAT_STATE_COUNT;
kern_return_t ret;
ret = thread_get_state
! (current_thread, i386_FLOAT_STATE, (thread_state_t) & fp_regs,
&fp_count);
MACH_CHECK_ERROR (ret);
i387_collect_fxsave (regcache, regno, &fp_regs.__fpu_fcw);
! ret = thread_set_state (current_thread, i386_FLOAT_STATE,
! (thread_state_t) & fp_regs,
! i386_FLOAT_STATE_COUNT);
MACH_CHECK_ERROR (ret);
}
}
--- 232,260 ----
(regcache, i,
(char *)&gp_regs + i386_darwin_thread_state_reg_offset[i]);
! ret = thread_set_state (current_thread, x86_THREAD_STATE32,
! (thread_state_t) &gp_regs,
! x86_THREAD_STATE32_COUNT);
MACH_CHECK_ERROR (ret);
}
if (regno == -1
|| (regno >= I386_ST0_REGNUM && regno < I386_SSE_NUM_REGS))
{
! x86_float_state32_t fp_regs;
! unsigned int fp_count = x86_FLOAT_STATE32_COUNT;
kern_return_t ret;
ret = thread_get_state
! (current_thread, x86_FLOAT_STATE32, (thread_state_t) & fp_regs,
&fp_count);
MACH_CHECK_ERROR (ret);
i387_collect_fxsave (regcache, regno, &fp_regs.__fpu_fcw);
! ret = thread_set_state (current_thread, x86_FLOAT_STATE32,
! (thread_state_t) &fp_regs,
! x86_FLOAT_STATE32_COUNT);
MACH_CHECK_ERROR (ret);
}
}