* arm-tdep.c (arm_push_dummy_call): Correct padding of partial
authorJoseph Myers <joseph@codesourcery.com>
Tue, 19 Jun 2007 22:44:13 +0000 (22:44 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 19 Jun 2007 22:44:13 +0000 (22:44 +0000)
registers for big-endian.

gdb/ChangeLog
gdb/arm-tdep.c

index 4eebde2d456ba1faf2c8369499efc3ff978f8a1c..d3f42de3dfcea61f61390a4378f34ebd0bd80ec0 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-19  Joseph Myers  <joseph@codesourcery.com>
+
+       * arm-tdep.c (arm_push_dummy_call): Correct padding of partial
+       registers for big-endian.
+
 2007-06-19  Markus Deuling  <deuling@de.ibm.com>
 
        * gdbarch.sh (TARGET_PRINT_INSN): Replace by gdbarch_print_insn.
index 2f15050a01fc8ae005148e39eace2c900e32f6f9..575c59a2a411bfc8d46a8df48e62f0fe20f7e821 100644 (file)
@@ -1289,6 +1289,8 @@ arm_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
              /* The argument is being passed in a general purpose
                 register.  */
              CORE_ADDR regval = extract_unsigned_integer (val, partial_len);
+             if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
+               regval <<= (INT_REGISTER_SIZE - partial_len) * 8;
              if (arm_debug)
                fprintf_unfiltered (gdb_stdlog, "arg %d in %s = 0x%s\n",
                                    argnum,