diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4eebde2d456..d3f42de3dfc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2007-06-19 Joseph Myers + + * arm-tdep.c (arm_push_dummy_call): Correct padding of partial + registers for big-endian. + 2007-06-19 Markus Deuling * gdbarch.sh (TARGET_PRINT_INSN): Replace by gdbarch_print_insn. diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 2f15050a01f..575c59a2a41 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -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,