[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-gnupress] Mods to gcc.008.txt (#3)
From: |
James Morrison |
Subject: |
Re: [Bug-gnupress] Mods to gcc.008.txt (#3) |
Date: |
Sun, 8 Jun 2003 13:33:05 -0400 (EDT) |
From: "Paul A. Crable" <address@hidden>
X-URL: http://www.pocomail.com/
Date: Sat, 7 Jun 2003 20:39:29 -0700
Sender: address@hidden
X-Spam-Status: No, hits=0.0 required=5.0 tests= version=2.20
X-Spam-Level:
These are the modifications to sections 3.17.23 to 3.17.25 of
gcc.008.txt.
---------------------------------------
Replace
"-mlong-calls
"-mno-long-calls
"Treat all calls as being far away (near). If calls are assumed to be
far
away, the compiler will always load the functions address up into a
register, and call indirect through the pointer."
with
"-mlong-calls
"-mno-long-calls
"Treat all calls as being far (-mlong-calls)
or near (-mno-long-calls). If -mlong-calls is
set, the compiler will always load the
function's address into a register and then
and call indirect through the pointer. If
neither is specified, then ???????????????? is
set by default."
Replace
"-mno-ep
"-mep
"Do not optimize (do optimize) basic blocks that use the same index
pointer 4 or more times to copy pointer into the ep register, and use
the shorter sld and sst instructions. The `-mep' option is on by
default
if you optimize."
with
"-mno-ep
"-mep
"Optimize (-mep) or do not optimize (-mno-ep)
basic blocks. Optimize basic blocks that use
the same index pointer more than three times
by copying the pointer into the EP register
and then using the shorter SLD and SST
instructions. If neither is specified, then
???????????????? is set by default."
NOTE: This statement is unclear so I have removed it: "The `-mep'
option is on by default if you optimize."
It shouldn't be, it's what makes this section make sense. -mep is
used if -O[0-9 ] is specified otherwise, -mno-ep is used.
Replace:
"-mno-prolog-function
"-mprolog-function
"Do not use (do use) external functions to save and restore registers
at the prolog and epilog of a function. The external functions are
slower, but use less code space if more than one function saves the
same number of registers. The `-mprolog-function' option is on by
default if you optimize."
with:
"-mno-prolog-function
"-mprolog-function
"Use (-mprolog-function) or do not use (-mno-
prolog-function) external functions to save
and to restore registers at the prolog and
epilog of a function. External functions are
slower but consume less memory if more than
one function saves the same number of
registers. If neither is specified, then
???????????????? is set by default."
NOTE: This statement is unclear so I have removed it: "The
`-mprolog-function' option is on by default if you optimize."
Same as before.
Replace
"-mspace
"Try to make the code as small as possible. At present, this just
turns
on the `-mep' and `-mprolog-function' options."
with:
"-mspace
"Set both the `-mep' and `-mprolog-function'
options, which together will yield the
smallest code."
This doesn't make as much sense as what is stated above. Perhaps only
changing the second sentence to say. "Currently this turns on the following
options: -mep, -mprolog-function." There -mspace probably doesn't yield the
smallest code all by itself, so your version doesn't make sense.
Replace
"-mtda=n
"Put static or global variables whose size is n bytes or less into
the tiny
data area that register ep points to. The tiny data area can hold up
to
256 bytes in total (128 bytes for byte references)."
with
"-mtda=n
"Put static or global variables whose size is
n bytes or fewer into the tiny data area to
which register EP points. The tiny data area
can hold up to 256 bytes (128 bytes for byte
references). If -mtda is unspecified, then
?????????????????????????"
The default is probably irrelevant and probably changes. So, it is not
worth documenting.
Replace
"-msda=n
"Put static or global variables whose size is n bytes or less into
the small
data area that register gp points to. The small data area can hold up
to 64 kilobytes."
with
"-msda=n
"Put static or global variables whose size is
n bytes or fewer into the small data area to
which register GP points. The small data area
can hold up to 64 kilobytes. If -msda is
unspecified, then ???????????????????????"
See above.
Replace
"-mzda=n
"Put static or global variables whose size is n bytes or less into
the rst
32 kilobytes of memory."
with
"-mzda=n
"Put static or global variables whose size is
n bytes or fewer into the first 32 kilobytes
of memory. If -mzda is unspecified, then
?????????????????????????"
Same as before.
Replace
"-mv850
"Specify that the target processor is the V850."
with
"-mv850
"Specify that the target processor is the
V850. If -mv850 is not specified, then
????????????????"
It depends on configuration. If defaults aren't in the manual, you
probably don't need to worry about them.
Replace
"-mbig-switch
"Generate code suitable for big switch tables. Use this option only
if
the assembler/linker complain about out of range branches within a
switch table."
with
"-mbig-switch
"Generate code suitable for big switch tables.
Use this option only if the assembler or
linker complain that branches are out of range
within a switch table. If -mbig-switch is
unspecified, then ??????????????????"
It's off, didn't you read the above paragraph.
Replace
"-mapp-regs
"This option will cause r2 and r5 to be used in the code generated by
the compiler. This setting is the default."
with
"-mapp-regs
"Use R2 and R5. This option is set by
default."
I actually like the first version since it is obvious who is going to
use r2 and r5.
Replace
"-mv850e
"Specify that the target processor is the V850E. The preprocessor
con
stant `__v850e__' will be dened if this option is used.
If neither `-mv850' nor `-mv850e' are dened then a default target
proces
sor will be chosen and the relevant `__v850*__' preprocessor constant
will be dened.
"The preprocessor constants `__v850' and `__v851__' are always
dened,
regardless of which processor variant is the target."
with
"-mv850e
"Specify that the target processor is the
V850E. The preprocessor constant `__v850e__'
will be defined if this option is used. If
neither `-mv850' nor `-mv850e' are defined,
then GCC will chose a default target processor
and define the relevant `__v850*__'
preprocessor constant.
"The preprocessor constants `__v850' and
`__v851__' are always defined, regardless of
which processor variant is the target."
Replace
"-mdisable-callt
"This option will suppress generation of the CALLT instruction
for the v850e avors of the v850 architecture. The default is
`-mno-disable-callt' which allows the CALLT instruction to be used."
with
"-mdisable-callt
"-mno-disable-callt
"Suppress (-mno-disable-callt) or allow (-
-mdisable-callt
mdisable-callt) generating the CALLT
-mnodisable-callt
instruction for the v850e flavors of the v850
architecture. If neither is specified, then
`-mno-disable-callt' is set by default,
allowing the CALLT instruction to be used.
Replace
"-EL
"Compile code for little endian mode. This is the default.
"-EB
"Compile code for big endian mode.
with
"-EL
"-EB
"Compile code for little (-EL) or big (-EB)
endian mode. If neither is specified, then -EL
is set by default."
Replace
"-mmangle-cpu
"Prepend the name of the cpu to all public symbol names. In multiple
processor systems, there are many ARC variants with different in
struction and register set characteristics. This ag prevents code
com
piled for one cpu to be linked with code compiled for another. No
facility exists for handling variants that are ìalmost identicalî.
This
is an all or nothing option."
with
"-mmangle-cpu
"Prepend the name of the cpu to all public
symbol names. Many ARC variants with different
instruction and register set characteristics
exist in multiple processor systems. This flag
prevents code compiled for one cpu to be
linked with code compiled for another.
Unfortunately, no facility exists for handling
variants that are almost identical. This is an
all-or-nothing option."
Replace
"-mcpu=cpu
"Compile code for ARC variant cpu. Which variants are supported
depend on the conguration. All variants support `-mcpu=base', this
is the default."
with
"-mcpu=CPU
"Compile code for ARC variant cpu. Which
variants are supported depend on the
configuration. All variants support `-
mcpu=base', which is the default if -mcpu is
not specified. Acceptable values for cpu are
????????????????. If an unacceptable value is
specified for cpu, then
????????????????????????"
NOTE: What is "the configuration"?
When the compiler is compiled it has a non-empty set of targets it can
compile for. In this set there is a default target. In this case
if CPU is not a cpu that is in the target set then gcc will just exit with
an error.
Replace
"-mtext=text-section
"-mdata=data-section
"-mrodata=readonly-data-section
"Put functions, data, and readonly data in textsection,
datasection, and
readonlydatasection respectively by default. This can be overridden
with the section attribute. See Section 5.33 [Variable Attributes],
page 201."
with
"-mtext=text-section
"-mdata=data-section
"-mrodata=readonly-data-section
"Put functions, data, and read-only data in
textsection, datasection, and
readonlydatasection respectively. This can
be overridden with the section attribute, for
which see section 5.33 [Variable Attributes],
on page 201. The default values for text-
section, data-section, and readonly-data-
section are ???????????, ?????????????, and
????????????? respectively"
The defaults are text, data, and readonly. If someone is willing to play
with this option, they should know what these sections mean.
Replace
"-m32032
"Generate output for a 32032. This is the default when the compiler
is configured for 32032- and 32016-based systems."
with
"-m32032
"Generate output for a 32032. This is the
default when the compiler is configured for
32032- and 32016-based systems."
What changed?
Replace
"-m32332
"-m32332
"Generate output for a 32332. This is the default when the compiler
is
congured for 32332based systems."
with
"-m32332
"Generate output for a 32332. This is the
default when the compiler is configured for
32332based systems."
Ok, I'll remove the duplicate option.
Replace
"-m32381
"Generate output containing 32381 instructions for oating point.
This
also implies `-m32081'. The 32381 is only compatible with the 32332
and 32532 cpus. This is the default for the pc532netbsd
conguration."
with
"-m32381
"Generate output containing 32381 instructions
for floating point processing. When this
option is specified, then -m32081 is also
specified by default. The 32381 is only
compatible with the 32332 and 32532 cpu's.
This is set by default in the pc532netbsd
configuration."
"floating point operations" probably makes more sense here. Otherwise, I
think the original is fine.
-- Skip to the end
Replace
"-mmulti-add
"Try and generate multiplyadd oating point instructions polyF and
dotF. This option is only available if the `-m32381' option is in
effect.
Using these instructions requires changes to register allocation
which
generally has a negative impact on performance. This option should
only be enabled when compiling code particularly likely to make
heavy use of multiplyadd instructions."
"-mnomulti-add
"Do not try and generate multiplyadd oating point instructions
polyF
and dotF. This is the default on all platforms."
with
"-mmulti-add
"-mnomulti-add
"Generate (-mmulti-add) or do not generate (-
mnomulti-add) output that includes the
multiplyadd foating point instructions polyF
and dotF. In using these instructions, GCC
must change register allocation in a manner
that adversely affects performance. Use -
mmulti-add only when compiling code
particularly likely to make heavy use of
multiplyadd instructions. -mmulti-add is
recognized only if the `-m32381' option is in
effect. If neither option is specified, then -
mnomulti-add is set by default"
???????????????? The preceeding option is not
well defined but I have done the best I could.
Replace
"-msoft-float
"Generate output containing library calls for oating point. Warning:
the requisite libraries may not be available."
with
"-msoft-float
"Generate output containing calls to software
for floating point operations. Be sure the
software libraries are available when the
program is linked."
Replace
"-mieee-compare
"-mno-ieee-compare
"Control whether or not the compiler uses IEEE oating point compar
isons. These handle correctly the case where the result of a compar
ison is unordered. Warning: the requisite kernel support may not be
available."
with
"-mieee-compare
"-mno-ieee-compare
"Use (-mieee-compare) or do not use (-mno-
ieee-compare) IEEE floating point comparisons.
IEEE floating point comparisons properly
handle unordered comparisons. Warning:
before setting -mieee-compare insure that the
requisite kernel support is available. If
neither option is specified, then
??????????????? is set by default".
Replace
"-mnobitfield
"Do not use the biteld instructions. On some machines it is faster
to
use shifting and masking operations. This is the default for the
pc532.
"-mbitfield
"Do use the biteld instructions. This is the default for all
platforms
except the pc532.
with
"-mbitfield
"-mnobitfield
"Use (-mbitfield) or do not use (-mnobitfield)
use the bitfield instructions. On some
machines shifting and masking operations may
be faster than bit-field operations. If
neither option is specified, -mnobitfield is
set by default for the pc532 processor, and -
mbitfield for all other processors"
Replace
"-mrtd
"Use a different functioncalling convention, in which functions that
take a xed number of arguments return pop their arguments on
return with the ret instruction.
"This calling convention is incompatible with the one normally used
on Unix, so you cannot use it if you need to call libraries compiled
with the Unix compiler.
"Also, you must provide function prototypes for all functions that
take variable numbers of arguments (including printf); otherwise
incorrect code will be generated for calls to those functions.
In addition, seriously incorrect code will result if you call a
function
with too many arguments. (Normally, extra arguments are harmlessly
ignored.)
"This option takes its name from the 680x0 rtd instruction."
with
"-mrtd
"Use a non-standard calling convention, in
which functions that take a fixed number of
arguments return with the RET instruction. RET
pops the arguments from the stack while
returning, saving one instruction cycle. This
convention is incompatible with that used on
Unix systems, so do not attempt to link to
call libraries compiled with the Unix
compiler. If this option is set, provide
prototypes for all functions that take a
variable number of arguments (such as printf),
and do not call a function with too many
arguments. This option takes its name from
the 680x0 RTD instruction."
Replace
"-mregparam
"Use a different functioncalling convention where the rst two argu
ments are passed in registers.
This calling convention is incompatible with the one normally used
on Unix, so you cannot use it if you need to call libraries compiled
with the Unix compiler.
"-mnoregparam
"Do not pass any arguments in registers. This is the default for all
targets.
with
"-mregparam
"-mnoregparam
"Use (-mregparam) or do not use (-mnoregparam)
a function calling convention in which the
first two arguments are passed in registers.
This convention is incompatible with that used
on Unix systems, so do not attempt to link to
call libraries compiled with the Unix
compiler. If neither option is specified,
then -mnoregparam is set by default."
Replace
"-msb
"It is OK to use the sb as an index register which is always loaded
with
zero. This is the default for the pc532netbsd target."
"-mnosb
"The sb register is not available for use or has not been initialized
to
zero by the run time system. This is the default for all targets
except
the pc532netbsd. It is also implied whenever `-mhimem' or `-fpic' is
set."
with
"-msb
"-mnosb
"Use (-msb) or do not use (-mnosb) the SB as
an index register which is always loaded with
zero. If neither is specified, then -msb is
set by default for the pc532netbsd target and
-mnosb for all other processors. -mnosb
automatically set whenever either `-mhimem' or
`-fpic' is set"
Replace
"-mhimem
"Many ns32000 series addressing modes use displacements of up to
512MB. If an address is above 512MB then displacements from zero
can not be used. This option causes code to be generated which can
be loaded above 512MB. This may be useful for operating systems or
ROM code."
"-mnohimem
"Assume code will be loaded in the rst 512MB of virtual address
space. This is the default for all platforms."
with
"-mhimem
Generate code that will only be loaded in the
first 512 MB of virtual address space (-
mnohimem), or that may be loaded above that
limit (-mhimem). Many ns32000-series
addressing modes use displacements of up to
512MB. If an address is above 512MB then
displacements from zero can not be used. -
mhimem causes GCC to generate code which can
be loaded above 512MB, which may be useful for
operating systems or ROM code. If neither
option is specified, then -mnohimem is set by
default."
Paul A. Crable. Portland, Oregon, USA
Thank you very much for your contribution. Hopefully simon, or heaven-forbid
even me, are able to merge these changes into our trees and put this stuff
back into gcc.
James A. Morrison