This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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);
          }
      }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]