Re: [patch 1/2] i386: add CFI macros for stack manipulation

From: Chuck Ebbert
Date: Fri Jul 28 2006 - 15:44:09 EST


In-Reply-To: <200607282036.45608.ak@xxxxxxx>

On Fri, 28 Jul 2006 20:36:45 +0200, Andi Kleen wrote:
>
> On Friday 28 July 2006 19:50, Chuck Ebbert wrote:
> > Add macros to dwarf2.h to simplify pushing and popping stack
> > variables.
>
> I feared someone would do that patch. I've thought about it myself.
>
> However it's not a good idea. I've already had complaints that some code in
> x86-64 is too hard to read/debug because it uses too many macros. I think
> it's better if the core core still uses "real" instructions and keep the
> CFI_* stuff as annotation that most people can just ignore.

I did this because it should prevent:

| Date: Thu, 27 Jul 2006 07:45:35 +0200
| From: Markus Armbruster <armbru@xxxxxxxxxx>
| Subject: [PATCH] Fix trivial unwind info bug
| To: linux-kernel@xxxxxxxxxxxxxxx
| Message-ID: <874px31tz4.fsf@xxxxxxxxxxxxxxxxx>
| Content-Type: text/plain; charset=us-ascii
|
| CFA needs to be adjusted upwards for push, and downwards for pop.
| arch/i386/kernel/entry.S gets it wrong in one place.
|
| Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx>
|
|
| diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S
| index d9a260f..37a7d2e 100644
| --- a/arch/i386/kernel/entry.S
| +++ b/arch/i386/kernel/entry.S
| @@ -204,7 +204,7 @@ #define RING0_PTREGS_FRAME \
| ENTRY(ret_from_fork)
| CFI_STARTPROC
| pushl %eax
| - CFI_ADJUST_CFA_OFFSET -4
| + CFI_ADJUST_CFA_OFFSET 4
| call schedule_tail
| GET_THREAD_INFO(%ebp)
| popl %eax

Otherwise I was just going to indent the annotations an additional
tabstop to move them out of the way. (They really annoy me.)

--
Chuck

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/