|
From: <sv...@va...> - 2005-11-01 13:44:02
|
Author: sewardj
Date: 2005-11-01 00:42:07 +0000 (Tue, 01 Nov 2005)
New Revision: 4972
Log:
Build fixes following recent coredump hackery.
Modified:
trunk/coregrind/m_coredump/coredump-ppc32-linux.c
Modified: trunk/coregrind/m_coredump/coredump-ppc32-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_coredump/coredump-ppc32-linux.c 2005-11-01 00:03:40=
UTC (rev 4971)
+++ trunk/coregrind/m_coredump/coredump-ppc32-linux.c 2005-11-01 00:42:07=
UTC (rev 4972)
@@ -49,8 +49,8 @@
regs->orig_gpr3 =3D arch->vex.guest_GPR3;
regs->ctr =3D arch->vex.guest_CTR;
regs->link =3D arch->vex.guest_LR;
- regs->xer =3D LibVEX_GuestPPC32_get_XER(&arch->vex);
- regs->ccr =3D LibVEX_GuestPPC32_get_CR(&arch->vex);
+ regs->xer =3D LibVEX_GuestPPC32_get_XER( &((ThreadArchState*)arch)->v=
ex );
+ regs->ccr =3D LibVEX_GuestPPC32_get_CR( &((ThreadArchState*)arch)->ve=
x );
regs->mq =3D 0;
regs->trap =3D 0;
regs->dar =3D 0; /* should be fault address? */
@@ -61,7 +61,9 @@
void ML_(fill_elffpregs_from_tst)(vki_elf_fpregset_t* fpu,
const ThreadArchState* arch)
{
-# define DO(n) fpu[n] =3D arch->vex.guest_FPR##n
+ /* The guest state has the FPR fields declared as ULongs, so need
+ to fish out the values without converting them. */
+# define DO(n) (*fpu)[n] =3D *(double*)(&arch->vex.guest_FPR##n)
DO(0); DO(1); DO(2); DO(3); DO(4); DO(5); DO(6); DO(7);
DO(8); DO(9); DO(10); DO(11); DO(12); DO(13); DO(14); DO(15);
DO(16); DO(17); DO(18); DO(19); DO(20); DO(21); DO(22); DO(23);
|