Hi Folks, Sorry for my earlier mail, which did not have the current fuction that was giving the problem. here it is __inline__ int casp(void * *pval, void * old, void * new) { /** * somehow I have to decide the size of (void *) * during the runtime. */ if (sizeof(void *)==sizeof(int)) return cas32((int*)pval, (int)old, (int)new); else return cas64((long long *)pval, (long long)old, (long long)new); } error : cc -O -Wall -I. -D__SMP__ -c -o atomic.o atomic.c atomic.c: In function `casp': atomic.c:28: warning: cast from pointer to integer of different size atomic.c:28: warning: cast from pointer to integer of different size atomic.c: In function `cas32': atomic.c:7: can't find a register in class `AREG' while reloading `asm' make: *** [atomic.o] Error 1 thank you, with regards Shiva _______________________________ Do you Yahoo!? Express yourself with Y! Messenger! Free. Download now. http://messenger.yahoo.com