diff options
author | Richard Henderson <rth@redhat.com> | 2009-09-22 08:16:49 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2009-09-22 08:16:49 -0700 |
commit | 3452586be1fc37d759e62de8e9db42cf574f0663 (patch) | |
tree | d7ed31230832c3072e574e4ad2c28ef2af15c05f /gcc/reload1.c | |
parent | 3c1229cb545da35578b7df31316b0e60377054d4 (diff) | |
download | gcc-3452586be1fc37d759e62de8e9db42cf574f0663.zip gcc-3452586be1fc37d759e62de8e9db42cf574f0663.tar.gz gcc-3452586be1fc37d759e62de8e9db42cf574f0663.tar.bz2 |
re PR target/41246 (should "sorry" when regparm=3 and nested functions are encountered)
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.
From-SVN: r152018
Diffstat (limited to 'gcc/reload1.c')
0 files changed, 0 insertions, 0 deletions