On Thu, Aug 4, 2011 at 1:10 PM, Andrew Haley <a...@redhat.com> wrote: > On 08/04/2011 10:52 AM, Richard Guenther wrote: >> On Thu, Aug 4, 2011 at 11:50 AM, Andrew Haley <a...@redhat.com> wrote: >>> On 08/04/2011 01:19 AM, Hans-Peter Nilsson wrote: >>> >>>> To make sure, it'd be nice if someone could perhaps grep an >>>> entire GNU/Linux-or-other distribution including the kernel for >>>> uses of asm-declared *local* registers that don't directly feed >>>> into asms and not being the stack-pointer? Or can we get away >>>> with just saying that local asm registers haven't had any other >>>> documented meaning for the last seven years? >>> >>> It's the sort of thing that gets done in threaded interpreters, >>> where you really need to keep a few pointers in registers and >>> the interpreter itself is a very long function. gcc has always >>> done a dreadful job of register allocation in such cases. >> >> Sure, but what I have seen people use global register variables >> for this (which means they get taken away from the register allocator). > > Not always though, and the x86 has so few registers that using a > global register variable is very problematic. I suppose you could > compile the threaded interpreter in a file of its own, but I'm not > sure that has quite the same semantics as local register variables. > > The problem is that people who care about this stuff very much don't > always read gcc@gcc.gnu.org so won't be heard. But in their own world > (LISP, Forth) nice features like register variables and labels as > values have led to gcc being the preferred compiler for this kind of > work.
Well, the uses won't break with the idea - they would simply work like if they were not using local register variables. Richard. > Andrew. >