diff options
| author | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-27 22:00:55 +0000 |
|---|---|---|
| committer | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-27 22:00:55 +0000 |
| commit | de68370ea4aff2d1c558c2802bbb77eeba0ce87d (patch) | |
| tree | 59750df8f259badf1fa235735bc52cb09a904c5e | |
| parent | 48cc3b65c2e9aa0220748ad2a83d6a5e4b8067ac (diff) | |
| download | ppe42-gcc-de68370ea4aff2d1c558c2802bbb77eeba0ce87d.tar.gz ppe42-gcc-de68370ea4aff2d1c558c2802bbb77eeba0ce87d.zip | |
* config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
slow, unaligned loads and stores while debugging. Fix formatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76752 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/rs6000/rs6000.c | 29 |
2 files changed, 20 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a56d962854c..e121b9b777e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2004-01-27 David Edelsohn <edelsohn@gnu.org> + * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting + slow, unaligned loads and stores while debugging. Fix formatting. + +2004-01-27 David Edelsohn <edelsohn@gnu.org> + * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead of computing wmode. (restore_stack_nonlocal): Same. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 10a791e8dee..4969cd14d7d 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -3426,6 +3426,7 @@ 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 @@ -3435,16 +3436,15 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode) : MEM_ALIGN (operands[1])) && !no_new_pseudos) { - rtx mem; rtx reg = gen_reg_rtx (SImode); - mem = adjust_address (operands[1], SImode, 0); - emit_insn (gen_rtx_SET (SImode, reg, mem)); - reg = simplify_gen_subreg (DImode, reg, SImode, 0); + emit_insn (gen_rtx_SET (SImode, reg, + adjust_address (operands[1], SImode, 0))); + reg = simplify_gen_subreg (DImode, reg, SImode, 0); emit_insn (gen_insvdi (operands[0], GEN_INT (32), const0_rtx, reg)); reg = gen_reg_rtx (SImode); - mem = adjust_address (operands[1], SImode, 4); - emit_insn (gen_rtx_SET (SImode, reg, mem)); - reg = simplify_gen_subreg (DImode, reg, SImode, 0); + emit_insn (gen_rtx_SET (SImode, reg, + adjust_address (operands[1], SImode, 4))); + reg = simplify_gen_subreg (DImode, reg, SImode, 0); emit_insn (gen_insvdi (operands[0], GEN_INT (32), GEN_INT (32), reg)); return; } @@ -3457,15 +3457,16 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode) : MEM_ALIGN (operands[0])) && !no_new_pseudos) { - rtx mem; rtx reg = gen_reg_rtx (DImode); - emit_move_insn (reg, gen_rtx_LSHIFTRT (DImode, operands[1], GEN_INT (32))); - mem = adjust_address (operands[0], SImode, 0); - emit_move_insn (mem, simplify_gen_subreg (SImode, reg, DImode, 0)); - mem = adjust_address (operands[0], SImode, 4); - emit_move_insn (mem, simplify_gen_subreg (SImode, operands[1], DImode, 0)); + emit_move_insn (reg, + 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 (adjust_address (operands[0], SImode, 4), + simplify_gen_subreg (SImode, operands[1], DImode, 0)); return; } +#endif if (!no_new_pseudos) { @@ -4500,7 +4501,7 @@ function_arg_pass_by_reference (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED, } static void -rs6000_move_block_from_reg(int regno, rtx x, int nregs) +rs6000_move_block_from_reg (int regno, rtx x, int nregs) { int i; enum machine_mode reg_mode = TARGET_32BIT ? SImode : DImode; |

