http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
--- Comment #12 from Lee Merrill 2011-05-17
18:42:47 UTC ---
(In reply to comment #11)
> (In reply to comment #10)
> > And the compile (and the compile in the "rc" script here) is indeed
> > specifying
> > -mcmodel=kernel in the flags.
>
> -mcm
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
--- Comment #9 from Lee Merrill 2011-05-17
14:47:34 UTC ---
(In reply to comment #8)
> ... the ABI says that 128 bytes below the %rsp are
> reserved, so the interrupt code first needs to subtract 128 from %rsp before
> calling any functions and m
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
--- Comment #10 from Lee Merrill 2011-05-17
14:49:33 UTC ---
And the compile (and the compile in the "rc" script here) is indeed specifying
-mcmodel=kernel in the flags.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
--- Comment #7 from Lee Merrill 2011-05-17
13:42:23 UTC ---
I think what is happening in the compiler BTW is that a "sub $XX, %rsp" is
dropping out, perhaps as an optimization. If for example, you comment out the
"#define inline" line in the test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
--- Comment #6 from Lee Merrill 2011-05-17
13:29:56 UTC ---
(In reply to comment #5)
> Yeah, 128 bytes below %rsp can be freely used on x86_64, interrupts must not
> clobber those.
I should have mentioned that this is kernel driver code, so then
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
--- Comment #3 from Lee Merrill 2011-05-16
22:51:33 UTC ---
A disassembly snippet to show the problem:
:
0: 55 push %rbp
1: 48 89 e5mov%rsp,%rbp
# Note that these statements r
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
--- Comment #2 from Lee Merrill 2011-05-16
22:49:14 UTC ---
Created attachment 24258
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24258
The output of running rc with "-v -save-temps" added.
This is the output from running the "rc" script,
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
--- Comment #1 from Lee Merrill 2011-05-16
22:45:58 UTC ---
Created attachment 24257
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24257
The source file which generates the problem
This file, when compiled via the attached "rc" script, wil
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
Summary: always_inline causes references below the current
stack pointer
Product: gcc
Version: 4.3.4
Status: UNCONFIRMED
Severity: normal
Priority: P3
Com