Fix stack unwinding on ppc.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5022
This commit is contained in:
Julian Seward 2005-11-05 14:48:03 +00:00
parent 148b92350f
commit f626bd8000

View File

@ -61,12 +61,19 @@
"=r" (sp),\
"=r" (fp));
#elif defined(VGP_ppc32_linux)
# define GET_REAL_PC_SP_AND_FP(pc, sp, fp) \
asm("mr %0,1;" \
"mr %1,1;" \
: "=r" (pc),\
"=r" (sp),\
"=r" (fp));
# define GET_REAL_PC_SP_AND_FP(pc, sp, fp) \
asm("mflr 0;" /* r0 = lr */ \
"bl m_libcassert_get_ip;" /* lr = pc */ \
"m_libcassert_get_ip:\n" \
"mflr %0;" \
"mtlr 0;" /* restore lr */ \
"mr %1,1;" \
"mr %2,1;" \
: "=r" (pc), \
"=r" (sp), \
"=r" (fp) \
: /* reads none */ \
: "r0" /* trashed */ );
#else
# error Unknown platform
#endif