[Bug target/43675] [m68k] Wrong code due to missing sign extension

2010-04-07 Thread rguenth at gcc dot gnu dot org
--- Comment #1 from rguenth at gcc dot gnu dot org 2010-04-07 15:03 --- *** Bug 43676 has been marked as a duplicate of this bug. *** -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43675

[Bug target/43675] [m68k] Wrong code due to missing sign extension

2010-04-07 Thread maxim at codesourcery dot com
--- Comment #2 from maxim at codesourcery dot com 2010-04-07 15:24 --- The problem is in 68k_extendhisi2 pattern, second alternative: (define_insn *68k_extendhisi2 [(set (match_operand:SI 0 nonimmediate_operand =*d,a) (sign_extend:SI (match_operand:HI 1

[Bug target/43675] [m68k] Wrong code due to missing sign extension

2010-04-07 Thread nizze86 at hotmail dot com
--- Comment #3 from nizze86 at hotmail dot com 2010-04-07 15:42 --- I am sorry, it appears i am mistaken, since the dest is an address reg, movea is used which apparently *does* sign extend word size source to 32 bits while a move to a d reg does not. Again sorry for the noise. --

[Bug target/43675] [m68k] Wrong code due to missing sign extension

2010-04-07 Thread maxim at codesourcery dot com
--- Comment #4 from maxim at codesourcery dot com 2010-04-07 16:04 --- Hm, move.w preserving upper bits seems to apply only if destination is a data register then. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43675

[Bug target/43675] [m68k] Wrong code due to missing sign extension

2010-04-07 Thread mkuvyrkov at gcc dot gnu dot org
--- Comment #5 from mkuvyrkov at gcc dot gnu dot org 2010-04-07 16:06 --- Closing the PR. -- mkuvyrkov at gcc dot gnu dot org changed: What|Removed |Added

[Bug target/43675] [m68k] Wrong code due to missing sign extension

2010-04-07 Thread schwab at linux-m68k dot org
--- Comment #6 from schwab at linux-m68k dot org 2010-04-07 16:15 --- MOVEA always sign extends. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43675