public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Fix documentation of -mpoke-function-name ARM option
@ 2019-12-15 18:42 Jérémy Lefaure
  2020-01-10 10:23 ` [PING][PATCH] " Jérémy Lefaure
  2020-02-20 22:08 ` [PING^2][PATCH] " Jérémy Lefaure
  0 siblings, 2 replies; 8+ messages in thread
From: Jérémy Lefaure @ 2019-12-15 18:42 UTC (permalink / raw)
  To: gcc-patches

Hi!

Since in ARM state the value of PC is the address of the current
instruction plus 8 bytes, the code inspecting the value of PC stored at
FP + 0 should look at location PC - 16 : PC - 8 points to the stmfd
instruction, PC - 16 points two words before, where the top 8 bits are
set.

gcc/
2019-12-14  Jérémy Lefaure <jeremy@lefaure.fr>

	* config/arm/arm.c (-mpoke-function-name): Fix documentation in comment.
	* doc/invoke.texi (-mpoke-function-name): Fix documentation.

Index: gcc/config/arm/arm.c
===================================================================
--- gcc/config/arm/arm.c
+++ gcc/config/arm/arm.c
@@ -20738,9 +20738,9 @@ arm_asm_declare_function_name (FILE *file, const c
 
    When performing a stack backtrace, code can inspect the value
    of 'pc' stored at 'fp' + 0.  If the trace function then looks
-   at location pc - 12 and the top 8 bits are set, then we know
+   at location pc - 16 and the top 8 bits are set, then we know
    that there is a function name embedded immediately preceding this
-   location and has length ((pc[-3]) & 0xff000000).
+   location and has length ((pc[-4]) & 0xff000000).
 
    We assume that pc is declared as a pointer to an unsigned long.
 
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi
+++ gcc/doc/invoke.texi
@@ -18080,9 +18080,9 @@ preceding the function prologue.  The generated co
 
 When performing a stack backtrace, code can inspect the value of
 @code{pc} stored at @code{fp + 0}.  If the trace function then looks at
-location @code{pc - 12} and the top 8 bits are set, then we know that
+location @code{pc - 16} and the top 8 bits are set, then we know that
 there is a function name embedded immediately preceding this location
-and has length @code{((pc[-3]) & 0xff000000)}.
+and has length @code{((pc[-4]) & 0xff000000)}.
 
 @item -mthumb
 @itemx -marm

^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: [PING^2][PATCH] Fix documentation of -mpoke-function-name ARM option
@ 2020-03-09 17:53 Wilco Dijkstra
  2020-03-22 18:15 ` Jérémy Lefaure
  0 siblings, 1 reply; 8+ messages in thread
From: Wilco Dijkstra @ 2020-03-09 17:53 UTC (permalink / raw)
  To: blatinox; +Cc: GCC Patches

Hi,

There is no single PC offset that is correct given CPUs may use different offsets.
GCC may also schedule the instruction that stores the PC. This feature used to
work on early Arms but is no longer functional or useful today, so the best way
forward is to remove it altogether. There are many similar options that have
been deprecated for years.

Cheers,
Wilco

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-03-23 14:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-15 18:42 [PATCH] Fix documentation of -mpoke-function-name ARM option Jérémy Lefaure
2020-01-10 10:23 ` [PING][PATCH] " Jérémy Lefaure
2020-02-20 22:08 ` [PING^2][PATCH] " Jérémy Lefaure
2020-02-24 21:19   ` Sandra Loosemore
2020-03-08 17:19     ` blatinox
2020-03-09 17:53 Wilco Dijkstra
2020-03-22 18:15 ` Jérémy Lefaure
2020-03-23 14:10   ` Richard Earnshaw

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).