Question from a mips new-bie
127 extern __inline__ void atomic_add(int i, atomic_t
129 unsigned long temp;
131 __asm__ __volatile__(
132 "1: ll %0, %1 #
133 " addu %0, %2
134 " sc %0, %1
135 " beqz %0, 1b
136 : "=&r" (temp), "=m" (v->counter)
137 : "Ir" (i), "m" (v->counter));
Now I look at the input operand v->counter
We want two things :
1. Hint the compiler that memory at (v->counter) is
2. Result of (C expression) should go into %xyz
So v->counter goes into %1, IOW ll from an int!
Does not make sense to me.
Why does it work, What am I missing?
I mean in general what is the expression for a m
constraint ptr (because I want ptr to be in regiser)
or *ptr (because I wanna tell compiler that *ptr is
what gets changed)
I hope you include me in reply as I am not subscribed
to this list. Is there anyway to check this mailing
Thanks and regards
Do you Yahoo!?
Yahoo! Finance: Get your refund fast by filing online.