]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 17 Nov 2013 23:37:20 +0000 (23:37 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 17 Nov 2013 23:37:20 +0000 (23:37 +0000)
sdmode_stack_slot also in little-endian mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204927 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index d4e0260450f7edfbe09daf244d2064d20796db3d..725f66d34c46543c487164ce4cc178fe70d0858a 100644 (file)
@@ -1,3 +1,8 @@
+2013-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
+       sdmode_stack_slot also in little-endian mode.
+
 2013-11-17  Jan Hubicka  <jh@suse.cz>
 
        * doc/md.texi (setmem, movstr): Update documentation.
index d042fad044aaeb76651dc8989c6807d8c5bf9f0f..fa9d56929a620226c3699089fb4357e36d40c98b 100644 (file)
@@ -8188,7 +8188,9 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode)
        }
       else if (INT_REGNO_P (REGNO (operands[1])))
        {
-         rtx mem = adjust_address_nv (operands[0], mode, 4);
+         rtx mem = operands[0];
+         if (BYTES_BIG_ENDIAN)
+           mem = adjust_address_nv (mem, mode, 4);
          mem = eliminate_regs (mem, VOIDmode, NULL_RTX);
          emit_insn (gen_movsd_hardfloat (mem, operands[1]));
        }
@@ -8211,7 +8213,9 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode)
        }
       else if (INT_REGNO_P (REGNO (operands[0])))
        {
-         rtx mem = adjust_address_nv (operands[1], mode, 4);
+         rtx mem = operands[1];
+         if (BYTES_BIG_ENDIAN)
+           mem = adjust_address_nv (mem, mode, 4);
          mem = eliminate_regs (mem, VOIDmode, NULL_RTX);
          emit_insn (gen_movsd_hardfloat (operands[0], mem));
        }