diff options
author | Steve Chamberlain <sac@gnu.org> | 1993-05-10 15:59:02 +0000 |
---|---|---|
committer | Steve Chamberlain <sac@gnu.org> | 1993-05-10 15:59:02 +0000 |
commit | b2358eb12c5bde86168813302ab889c1d5739817 (patch) | |
tree | f37f3733b1905fb66be88893b351121a9a5b19b2 | |
parent | 32642232ce1b2f9afc23a36b8ed9d2e0b20c1b1d (diff) | |
download | gcc-b2358eb12c5bde86168813302ab889c1d5739817.zip gcc-b2358eb12c5bde86168813302ab889c1d5739817.tar.gz gcc-b2358eb12c5bde86168813302ab889c1d5739817.tar.bz2 |
(movstrsi): Take alignment into account.
From-SVN: r4410
-rw-r--r-- | gcc/config/sh/sh.md | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index e7c52ee..2c8f661 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -1176,11 +1176,12 @@ { rtx src_ptr = copy_to_mode_reg(Pmode,XEXP(operands[1], 0)); rtx dst_ptr = copy_to_mode_reg(Pmode,XEXP(operands[0], 0)); - + int maxsize = GET_CODE (operands[2]) == CONST_INT + ? MAX (INTVAL (operands[2]), INTVAL (operands[3])) : 1; enum machine_mode mode = - (INTVAL(operands[3]) >=4) ? SImode : - (INTVAL(operands[3]) >=2) ? HImode : - QImode; + (maxsize >= 4) ? SImode : + (maxsize >= 2) ? HImode : + QImode; rtx tmpreg = gen_reg_rtx(mode); rtx increment = GEN_INT(GET_MODE_SIZE(mode)); |