diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2008-06-03 08:05:25 +0000 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2008-06-03 10:05:25 +0200 |
commit | 7c8009267b4fd51593b4aca97b9e958e11f4bcf0 (patch) | |
tree | 46b72aba39009f675c2eb450ebc3d689c165e87a /gcc/doc/extend.texi | |
parent | 19df69a0d792f6eead0816d6f7b893814dcb5152 (diff) | |
download | gcc-7c8009267b4fd51593b4aca97b9e958e11f4bcf0.zip gcc-7c8009267b4fd51593b4aca97b9e958e11f4bcf0.tar.gz gcc-7c8009267b4fd51593b4aca97b9e958e11f4bcf0.tar.bz2 |
tm.texi (OVERRIDE_ABI_FORMAT): New.
2008-06-03 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.
* 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
Diffstat (limited to 'gcc/doc/extend.texi')
-rw-r--r-- | gcc/doc/extend.texi | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 103af2c..9c02560 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -2508,6 +2508,19 @@ instruction). Caveat: such addressing is by definition not position independent and hence this attribute must not be used for objects defined by shared libraries. +@item ms_abi/sysv_abi +@cindex @code[ms_abi} attribute +@cindex @code{sysv_abi} attribute + +On 64-bit x86_65-*-* targets, you can use an ABI attribute to indicate +which calling convention should be used for a function. The @code{ms_abi} +attribute tells the compiler to use the Microsoft ABI, while the +@code{sysv_abi} attribute tells the compiler to use the ABI used on +GNU/Linux and other systems. The default is to use the Microsoft ABI +when targeting Windows. On all other systems, the default is the AMD ABI. + +Note, This feature is currently sorried out for Windows targets trying to + @item naked @cindex function without a prologue/epilogue code Use this attribute on the ARM, AVR, IP2K and SPU ports to indicate that |