[Bug target/41246] should "sorry" when regparm=3 and nested functions are encountered
rth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Sep 22 15:17:00 GMT 2009
------- Comment #20 from rth at gcc dot gnu dot org 2009-09-22 15:17 -------
Subject: Bug 41246
Author: rth
Date: Tue Sep 22 15:16:49 2009
New Revision: 152018
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152018
Log:
PR target/41246
* config/i386/i386.c (ix86_function_regparm): Do not issue an
error for nested functions with regparm=3.
(ix86_compute_frame_layout): Adjust frame pointer offset for
ix86_static_chain_on_stack.
(ix86_expand_prologue): Handle ix86_static_chain_on_stack.
(ix86_emit_restore_reg_using_pop): Increment ix86_cfa_state->offset,
don't reset to UNITS_PER_WORD.
(ix86_emit_leave): Adjust ix86_cfa_state.
(ix86_expand_epilogue): Handle ix86_static_chain_on_stack.
(ix86_static_chain): New.
(ix86_trampoline_init): Rename from x86_initialize_trampoline;
make static; update for target hook parameters; use ix86_static_chain.
(TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
* config/i386/i386.h (STATIC_CHAIN_REGNUM): Remove.
(INITIALIZE_TRAMPOLINE): Remove.
(TRAMPOLINE_SIZE): Use 24 for 64-bit.
(struct machine_function): Use BOOL_BITFIELD; rearrange bitfields
to the end. Add static_chain_on_stack.
(ix86_static_chain_on_stack): New.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/i386.h
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41246
More information about the Gcc-bugs
mailing list