On Wed, 30 Jun 2010, David VomLehn wrote: > > How about something like: > > > > { > > long x; > > ... > > asm("move %0,$29":"=g"(x)); > > ... > > } > > Depending on the version of gcc you are using, you should also be able > to use __builtin_frame_address(), though I haven't tried this in the kernel. It works just fine with a zero argument; the usual restrictions apply to non-zero arguments. Or alternatively an explicit register variable will do as suggested by Ralf. Both approaches result in a bit better code than an explicit move; the former is portable to other platforms even. :) Maciej