[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints
amylaar at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Jul 6 19:30:00 GMT 2006
------- Comment #3 from amylaar at gcc dot gnu dot org 2006-07-06 19:30 -------
When I disable the offending code (by altering add_cost[DImode] at the right
moment), I get the right result for little endian. However, compiling for
big endian gives wrong code:
_expand64:
mov #0,r5
mov r4,r0
rts
mov r5,r1
.size _expand64, .-_expand64
.ident "GCC: (GNU) 4.2.0 20060620 (experimental)"
3.4.0 was sane:
_expand64:
mov r4,r5
mov #0,r4
mov r4,r0
rts
mov r5,r1
.size _expand64, .-_expand64
.ident "GCC: (GNU) 3.4.0 20040113 (experimental)"
--
amylaar at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |joern dot rennecke at st dot
| |com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28283
More information about the Gcc-bugs
mailing list