From: Tom Tromey Date: Wed, 20 Sep 2023 13:38:54 +0000 (-0600) Subject: Fix calls with small integers on ARM X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8942e52e2511cedc3fc1ce574e526ce4e6b7a6ef;p=binutils-gdb.git Fix calls with small integers on ARM On big-endian ARM, an inferior call with a small integer will pass the wrong value. This patch fixes the problem. Because the code here works using scalar values, and not just bytes, left-shifting is unnecessary. Approved-By: Luis Machado --- diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index a0ad1fb7a82..97d7c5140d2 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -4824,9 +4824,6 @@ arm_push_dummy_call (struct gdbarch *gdbarch, struct value *function, { /* The argument is being passed in a general purpose register. */ - if (byte_order == BFD_ENDIAN_BIG) - regval <<= (ARM_INT_REGISTER_SIZE - partial_len) * 8; - arm_debug_printf ("arg %d in %s = 0x%s", argnum, gdbarch_register_name (gdbarch, argreg), phex (regval, ARM_INT_REGISTER_SIZE));