This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
OK to mainline? Reviews: http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00349.html 2008-04-20 Joey Ye <joey.ye@intel.com> H.J. Lu <hongjiu.lu@intel.com> Xuepeng Guo <xuepeng.guo@intel.com> * config/i386/i386.c (ix86_force_align_arg_pointer_string): Break long line. (ix86_user_incoming_stack_boundary): New. (ix86_default_incoming_stack_boundary): Likewise. (ix86_incoming_stack_boundary): Likewise. (find_drap_reg): Likewise. (ix86_finalize_stack_realign_flags): Likewise. (override_options): Overide option value for new options. (ix86_function_ok_for_sibcall): Sibcall is OK even stack need realigning. (ix86_handle_cconv_attribute): Stack realign no longer impacts number of regparm. (ix86_function_regparm): Likewise. (setup_incoming_varargs_64): Remove the logic to set stack_alignment_needed here. (ix86_va_start): Replace virtual_incoming_args_rtx with crtl->args.internal_arg_pointer. (ix86_save_reg): Replace force_align_arg_pointer with drap_reg. (ix86_compute_frame_layout): Compute frame layout wrt stack realignment. (ix86_internal_arg_pointer): Estimate if stack realignment is needed and returns appropriate arg pointer rtx accordingly. (ix86_expand_prologue): Finally decide if stack realignment is needed and generate prologue code accordingly. (ix86_expand_epilogue): Generate epilogue code wrt stack realignment is really needed or not. (ix86_select_alt_pic_regnum): Check DRAP register. * config/i386/i386.h (MAIN_STACK_BOUNDARY): New. (ABI_STACK_BOUNDARY): Likewise. PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise. (STACK_REALIGN_DEFAULT): Likewise. (INCOMING_STACK_BOUNDARY): Likewise. (ix86_incoming_stack_boundary): Likewise. (MAX_VECTORIZE_STACK_ALIGNMENT): Define for i386. (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG. (CAN_ELIMINATE): Redefine the macro to eliminate frame pointer to stack pointer and arg pointer to hard frame pointer in case of stack realignment without DRAP. (machine_function): Remove force_align_arg_pointer. (ix86_incoming_stack_boundary): Declare new function. (force_align_arg_pointer): Removed. * config/i386/i386.md (BX_REG): New. (R13_REG): Likewise. * config/i386/i386.opt (mforce_drap): New. (mincoming-stack-boundary): Likewise. (mstackrealign): Updated.
Attachment:
x86-0420.patch
Description: x86-0420.patch
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |