|
From: <sv...@va...> - 2005-08-24 22:58:41
|
Author: dirk
Date: 2005-08-24 23:58:39 +0100 (Wed, 24 Aug 2005)
New Revision: 4496
Log:
svn merge r4460:
- Fix bug causing thread slots not to get reused
- yet more syscalls on ppc32
Modified:
branches/VALGRIND_3_0_BRANCH/coregrind/m_syswrap/syswrap-ppc32-linux.c
Modified: branches/VALGRIND_3_0_BRANCH/coregrind/m_syswrap/syswrap-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
--- branches/VALGRIND_3_0_BRANCH/coregrind/m_syswrap/syswrap-ppc32-linux.=
c 2005-08-24 22:57:57 UTC (rev 4495)
+++ branches/VALGRIND_3_0_BRANCH/coregrind/m_syswrap/syswrap-ppc32-linux.=
c 2005-08-24 22:58:39 UTC (rev 4496)
@@ -184,15 +184,16 @@
reallocation. We need to make sure we don't touch the stack
between marking it Empty and exiting. Hence the
assembler. */
+ { UInt vgts_empty =3D (UInt)VgTs_Empty;
+ asm volatile (
+ "stw %1,%0\n\t" /* set tst->status =3D VgTs_Empty */
+ "li 0,%2\n\t" /* set r0 =3D __NR_exit */
+ "lwz 3,%3\n\t" /* set r3 =3D tst->os_state.exitcode =
*/
+ "sc\n\t" /* exit(tst->os_state.exitcode) */
+ : "=3Dm" (tst->status)
+ : "r" (vgts_empty), "n" (__NR_exit), "m" (tst->os_state.exitco=
de));
+ }
=20
- asm volatile (
- "stw %1,%0\n\t" /* set tst->status =3D VgTs_Empty */
- "li 0,%2\n\t" /* set r0 =3D __NR_exit */
- "lwz 3,%3\n\t" /* set r3 =3D tst->os_state.exitcode */
- "sc\n\t" /* exit(tst->os_state.exitcode) */
- : "=3Dm" (tst->status)
- : "n" (VgTs_Empty), "n" (__NR_exit), "m" (tst->os_state.exitcode=
));
-
VG_(core_panic)("Thread exit failed?\n");
}
=20
@@ -2171,7 +2172,7 @@
=20
GENXY(__NR_rt_sigprocmask, sys_rt_sigprocmask), // 174
//.. GENXY(__NR_rt_sigpending, sys_rt_sigpending), // 175
-//.. GENXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait), // 176
+ GENXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait), // 176
//.. GENXY(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo), // 177
//.. GENX_(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 178
//..=20
|