From: Andreas Krebbel Date: Fri, 10 Aug 2007 17:16:57 +0000 (+0000) Subject: lower-subreg.c (resolve_shift_zext): Don't adjust src_reg_num for wordmode operands. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=acbe5496b3160137b72217c7afb80f245dc70699;p=gcc.git lower-subreg.c (resolve_shift_zext): Don't adjust src_reg_num for wordmode operands. 2007-08-10 Andreas Krebbel * lower-subreg.c (resolve_shift_zext): Don't adjust src_reg_num for wordmode operands. From-SVN: r127342 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 958765cbfdf..f3b16cd198b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-08-10 Andreas Krebbel + + * lower-subreg.c (resolve_shift_zext): Don't adjust + src_reg_num for wordmode operands. + 2007-08-10 Sandra Loosemore David Ung diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c index c61a8b7759e..4354640a701 100644 --- a/gcc/lower-subreg.c +++ b/gcc/lower-subreg.c @@ -1043,11 +1043,12 @@ resolve_shift_zext (rtx insn) endian machines this is register 0. */ src_reg_num = GET_CODE (op) == LSHIFTRT ? 1 : 0; - if (WORDS_BIG_ENDIAN) + if (WORDS_BIG_ENDIAN + && GET_MODE_SIZE (GET_MODE (op_operand)) > UNITS_PER_WORD) src_reg_num = 1 - src_reg_num; if (GET_CODE (op) == ZERO_EXTEND) - dest_reg_num = src_reg_num; + dest_reg_num = WORDS_BIG_ENDIAN ? 1 : 0; else dest_reg_num = 1 - src_reg_num;