http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
Michael Matz changed:
What|Removed |Added
CC||matz at gcc dot gnu.org
--- Comment #13 fr
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 #11 from Mikael Pettersson 2011-05-17
16:58:02 UTC ---
(In reply to comment #10)
> And the compile (and the compile in the "rc" script here) is indeed specifying
> -mcmodel=kernel in the flags.
-mcmodel=kernel isn't enough, you're st
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 #8 from Jakub Jelinek 2011-05-17
14:01:51 UTC ---
It is of course fine if an interrupt uses the same stack, after all, user
interrupts do that too. But the ABI says that 128 bytes below the %rsp are
reserved, so the interrupt code fi
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
Jakub Jelinek changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
CC|
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 #4 from Andrew Pinski 2011-05-16
23:09:13 UTC ---
Well x86_64 ABI has a red zone which allows for these references to happen if
they are under 128 bytes.
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
13 matches
Mail list logo