http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48990
Paul Koning changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48990
--- Comment #6 from Paul Koning 2011-05-13
20:29:50 UTC ---
Created attachment 24243
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24243
debug dump from the pass before machdep
After some debugging, I see that the problem is that register
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48990
--- Comment #5 from Paul Koning 2011-05-13
18:20:42 UTC ---
Created attachment 24242
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24242
Assembly output from -mabi=n32 case, GCC 4.5.1
Here is the assembly file (with -dA so basic block boun
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48990
--- Comment #3 from Paul Koning 2011-05-13
18:14:00 UTC ---
The problem also shows up with -mabi=64, but it works correctly for -mabi=32
and -mabi=o64.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48990
--- Comment #4 from Paul Koning 2011-05-13
18:16:11 UTC ---
Re comment 2: Sorry, my typo, I incorrectly transcribed the .s file. It's a
beq, not a beql.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48990
--- Comment #2 from Andrew Pinski 2011-05-13
17:49:28 UTC ---
>That clobbers $4 (A0) in the no-branch case
No it does not as beql is a branch likely instruction and the delay slot only
happens when the branch is taken.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48990
--- Comment #1 from Paul Koning 2011-05-13
16:40:55 UTC ---
GCC 4.6.0 gets it wrong also, in exactly the same way.