[ARM] minor opt in thumb_stack_frame_destroyed_p

Message ID 86fuujl5f6.fsf@gmail.com
State New, archived
Headers

Commit Message

Yao Qi April 18, 2016, 7:52 a.m. UTC
  Pedro Alves <palves@redhat.com> writes:

> This assumes epilogue sequences are always at the end of the function.

Ur, right.  Looks compiler can place prologue and epilogue in the middle
of the function, no at the first or last blocks.

The patch is reverted.
  

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bafbbe6..daf86d9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@ 
+2016-04-18  Yao Qi  <yao.qi@linaro.org>
+
+	Revert:
+	2016-04-15  Yao Qi  <yao.qi@linaro.org>
+
+	* arm-tdep.c (thumb_stack_frame_destroyed_p): Return zero if
+	PC is far from the end of function.
+
 2016-04-16  Pedro Alves  <palves@redhat.com>
 
 	* ada-exp.y (yydefred): Define as ada_yydefred.
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 36b0bcd..0412f71 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -3135,14 +3135,6 @@  thumb_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
   if (!find_pc_partial_function (pc, NULL, &func_start, &func_end))
     return 0;
 
-  if (func_end - pc > 4 * 4)
-    {
-      /* There shouldn't be more than four instructions in epilogue.
-	 If PC is still 16 bytes away from FUNC_END, it isn't in
-	 epilogue.  */
-      return 0;
-    }
-
   /* The epilogue is a sequence of instructions along the following lines:
 
     - add stack frame size to SP or FP