diff options
author | Andreas Schwab <schwab@suse.de> | 2005-07-24 19:15:21 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@gcc.gnu.org> | 2005-07-24 19:15:21 +0000 |
commit | 1b8452d093bd8c1642cda1c3369b9f3d7009fe6f (patch) | |
tree | 181d25c76e8df394815b547afa607f306f4d38d8 | |
parent | 2b4029550fba3d7d2c413e285eab58c3a5e40f55 (diff) | |
download | gcc-1b8452d093bd8c1642cda1c3369b9f3d7009fe6f.zip gcc-1b8452d093bd8c1642cda1c3369b9f3d7009fe6f.tar.gz gcc-1b8452d093bd8c1642cda1c3369b9f3d7009fe6f.tar.bz2 |
m68k.md ("extendqidi2"): When source is an address register use a word move.
* config/m68k/m68k.md ("extendqidi2"): When source is an address
register use a word move. Correct operand of ext.w in 68000 code.
From-SVN: r102337
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.md | 14 |
2 files changed, 17 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 77d0723..d86dc82 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-07-24 Andreas Schwab <schwab@suse.de> + + * config/m68k/m68k.md ("extendqidi2"): When source is an address + register use a word move. Correct operand of ext.w in 68000 code. + 2005-07-23 Mark Mitchell <mark@codesourcery.com> * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index 5c65b1c..1a4df3b 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -1299,9 +1299,19 @@ if (TARGET_CFV4) return "mvs%.b %1,%2\;smi %0\;extb%.l %0"; if (TARGET_68020 || TARGET_COLDFIRE) - return "move%.b %1,%2\;extb%.l %2\;smi %0\;extb%.l %0"; + { + if (ADDRESS_REG_P (operands[1])) + return "move%.w %1,%2\;extb%.l %2\;smi %0\;extb%.l %0"; + else + return "move%.b %1,%2\;extb%.l %2\;smi %0\;extb%.l %0"; + } else - return "move%.b %1,%2\;ext%.w %0\;ext%.l %2\;move%.l %2,%0\;smi %0"; + { + if (ADDRESS_REG_P (operands[1])) + return "move%.w %1,%2\;ext%.w %2\;ext%.l %2\;move%.l %2,%0\;smi %0"; + else + return "move%.b %1,%2\;ext%.w %2\;ext%.l %2\;move%.l %2,%0\;smi %0"; + } }) (define_insn "extendhidi2" |