| To: | Andi Kleen <ak@suse.de> |
|---|---|
| Subject: | Re: GCC-3.4 reorders asm() with -O2 |
| From: | Ralf Baechle <ralf@linux-mips.org> |
| Date: | Mon, 26 Jan 2004 09:36:47 +0100 |
| Cc: | jh@suse.cz, echristo@redhat.com, hubicka@ucw.cz, eager@mvista.com, gcc@gcc.gnu.org, linux-mips@linux-mips.org |
| In-reply-to: | <20040125202807.2d786115.ak@suse.de> |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| References: | <4011C72C.613E25@mvista.com> <20040124011955.GA12040@nevyn.them.org> <20040124012303.GJ32288@atrey.karlin.mff.cuni.cz> <20040124050849.GB14951@nevyn.them.org> <1075009125.3649.0.camel@dzur.sfbay.redhat.com> <20040125100514.GA8810@kam.mff.cuni.cz> <20040125164758.79373419.ak@suse.de> <20040125170351.GA10938@nevyn.them.org> <20040125182643.GA25020@linux-mips.org> <20040125202807.2d786115.ak@suse.de> |
| Resent-date: | Mon, 26 Jan 2004 13:10:46 +0100 |
| Resent-from: | ralf@linux-mips.org |
| Resent-message-id: | <200401261210.i0QCAkAB012174@fluff.linux-mips.net> |
| Resent-to: | linux-mips@linux-mips.org |
| Sender: | linux-mips-bounce@linux-mips.org |
| User-agent: | Mutt/1.4.1i |
On Sun, Jan 25, 2004 at 08:28:07PM +0100, Andi Kleen wrote: > > > It is. Ralf already knows about the problem, I think - we leave > > > markers outside of functions which define an entry point, save some > > > additional registers to the stack, and try to fall through to the > > > following function. If the function gets emitted elsewhere, obviously, > > > we've lost :) > > > > > > [This is save_static_function...] > > > > I only recently fixed the problem with the save_static() inline function > > which of course was fragile, speculating on the compiler doing the > > right thing ... I'll cook up a fix ... > > You can always use __attribute__((noinline)) Not in this particular case. save_static's purpose was saving all caller saved registers into the stack so they can be accessed via the usual struct pt_regs pointer and to make that work it to be inline before any change of these registers. That was a small optimization but it also was fragile so I removed that. save_static_function was meant to be used immediately preceeding a syscall's C function and served the same purpose. As the implementation ``knew'' gcc wasn't going to move around the code just falling though worked fine but again that was fragile. Ralf |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: GCC-3.4 reorders asm() with -O2, Andi Kleen |
|---|---|
| Next by Date: | [patch] pg-r4k.c bugs for R4600 rev.2.0, Maciej W. Rozycki |
| Previous by Thread: | Re: GCC-3.4 reorders asm() with -O2, Andi Kleen |
| Next by Thread: | [patch] pg-r4k.c bugs for R4k systems with a secondary cache, Maciej W. Rozycki |
| Indexes: | [Date] [Thread] [Top] [All Lists] |