This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/33638] [4.3 regression]: wrong code with -fforce-addr
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Oct 2007 06:49:16 -0000
- Subject: [Bug rtl-optimization/33638] [4.3 regression]: wrong code with -fforce-addr
- References: <bug-33638-9562@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #16 from ubizjak at gmail dot com 2007-10-06 06:49 -------
(In reply to comment #14)
> The testcase works for me, that is, it produces the expected output good.out.
Uh, you have to un-comment the line 315 of the comunpack.f test. The testcase,
as attached, produces good code. Un-commenting line 315, you will get:
.L80:
movl $0x40000000, (%esp)
call powf
fstps -152(%ebp)
negl -136(%ebp)
fildl -136(%ebp)
fstps 4(%esp)
movl $0x41200000, (%esp)
call powf
Note that only one argument is loaded to the stack before first powf.
Without -fforce-address on un-commented testcase, we got:
.L80:
fildl -132(%ebp)
fstps 4(%esp)
movl $0x40000000, (%esp)
call powf
fstps -140(%ebp)
negl -128(%ebp)
fildl -128(%ebp)
fstps 4(%esp)
movl $0x41200000, (%esp)
call powf
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33638