Linux MIPS Architecture development
 help / color / mirror / Atom feed
* question about memory constraint in atomic_add
@ 2004-02-14 15:11 Indigodfw
  2004-02-18 13:45 ` Ralf Baechle
  0 siblings, 1 reply; 4+ messages in thread
From: Indigodfw @ 2004-02-14 15:11 UTC (permalink / raw)
  To: linux-mips

Hello Gurus

Question from a mips new-bie

127 extern __inline__ void atomic_add(int i, atomic_t
* v)
128 {
129         unsigned long temp;
130 
131         __asm__ __volatile__(
132                 "1:   ll      %0, %1      #
atomic_add\n"
133                 "     addu    %0, %2              
   \n"
134                 "     sc      %0, %1              
   \n"
135                 "     beqz    %0, 1b              
   \n"
136                 : "=&r" (temp), "=m" (v->counter)
137                 : "Ir" (i), "m" (v->counter));
138 }

Now I look at the input operand  v->counter
We want two things :

1. Hint the compiler that memory at (v->counter) is
modified.

2. Result of (C expression) should go into %xyz
register 
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
list online

Thanks and regards



__________________________________
Do you Yahoo!?
Yahoo! Finance: Get your refund fast by filing online.
http://taxes.yahoo.com/filing.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-02-19 18:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-02-14 15:11 question about memory constraint in atomic_add Indigodfw
2004-02-18 13:45 ` Ralf Baechle
2004-02-19  0:11   ` Indigodfw
2004-02-19 18:18     ` Daniel Jacobowitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox