|
From: <sv...@va...> - 2006-12-08 21:29:50
|
Author: sewardj
Date: 2006-12-08 21:29:46 +0000 (Fri, 08 Dec 2006)
New Revision: 6386
Log:
Get rid of the use of explicit register variables in the ppc32-linux
magic macros.
Modified:
trunk/include/valgrind.h
Modified: trunk/include/valgrind.h
=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/include/valgrind.h 2006-12-07 15:34:04 UTC (rev 6385)
+++ trunk/include/valgrind.h 2006-12-08 21:29:46 UTC (rev 6386)
@@ -299,8 +299,8 @@
_zzq_arg1, _zzq_arg2, _zzq_arg3, _zzq_arg4, _zzq_arg5) \
\
{ unsigned int _zzq_args[6]; \
- register unsigned int _zzq_result __asm__("r3"); \
- register unsigned int* _zzq_ptr __asm__("r4"); \
+ unsigned int _zzq_result; \
+ unsigned int* _zzq_ptr; \
_zzq_args[0] =3D (unsigned int)(_zzq_request); \
_zzq_args[1] =3D (unsigned int)(_zzq_arg1); \
_zzq_args[2] =3D (unsigned int)(_zzq_arg2); \
@@ -308,24 +308,28 @@
_zzq_args[4] =3D (unsigned int)(_zzq_arg4); \
_zzq_args[5] =3D (unsigned int)(_zzq_arg5); \
_zzq_ptr =3D _zzq_args; \
- __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
+ __asm__ volatile("mr 3,%1\n\t" /*default*/ \
+ "mr 4,%2\n\t" /*ptr*/ \
+ __SPECIAL_INSTRUCTION_PREAMBLE \
/* %R3 =3D client_request ( %R4 ) */ \
- "or 1,1,1" \
- : "=3Dr" (_zzq_result) \
- : "0" (_zzq_default), "r" (_zzq_ptr) \
- : "cc", "memory"); \
+ "or 1,1,1\n\t" \
+ "mr %0,3" /*result*/ \
+ : "=3Db" (_zzq_result) \
+ : "b" (_zzq_default), "b" (_zzq_ptr) \
+ : "cc", "memory", "r3", "r4"); \
_zzq_rlval =3D _zzq_result; \
}
=20
#define VALGRIND_GET_NR_CONTEXT(_zzq_rlval) \
{ volatile OrigFn* _zzq_orig =3D &(_zzq_rlval); \
- register unsigned int __addr __asm__("r3"); \
+ unsigned int __addr; \
__asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE \
/* %R3 =3D guest_NRADDR */ \
- "or 2,2,2" \
- : "=3Dr" (__addr) \
+ "or 2,2,2\n\t" \
+ "mr %0,3" \
+ : "=3Db" (__addr) \
: \
- : "cc", "memory" \
+ : "cc", "memory", "r3" \
); \
_zzq_orig->nraddr =3D __addr; \
}
|