Microchip Technology SW006023-2 Hoja De Datos
Compiler Command Line Driver
2012 Microchip Technology Inc.
DS51686E-page 83
3.9.12
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-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 automatically uses whatever option is required by
the language standard. You should not need to use these options
yourself.
Each language automatically uses 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 saves and
restores the register reg if they use it.
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
pervasive roles in the machine’s execution model produces
disastrous results.
A different sort of disaster results from the use of this flag for a
register in which function values are 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 saves and
restores the register reg if they use it.
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
pervasive roles in the machine’s execution model produces
disastrous results.
A different sort of disaster results from the use of this flag for a
register in which function values are 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
do 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
pervasive roles in the machine’s execution model produces
disastrous 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
do 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
pervasive roles in the machine’s execution model produces
disastrous 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-$0).