From acbe5496b3160137b72217c7afb80f245dc70699 Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Fri, 10 Aug 2007 17:16:57 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/lower-subreg.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) 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; -- 2.30.2