diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb3578e5430..11c3060e1af 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-01-30 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0. + Copy operands[1] to pseudo for simplify_gen_subreg. + 2004-01-30 Kazu Hirata * gcse.c (bypass_block): Fix a typo in the previous check-in diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 4969cd14d7d..c2daec61e32 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -3426,7 +3426,6 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode) adjust_address (operands[1], SImode, 4)); return; } -#if 0 else if (mode == DImode && TARGET_POWERPC64 && GET_CODE (operands[0]) == REG && GET_CODE (operands[1]) == MEM && optimize > 0 @@ -3462,11 +3461,11 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode) gen_rtx_LSHIFTRT (DImode, operands[1], GEN_INT (32))); emit_move_insn (adjust_address (operands[0], SImode, 0), simplify_gen_subreg (SImode, reg, DImode, 0)); + emit_move_insn (reg, operands[1]); emit_move_insn (adjust_address (operands[0], SImode, 4), - simplify_gen_subreg (SImode, operands[1], DImode, 0)); + simplify_gen_subreg (SImode, reg, DImode, 0)); return; } -#endif if (!no_new_pseudos) {