From 7c8009267b4fd51593b4aca97b9e958e11f4bcf0 Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Tue, 3 Jun 2008 08:05:25 +0000 Subject: tm.texi (OVERRIDE_ABI_FORMAT): New. 2008-06-03 Kai Tietz * 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. * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX. * 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. (X64_REGPARM_MAX): New. (X64_SSE_REGPARM_MAX): New. (X86_32_REGPARM_MAX): New. (X86_32_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. From-SVN: r136311 --- gcc/doc/tm.texi | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gcc/doc/tm.texi') diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 3e4d2b7..d18bf2e 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -4055,6 +4055,15 @@ arguments are passed on the stack, there is no need to store anything in should not be empty, so use @code{int}. @end defmac +@defmac OVERRIDE_ABI_FORMAT (@var{fndecl}) +If defined, this macro is called before generating any code for a +function, but after the @var{cfun} descriptor for the function has been +created. The back end may use this macro to update @var{cfun} to +reflect an ABI other than that which would normally be used by default. +If the compiler is generating code for a compiler-generated function, +@var{fndecl} may be @code{NULL}. +@end defmac + @defmac INIT_CUMULATIVE_ARGS (@var{cum}, @var{fntype}, @var{libname}, @var{fndecl}, @var{n_named_args}) A C statement (sans semicolon) for initializing the variable @var{cum} for the state at the beginning of the argument list. The -- cgit v1.1