MOD517

Abbreviation

None.

Arguments

Optional parameters, enclosed in parentheses, to control support for individual components of the 80C517.

Default

NOMOD517

Description

The MOD517 directive instructs the C51 compiler to produce code for the additional hardware components (the arithmetic processor and the additional data pointers) of the Siemens 80C517. This feature dramatically impacts the execution of integer, long, and floating-point math operations as well as functions that make use of the additional data pointers.
The following library functions take advantage of the extra data pointers: memcpy, memmove, memcmp, strcpy, and strcmp.
Library functions which take advantage of the arithmetic processor are so indicated by a 517 suffix. Refer to the “Library Reference” chapter for more details on these functions.
Additional parameters may be specified with MOD517 to control C51 support of the individual components of the 80C517. When specified, the parameters must appear within parentheses immediately following the MOD517 directive. Parentheses are not required if none of these additional parameters is specified.

NOAU:
When this parameter is specified, the C51 compiler uses only the additional data pointers of the 80C517. The arithmetic processor is not used. The NOAU parameter is useful for functions that are called by an interrupt while the arithmetic processor is already being used.
NODP8:
When specified, this parameter instructs the C51 compiler to use only the arithmetic processor. The additional data pointers are not used. The NODP8 parameter is useful for interrupt functions declared without the using function attribute. In this case, the extra data pointers are not used and, therefore, do not need to be saved on the stack during the interrupt.

Specifying both of these additional parameters with MOD517 has the same effect as using the NOMOD517 directive.

NOTE
Though it may be defined several times in a program, the MOD517 directive is valid only when defined outside of a function declaration.

See Also
MODAMD, NOMOD517

Example


#pragma MOD517 (NOAU)

#pragma MOD517 (NODP8)

#pragma MOD517 (NODP8, NOAU)