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] |
Richard, I tested this patch on w64 and bootstrapped here very well. I expected that the patch was tested by Honza for linux64, too. Sadly I have no such system todo this by myself. Could please try the following patch if it bootstraps for linux64? Regards, Kai | (\_/) This is Bunny. Copy and paste Bunny | (='.'=) into your signature to help him gain | (")_(") world domination. "Richard Guenther" <richard.guenther@gmail.com> wrote on 03.06.2008 13:57:49: > On Tue, Jun 3, 2008 at 1:49 PM, Richard Guenther > <richard.guenther@gmail.com> wrote: > > On Mon, Jun 2, 2008 at 5:55 PM, Jan Hubicka <hubicka@ucw.cz> wrote: > >>> > >>> 2008-05-30 Kai Tietz <kai.tietz@onevision.com> > >>> > >>> * doc/tm.texi (OVERRIDE_ABI_FORMAT): New. > >>> * doc/extend.texi (ms_abi,sysv_abi): New attribute description. > >>> * function.c (allocate_struct_function): Use of > >>> OVERRIDE_ABI_FORMAT. > >>> * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use > >>> of cfun and DEFAULT_ABI to deceide abi mode. > >>> (DEFAULT_ABI): New. > >>> (REG_PARM_STACK_SPACE): Removed. > >>> (OUTGOING_REG_PARM_STACK_SPACE): Removed. > >>> (STACK_BOUNDARY): Use default target to deceide stack boundary. > >>> * config/i386/i386-protos.h (ix86_cfun_abi): New. > >>> (ix86_function_abi): Likewise. > >>> (ix86_function_type_abi): Likewise. > >>> (ix86_call_abi_override): Likewise. > >>> * config/i386/i386.c (override_options): Replace > >>> TARGET_64BIT_MS_ABI. > >>> (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by > >>> abi > >>> specific defines. > >>> (X86_64_REGPARM_MAX): New. > >>> (X86_64_SSE_REGPARM_MAX): New. > >>> (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI. > >>> (ix86_function_regparm): Handle user calling abi. > >>> (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI > >>> by DEFAULT_ABI versus SYSV_ABI check. > >>> (ix86_reg_parm_stack_space): New. > >>> (ix86_function_type_abi): New. > >>> (ix86_call_abi_override): New. > >>> (ix86_function_abi): New. > >>> (ix86_cfun_abi): New. > >>> (init_cumulative_args): Call abi specific initialization. > >>> (function_arg_advance): Remove TARGET_64BIT_MS_ABI. > >>> (function_arg_64): Extend SSE_REGPARM_MAX check. > >>> (function_arg (): Remove TARGET_64BIT_MS_ABI. > >>> (ix86_pass_by_reference): Likewise. > >>> (ix86_function_value_regno_p): Likewise. > >>> (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX. > >>> (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI. > >>> (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI. > >>> (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI. > >>> (setup_incoming_varargs_64): Adjust regparm for call abi. > >>> (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI. > >>> (ix86_va_start): Likewise. > >>> (ix86_gimplify_va_arg): Likewise. > >>> (ix86_expand_prologue): Likewise. > >>> (output_pic_addr_const): Likewise. > >>> (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI. > >>> (x86_this_parameter): Replace TARGET_64BIT_MS_ABI. > >>> (x86_output_mi_thunk): Likewise. > >>> (x86_function_profiler): Likewise. > >>> * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi. > >>> (SYSV_ABI, MS_ABI): New constants. > >>> (DEFAULT_ABI): New. > >>> (init_regs): Add prototype of function in regclass.c file. > >>> (OVERRIDE_ABI_FORMAT): New. > >>> (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part. > >>> (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space. > >>> (OUTGOING_REG_PARM_STACK_SPACE): New. > >>> (ix86_reg_parm_stack_space): New prototype. > >>> (CUMULATIVE_ARGS): Add call_abi member. > >>> (machine_function): Add call_abi member. > >>> * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace > >>> TARGET_64BIT_MS_ABI > >>> by DEFAULT_ABI compare to MS_ABI. > >>> > >>> Is this patch ok for apply on trunk? > >> > >> Yes, it is OK (at leat my understanding is that the non-target specific > >> bits are OK with Mark ;) > >> Please add testcases to excercise main cases where APIs differ and we > >> can work on the call clobbering problems. > > > > This broke bootstrap on x86_64-unknown-linux-gnu: > > > > cc1: warnings being treated as errors > > ../../trunk/gcc/function.c: In function 'assign_parms': > > ../../trunk/gcc/function.c:3039: error: comparison between signed > and unsigned > > ../../trunk/gcc/function.c:3039: error: signed and unsigned type in > > conditional expression > > > > How did you test your patch? > > Next error: > > cc1: warnings being treated as errors > ../../trunk/gcc/config/i386/i386.c: In function 'ix86_call_abi_override': > ../../trunk/gcc/config/i386/i386.c:3614: error: the address of > 'call_used_regs' will always evaluate as 'true' > ../../trunk/gcc/config/i386/i386.c:3623: error: the address of > 'call_used_regs' will always evaluate as 'true' > > Richard. >
Attachment:
f_linux64.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |