[patch] Fix var-tracking with dynamic stack realignment on x86
Eric Botcazou
ebotcazou@adacore.com
Sun May 29 16:14:00 GMT 2011
> Here is an alternative, almost completely untested, patch, which
> uses DW_OP_fbreg <N> for the arguments of dynamically realigned functions.
> draptest.c now works...
I've attached a slightly revamped, IMO easier to understand version. Stack
realignment with DRAP is quite seldom on the mainline (because everything is
ACCUMULATE_OUTGOING_ARGS now) so I don't think this will make any difference
in practice. Tested on i586 and x86-64.
* var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
there is a DRAP register.
(vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
(vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
--
Eric Botcazou
-------------- next part --------------
A non-text attachment was scrubbed...
Name: var-tracking.diff
Type: text/x-diff
Size: 2938 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20110529/a60883a5/attachment.bin>
More information about the Gcc-patches
mailing list