> +#define mfdcrx(rn) \
> + ({ \
> + unsigned long rval; \
> + asm volatile("mfdcrx %0,%1" : "=r"(rval) : "g"(rn)); \
> + rval; \
> + })
"g" is never correct on PowerPC, you want "r" here. You can write
this as a static inline btw, you only need the #define stuff when
there is an "i" constraint involved.
Segher