[committed/Darwin]: fix fetch of amd64 fpu registers

Tristan Gingold gingold@adacore.com
Thu Oct 22 12:43:00 GMT 2009


Hi,

this patch fixes a typo in i386-darwin-nat.c so that fpu registers are  
correctly supplied in amd64 case.

Tristan.

2009-10-22  Tristan Gingold  <gingold@adacore.com>

	* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Use
	amd64_supply_fxsave for amd64.  Fix the offset.
	(i386_darwin_store_inferior_registers): Use amd64_collect_fxsave
	for amd64.


*** i386-darwin-nat.c	3 Jul 2009 12:06:36 -0000	1.7
--- i386-darwin-nat.c	22 Oct 2009 12:41:32 -0000
***************
*** 40,45 ****
--- 40,46 ----

   #ifdef BFD64
   #include "amd64-nat.h"
+ #include "amd64-tdep.h"
   #include "amd64-darwin-tdep.h"
   #endif

***************
*** 89,95 ****
   	      printf_unfiltered (_("Error calling thread_get_state for  
float registers for thread 0x%ulx"), current_thread);
   	      MACH_CHECK_ERROR (ret);
   	    }
!           i387_supply_fxsave (regcache, -1, &fp_regs.ufs.fs64);
             fetched++;
           }
       }
--- 90,96 ----
   	      printf_unfiltered (_("Error calling thread_get_state for  
float registers for thread 0x%ulx"), current_thread);
   	      MACH_CHECK_ERROR (ret);
   	    }
!           amd64_supply_fxsave (regcache, -1,  
&fp_regs.ufs.fs64.__fpu_fcw);
             fetched++;
           }
       }
***************
*** 194,200 ****
             gdb_assert (fp_regs.fsh.flavor == x86_FLOAT_STATE64);
             gdb_assert (fp_regs.fsh.count == x86_FLOAT_STATE64_COUNT);

! 	  i387_collect_fxsave (regcache, regno, &fp_regs.ufs.fs64.__fpu_fcw);

   	  ret = thread_set_state (current_thread, x86_FLOAT_STATE,
   				  (thread_state_t) & fp_regs,
--- 195,201 ----
             gdb_assert (fp_regs.fsh.flavor == x86_FLOAT_STATE64);
             gdb_assert (fp_regs.fsh.count == x86_FLOAT_STATE64_COUNT);

! 	  amd64_collect_fxsave (regcache, regno,  
&fp_regs.ufs.fs64.__fpu_fcw);

   	  ret = thread_set_state (current_thread, x86_FLOAT_STATE,
   				  (thread_state_t) & fp_regs,



More information about the Gdb-patches mailing list