Next: IA-64 Function Attributes, Previous: H8/300 Function Attributes, Up: Function Attributes [Contents][Index]
These function attributes are supported by the IA-16 back end:
cdeclOn the IA-16 target, the cdecl attribute causes the compiler to
assume that the calling function pops off the stack space used to
pass arguments. This is useful to override the effects of a -mrtd
or -mregparmcall switch.
stdcallOn the IA-16 target, the stdcall attribute causes the compiler to
assume that the called function pops off the stack space used to
pass arguments, unless it takes a variable number of arguments.
regparmcallOn the IA-16 target, the regparmcall attribute causes the compiler to
pass its first few arguments to the function in the registers ax,
dx, and cx, instead of on the stack. The called function pops
the arguments off the stack.
An exception is that, if the number of arguments is variable, the ...
variable arguments will always go on the stack, and the calling function
pops all pushed arguments.
assume_ds_dataThis attribute, attached to a function, causes the compiler to assume that
the ds register points to the program’s data segment on function
entry. The function will also arrange to restore ds to the same data
segment on function exit.
Use this attribute to override the -mno-callee-assume-ds-data-segment switch for a function.
This attribute has no effect if ds is a call-saved register
(-fcall-saved-ds).
no_assume_ds_dataThis attribute, attached to a function, causes the compiler not to
assume that ds points to the program’s data segment on function
entry. It has no effect if ds is a call-saved register.
Note that, if ds is a call-used register (the default), this also
means that the function may clobber ds—and callers cannot assume
that the function will preserve it—unless you also specify the
restore_ds attribute.
restore_dsThis attribute, attached to a function, means that the function should
preserve the ds register value and restore it on function return.
This is mostly useful in conjunction with the no_assume_ds_data
attribute.
This attribute has no effect if ds is a fixed or call-saved register
(-ffixed-ds or -fcall-saved-ds).
no_assume_ss_dataThis attribute, attached to a function, causes the compiler not to
assume that ss points to the program’s data segment on function
entry. The function’s stack parameters and variables are considered to be
in a separate __seg_ss address space. See IA-16 Named Address Spaces.
Warning: This feature is experimental, and may produce broken code. Use with caution.
near_sectionThis attribute, attached to a far function declaration, tells GCC that the function is known to reside in the program’s text segment. See IA-16 Named Address Spaces.
far_sectionThis attribute, attached to a far function definition, tells GCC to place the function outside the normal text segment. See IA-16 Named Address Spaces.
Next: IA-64 Function Attributes, Previous: H8/300 Function Attributes, Up: Function Attributes [Contents][Index]