* sh-tdep.c (sh3e_sh4_store_return_value): Correctly store
authorCorinna Vinschen <corinna@vinschen.de>
Thu, 3 Jun 2004 11:46:34 +0000 (11:46 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Thu, 3 Jun 2004 11:46:34 +0000 (11:46 +0000)
double values in little endian mode.

gdb/ChangeLog
gdb/sh-tdep.c

index e1b2b2a..6e380db 100644 (file)
@@ -1,3 +1,8 @@
+2004-06-03  Corinna Vinschen  <vinschen@redhat.com>
+
+       * sh-tdep.c (sh3e_sh4_store_return_value): Correctly store
+       double values in little endian mode.
+
 2004-06-02  Albert Chin-A-Young  <china@thewrittenword.com>
 
        Committed by Andrew Cagney.
index 45833fc..d8b29c9 100644 (file)
@@ -1147,7 +1147,11 @@ sh3e_sh4_store_return_value (struct type *type, struct regcache *regcache,
       int len = TYPE_LENGTH (type);
       int i, regnum = FP0_REGNUM;
       for (i = 0; i < len; i += 4)
-       regcache_raw_write (regcache, regnum++, (char *) valbuf + i);
+       if (TARGET_BYTE_ORDER == BFD_ENDIAN_LITTLE)
+         regcache_raw_write (regcache, regnum++,
+                             (char *) valbuf + len - 4 - i);
+       else
+         regcache_raw_write (regcache, regnum++, (char *) valbuf + i);
     }
   else
     sh_default_store_return_value (type, regcache, valbuf);