This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/9760] [arm] Combine cannot do its job because immediate operand is used instead of register
- From: "ramana dot r at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Mar 2009 18:45:29 -0000
- Subject: [Bug target/9760] [arm] Combine cannot do its job because immediate operand is used instead of register
- References: <bug-9760-5458@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from ramana dot r at gmail dot com 2009-03-12 18:45 -------
With Mainline today gcc produces :
stmfd sp!, {r4, lr}
mov r1, r0, lsr #24
mov r4, r0
mov r0, #8
bl func
mov r1, r4, lsr #16
and r1, r1, #255
mov r0, #8
bl func
mov r1, r4, lsr #8
and r1, r1, #255
mov r0, #8
ldmfd sp!, {r4, lr}
b func
The problem still exists. This can't be a problem with the combiner because the
combine would stop at function call boundaries.
--
ramana dot r at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rearnsha at arm dot com,
| |ramana dot r at gmail dot
| |com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9760