From: "Greta Yorsh" <Greta.Yorsh@arm.com>
To: <gdb-patches@sourceware.org>
Cc: "Richard Earnshaw" <Richard.Earnshaw@arm.com>
Subject: [Patch, ARM] Add POP of single register to arm_in_function_epilogue_p
Date: Mon, 25 Jun 2012 12:01:00 -0000 [thread overview]
Message-ID: <001d01cd52ca$19f65d60$4de31820$@Yorsh@arm.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 975 bytes --]
This patch is related to a recent change in the way gcc generates function
epilogues for arm targets (since gcc trunk r188745):
http://gcc.gnu.org/ml/gcc-patches/2012-05/msg02071.html
The function arm_in_function_epilogue_p does not recognize POP with a single
register as a stack adjustment in arm mode.
It causes two test new failures in gdb testsuite:
FAIL: gdb.base/watch-cond.exp: watchpoint with local expression, local
condition evaluates in correct frame
FAIL: gdb.mi/mi2-watch.exp: hw: watchpoint trigger (stopped at wrong place)
The reason is that in arm mode the encoding of POP with single register is
different from the encoding of POP with multiple registers. The attached
patch adds the missing pattern to arm_in_function_epilogue_p.
Thanks,
Greta
ChangeLog
gdb/
2012-06-25 Greta Yorsh <Greta.Yorsh@arm.com>
* arm-tdep.c (arm_in_function_epilogue_p): Recognize POP
with a single register as a stack adjustment in arm mode.
[-- Attachment #2: gdb-pop-one-reg.patch.txt --]
[-- Type: text/plain, Size: 467 bytes --]
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index df5dea7..568ace5 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -3217,6 +3217,9 @@ arm_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
else if ((insn & 0x0fff0000) == 0x08bd0000)
/* POP (LDMIA). */
found_stack_adjust = 1;
+ else if ((insn & 0x0fff0000) == 0x049d0000)
+ /* POP of a single register. */
+ found_stack_adjust = 1;
}
if (found_stack_adjust)
next reply other threads:[~2012-06-25 12:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-25 12:01 Greta Yorsh [this message]
2012-06-25 12:16 ` Richard Earnshaw
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='001d01cd52ca$19f65d60$4de31820$@Yorsh@arm.com' \
--to=greta.yorsh@arm.com \
--cc=Richard.Earnshaw@arm.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox