Microchip Technology SW006022-1N Data Sheet
MPLAB
®
XC16 C Compiler User’s Guide
DS52071B-page 82
2012 Microchip Technology Inc.
3.7.10
Options for Directory Search
The following options specify to the compiler where to find directories and files to
search.
search.
3.7.11
Options for Code Generation Conventions
Options of the form -fflag specify machine-independent flags. Most flags have both
positive and negative forms; the negative form of -ffoo would be -fno-foo. In the
table below, only one of the forms is listed (the one that is not the default.)
positive and negative forms; the negative form of -ffoo would be -fno-foo. In the
table below, only one of the forms is listed (the one that is not the default.)
TABLE 3-17:
DIRECTORY SEARCH OPTIONS
Option
Definition
-specs=file
Process file after the compiler reads in the standard specs file, in
order to override the defaults that the xc16-gcc driver program
uses when determining what switches to pass to xc16-cc1,
xc16-as
order to override the defaults that the xc16-gcc driver program
uses when determining what switches to pass to xc16-cc1,
xc16-as
, xc16-ld, etc. More than one -specs=file can be
specified on the command line, and they are processed in order,
from left to right.
from left to right.
TABLE 3-18:
CODE GENERATION CONVENTION OPTIONS
Option
Definition
-fargument-alias
-fargument-noalias
-fargument-
noalias-global
Specify the possible relationships among parameters and between
parameters and global data.
-fargument-alias
parameters and global data.
-fargument-alias
specifies that arguments (parameters) may
alias each other and may alias global storage.
-fargument-noalias
-fargument-noalias
specifies that arguments do not alias
each other, but may alias global storage.
-fargument-noalias-global
-fargument-noalias-global
specifies that arguments do not
alias each other and do not alias global storage.
Each language will automatically use whatever option is required
by the language standard. You should not need to use these
options yourself.
Each language will automatically use whatever option is required
by the language standard. You should not need to use these
options yourself.
-fcall-saved-reg
Treat the register named reg as an allocatable register saved by
functions. It may be allocated even for temporaries or variables
that live across a call. Functions compiled this way will save and
restore the register reg if they use it.
It is an error to used this flag with the Frame Pointer or Stack
Pointer. Use of this flag for other registers that have fixed perva-
sive roles in the machine’s execution model will produce disas-
trous results.
A different sort of disaster will result from the use of this flag for a
register in which function values may be returned.
This flag should be used consistently through all modules.
functions. It may be allocated even for temporaries or variables
that live across a call. Functions compiled this way will save and
restore the register reg if they use it.
It is an error to used this flag with the Frame Pointer or Stack
Pointer. Use of this flag for other registers that have fixed perva-
sive roles in the machine’s execution model will produce disas-
trous results.
A different sort of disaster will result from the use of this flag for a
register in which function values may be returned.
This flag should be used consistently through all modules.
-fcall-used-reg
Treat the register named reg as an allocatable register that is
clobbered by function calls. It may be allocated for temporaries or
variables that do not live across a call. Functions compiled this way
will not save and restore the register reg.
It is an error to use this flag with the Frame Pointer or Stack
Pointer. Use of this flag for other registers that have fixed perva-
sive roles in the machine’s execution model will produce disas-
trous results.
This flag should be used consistently through all modules.
clobbered by function calls. It may be allocated for temporaries or
variables that do not live across a call. Functions compiled this way
will not save and restore the register reg.
It is an error to use this flag with the Frame Pointer or Stack
Pointer. Use of this flag for other registers that have fixed perva-
sive roles in the machine’s execution model will produce disas-
trous results.
This flag should be used consistently through all modules.
-ffixed-reg
Treat the register named reg as a fixed register; generated code
should never refer to it (except perhaps as a Stack Pointer, Frame
Pointer or in some other fixed role).
reg
should never refer to it (except perhaps as a Stack Pointer, Frame
Pointer or in some other fixed role).
reg
must be the name of a register, e.g., -ffixed-w3.
-fno-ident
Ignore the #ident directive.