📄 optsumry.gml
字号:
performance improvements.
.*
.note FP6
.ixm 'FP6 option'
.ixm 'options' 'FP6'
&cmpname will generate in-line 387-compatible numeric data processor
instructions into the object code for floating-point operations.
The sequence of floating-point instructions will be optimized for
greatest possible performance on the Intel Pentium Pro processor.
For 16-bit applications, the use of this option will limit the range
of systems on which the application will run but there are execution
performance improvements.
.*
.note [NO]FPD
.ixm 'FPD option'
.ixm 'options' 'FPD'
:cmt. .ixm 'NOFPD option'
:cmt. .ixm 'options' 'NOFPD'
.ix 'FDIV bug'
.ix 'Pentium bug'
A subtle problem was detected in the FDIV instruction of Intel's
original Pentium CPU.
In certain rare cases, the result of a floating-point divide could
have less precision than it should.
Contact Intel directly for more information on the issue.
.np
As a result, the run-time system startup code has been modified to
test for a faulty Pentium.
If the FDIV instruction is found to be flawed, the low order bit of
the run-time system variable
.mono __chipbug
will be set.
.np
If the FDIV instruction does not show the problem, the low order bit
will be clear.
If the Pentium FDIV flaw is a concern for your application, there are
two approaches that you could take:
.autonote
.note
You may test the
.mono __chipbug
variable in your code in all floating-point and memory models and take
appropriate action (such as display a warning message or discontinue
the application).
.note
Alternately, you can use the "fpd" option when compiling your code.
This option directs the compiler to generate additional code whenever
an FDIV instruction is generated which tests the low order bit of
.mono __chipbug
and, if on, calls the software workaround code in the math libraries.
If the bit is off, an in-line FDIV instruction will be performed as
before.
.endnote
.np
If you know that your application will never run on a defective
Pentium CPU, or your analysis shows that the FDIV problem will not
affect your results, you need not use the "fpd" option.
.*
.note FPR
.ixm 'FPR option'
.ixm 'options' 'FPR'
Use this option if you want to generate floating-point instructions
that will be compatible with version 9.0 or earlier of the compilers.
For more information on floating-point conventions see the sections
entitled :HDREF refid='prg87'. and :HDREF refid='prg387'..
.*
.note [NO]FSfloats
.ixm 'FSFLOATS option'
.ixm 'options' 'FSFLOATS'
:cmt. .ixm 'NOFSFLOATS option'
:cmt. .ixm 'options' 'NOFSFLOATS'
The "fsfloats" option enables the use of the FS segment register in
the generated code.
This is the default for all but the flat memory model.
In the flat memory model, the default is "nofsfloats" (the FS segment
register is not used in the generated code).
.*
.note [NO]GSfloats
.ixm 'GSFLOATS option'
.ixm 'options' 'GSFLOATS'
:cmt. .ixm 'NOGSFLOATS option'
:cmt. .ixm 'options' 'NOGSFLOATS'
The "gsfloats" option enables the use of the GS segment register in
the generated code.
This is the default.
If you would like to prevent the use of the GS segment register in the
the generated code, specify the "nogsfloats" option.
.*
.note HC
.ixm 'HC option'
.ixm 'options' 'HC'
The type of debugging information that is to be included in the object
file is "Codeview".
The default type of debugging information is "Dwarf" (HD).
If you wish to use the Microsoft Codeview debugger, then choose the
"HC" option.
When linking the application, you must also choose the appropriate
&lnkname DEBUG directive.
See the
.book &lnkname User's Guide
for more information.
.*
.note HD
.ixm 'HD option'
.ixm 'options' 'HD'
The type of debugging information that is to be included in the object
file is "Dwarf".
This is the default type of debugging information.
If you wish to use the Microsoft Codeview debugger, then choose the
"HC" option.
When linking the application, you must also choose the appropriate
&lnkname DEBUG directive.
See the
.book &lnkname User's Guide
for more information.
.note HW
.ixm 'HW option'
.ixm 'options' 'HW'
The type of debugging information that is to be included in the object
file is "&company".
The default type of debugging information is "Dwarf" (HD).
If you wish to use the Microsoft Codeview debugger, then choose the
"HC" option.
When linking the application, you must also choose the appropriate
&lnkname DEBUG directive.
See the
.book &lnkname User's Guide
for more information.
.*
.do end
.*
.note [NO]INCList
.ixm 'INCLIST option'
.ixm 'options' 'INCLIST'
:cmt. .ixm 'NOINCLIST option'
:cmt. .ixm 'options' 'NOINCLIST'
This option is used to control the listing of the contents of INCLUDE
files to the listing file.
The "inclist" option enables the listing of INCLUDE files, while
"noinclist" disables the listing of these files.
The default option is "noinclist".
.*
.note INCPath=[&dr4]path;[&dr4]path...
.ixm 'INCPATH option'
.ixm 'options' 'INCPATH'
This option is used to specify directories that are to be searched for
include files.
Each path is separated from the previous by a semicolon (";").
These directories are searched in the order listed before those in the
.ev FINCLUDE
environment variable.
.*
.if '&cmpclass' eq 'load-n-go' .do begin
.*
.note [NO]IOVer
.ixm 'IOVER option'
.ixm 'options' 'IOVER'
:cmt. .ixm 'NOIOVER option'
:cmt. .ixm 'options' 'NOIOVER'
The "iover" option causes the compiler to issue an error when an
integer overflow occurs during the execution of the program.
Integer overflows are generated by many random number generators.
These integer overflows do not indicate an error in the program.
For this reason, the default for this option is "noiover" (ignore
integer overflows).
If you wish the compiler to issue an error when an integer overflow
occurs, specify the "iover" option.
.*
.do end
.*
.note [NO]IPromote
.ixm 'IPROMOTE option'
.ixm 'options' 'IPROMOTE'
:cmt. .ixm 'NOIPROMOTE option'
:cmt. .ixm 'options' 'NOIPROMOTE'
The "ipromote" option causes the compiler to promote the INTEGER*1 and
INTEGER*2 arguments of some INTEGER*4 intrinsics without issuing an
error diagnostic.
This allows code such as the following to be compiled without error:
.exam begin
INTEGER I*1, J*2
I = 1
J = 2
PRINT *, IDIM( I, J )
END
.exam end
.np
This works for the following intrinsic functions:
ABS(), IABS(), DIM(), IDIM(), SIGN(), ISIGN(), MAX(), AMAX0(), MAX0(),
MIN(), AMIN0(), and MIN0().
When the "ipromote" option is specified, all integer arguments that
are passed to these functions are promoted to INTEGER*4.
.*
.note Japanese
.ixm 'JAPANESE option'
.ixm 'options' 'JAPANESE'
This option is part of the national language support provided by
&cmpname..
It instructs the compiler that the source code contains characters
from the Japanese character set.
This includes double-byte characters.
This option enables the use of Japanese variable names.
The compiler's run-time system will ensure that character strings are
not split in the middle of a double-byte character when output spans
record boundaries (as can happen in list-directed output).
.if '&cmpclass' eq 'load-n-go' .do begin
The compiler's run-time undefined variable checking routines will
ignore the second byte of a double-byte character (see the description
of the "check" option).
.do end
.*
.note KORean
.ixm 'KOREAN option'
.ixm 'options' 'KOREAN'
This option is part of the national language support provided by
&cmpname..
It instructs the compiler that the source code contains characters
from the Korean character set.
This includes double-byte characters.
This option enables the use of Korean variable names.
The compiler's run-time system will ensure that character strings are
not split in the middle of a double-byte character when output spans
record boundaries (as can happen in list-directed output).
.if '&cmpclass' eq 'load-n-go' .do begin
The compiler's run-time undefined variable checking routines will
ignore the second byte of a double-byte character (see the description
of the "check" option).
.do end
.*
.if '&cmpclass' ne 'load-n-go' .do begin
.*
.note [NO]LFwithff
.ixm 'LFWITHFF option'
.ixm 'options' 'LFWITHFF'
:cmt. .ixm 'NOLFWITHFF option'
:cmt. .ixm 'options' 'NOLFWITHFF'
This option is used to control whether a line-feed character
(LF=CHAR(10)) is to be emitted before a form-feed character
(FF=CHAR(12)) is emitted.
This option applies to carriage control handling.
Normally, the run-time system will emit only a form-feed character to
cause a page eject when the ASA control character "1" is found in the
first column of a record.
The "lfwithff" option will cause the run-time system to emit a
line-feed character and then a form-feed character.
.np
The "lfwithff" option will have little effect on printers, but it will
change the appearance of output to the screen by eliminating
overwritten text when form-feed characters are not handled by the
output device.
The default option is "nolfwithff".
.*
.do end
.*
.if '&cmpclass' ne 'load-n-go' .do begin
.*
.note [NO]LIBinfo
.ixm 'LIBINFO option'
.ixm 'options' 'LIBINFO'
:cmt. .ixm 'NOLIBINFO option'
:cmt. .ixm 'options' 'NOLIBINFO'
This option is used to control the inclusion of default library
information in the object file.
The "libinfo" option enables the inclusion of default library
information, while "nolibinfo" disables the inclusion of this
information.
The default option is "libinfo".
.*
.do end
.*
.if '&cmpclass' eq 'load-n-go' .do begin
.*
.note [NO]LInk[=<lnk_file>]
.ixm 'LINK option'
.ixm 'options' 'LINK'
:cmt. .ixm 'NOLINK option'
:cmt. .ixm 'options' 'NOLINK'
This option controls the creation of an executable file.
When the "link" option is specified, the program is not placed into
execution but a file with extension "&exe" is created instead.
The data following the *$DATA compiler directive is ignored but the
source input stream is still terminated at the *$DATA line.
When the "nolink" option is specified, no executable file is created
and the program in memory is executed (provided there were no source
errors).
The default is "nolink".
.np
An optional link file can be specified.
This file contains additional object files and libraries that are to
be used to link your application.
For more information on the use of this option and the format of the
link file, see the chapter entitled "Linking with External
Subprograms".
.*
.do end
.*
.note [NO]LISt
.ixm 'LIST option'
.ixm 'options' 'LIST'
:cmt. .ixm 'NOLIST option'
:cmt. .ixm 'options' 'NOLIST'
This option may be specified on the command line or it may be placed
anywhere in the source input stream.
On the command line, this option is used to control the creation of a
listing file.
The "list" option causes a listing file to be created while "nolist"
requests that no listing file be created.
The default option is "nolist".
.np
In a source file, the option appears as a comment line and takes the
following form.
.millust begin
*$[NO]LISt
.millust end
.pc
Specifying *$LIST causes the source lines that follow this option to
be listed in the source listing file while
*$NOLIST disables the listing of the source lines that follow.
This option cannot appear on the same source line with other options.
.*
.if '&cmpclass' eq 'load-n-go' .do begin
.*
.note [NO]LOgio
.ixm 'LOGIO option'
.ixm 'options' 'LOGIO'
:cmt. .ixm 'NOLOGIO option'
:cmt. .ixm 'options' 'NOLOGIO'
This option is used to enable or disable logging of all unit 5 and 6
input or output during execution time.
The log will appear in the listing file.
The format of logged input or output is described under the "LOGIO"
command in the chapter entitled "The &product Debugger".
This option may not be used to selectively log unit 5 and 6 input or
output, hence it should only be specified once.
.np
This option is useful for obtaining a record of an interactive,
screen-oriented application.
In an educational environment, the listing file may be turned in
by the student for examination by the teacher.
.*
.do end
.*
.note [NO]MAngle
.ixm 'MANGLE option'
.ixm 'options' 'MANGLE'
:cmt. .ixm 'NOMANGLE option'
:cmt. .ixm 'options' 'NOMANGLE'
This option is used to alter COMMON block segment and class names.
.exam begin
REAL R, S
COMMON /BLK/ R, S
END
.exam end
.np
For a named COMMON block called "BLK", the default convention is to
name the segment "BLK" and the class "BLK".
.code begin
BLK SEGMENT PARA COMMON USE32 'BLK'
.code end
.np
When you use the "mangle" option, the segment is named "_COMMON_BLK"
and the class is named "_COMMON_BLK_DATA".
.code begin
_COMMON_BLK SEGMENT PARA COMMON USE32 '_COMMON_BLK_DATA'
.code end
.*
.if '&cmpclass' ne 'load-n-go' .do begin
.*
.note MC
.ixm 'MC option'
.ixm 'options' 'MC'
(32-bit only)
The "compact" memory model (small code, big data) is selected.
The various models supported by &cmpname are described in the chapters
entitled :HDREF refid='mdl86'. and :HDREF refid='mdl386'..
.*
.note MF
.ixm 'MF option'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -