📄 cpopts.gml
字号:
force file_name to be included
:optref refid='SWfi'.
.do end
.if &e'&$SWfo eq 1 .do begin
.note fo[=<file_name>]
set object or preprocessor output file name
:optref refid='SWfo2'.
.do end
.if &e'&$SWfr eq 1 .do begin
.note fr[=<file_name>]
set error file name
:optref refid='SWfr'.
.do end
.if &e'&$SWft eq 1 .do begin
.note ft
(C++ only)
try truncated (8.3) header file specification
:optref refid='SWft'.
.do end
.if &e'&$SWfti eq 1 .do begin
.note fti
(C only)
track include file opens
:optref refid='SWfti'.
.do end
.if &e'&$SWfx eq 1 .do begin
.note fx
(C++ only)
do not try truncated (8.3) header file specification
:optref refid='SWfx'.
.do end
.if &e'&$SWfzh eq 1 .do begin
.note fzh
(C++ only)
do not automatically append extensions for include files
:optref refid='SWfzh'.
.do end
.if &e'&$SWfzs eq 1 .do begin
.note fzs
(C++ only)
do not automatically append extensions for source files
:optref refid='SWfzs'.
.do end
.if &e'&$SWi eq 1 .do begin
.note i=<directory>
another include directory
:optref refid='SWi'.
.do end
.if &e'&$SWk eq 1 .do begin
.note k
continue processing files (ignore errors)
:optref refid='SWk'.
.do end
.if &e'&$SWv eq 1 .do begin
.note v
output function declarations to .def
:optref refid='SWv'.
.do end
.if &e'&$SWzat eq 1 .do begin
.note zat
(C++ only) disable alternative tokens
:optref refid='SWzat'.
.do end
.if &e'&$SWzf eq 1 .do begin
.note zf
(C++ only) let scope of for loop initialization extend beyond loop
:optref refid='SWzf'.
.do end
.if &e'&$SWzg eq 1 .do begin
.note zg
generate function prototypes using base types
:optref refid='SWzg'.
.do end
.if &e'&$SWzl eq 1 .do begin
.note zl
remove default library information
:optref refid='SWzl'.
.do end
.if &e'&$SWzld eq 1 .do begin
.note zld
remove file dependency information
:optref refid='SWzld'.
.do end
.if &e'&$SWzlf eq 1 .do begin
.note zlf
add default library information to object files
:optref refid='SWzlf'.
.do end
.if &e'&$SWzls eq 1 .do begin
.note zls
remove automatically generated symbols references
:optref refid='SWzls'.
.do end
.endnote
.section Code Generation
.*
.begnote $compact $setptnt 10
.ix 'options' 'code generation'
.notehd1 Option:
.notehd2 Description:
.if &e'&$SWas eq 1 .do begin
.note as
&AXPonly.
assume short integers are aligned
:optref refid='SWas'.
.do end
.if &e'&$SWecc eq 1 .do begin
.note ecc
set default calling convention to __cdecl
:optref refid='SWecc'.
.do end
.if &e'&$SWecd eq 1 .do begin
.note ecd
set default calling convention to __stdcall
:optref refid='SWecd'.
.do end
.if &e'&$SWecf eq 1 .do begin
.note ecf
set default calling convention to __fastcall
:optref refid='SWecf'.
.do end
:CMT. .if &e'&$SWeco eq 1 .do begin
:CMT. .note eco
:CMT. set default calling convention to _Optlink
:CMT. :optref refid='SWeco'.
:CMT. .do end
.if &e'&$SWecp eq 1 .do begin
.note ecp
set default calling convention to __pascal
:optref refid='SWecp'.
.do end
.if &e'&$SWecr eq 1 .do begin
.note ecr
set default calling convention to __fortran
:optref refid='SWecr'.
.do end
.if &e'&$SWecs eq 1 .do begin
.note ecs
set default calling convention to __syscall
:optref refid='SWecs'.
.do end
.if &e'&$SWecw eq 1 .do begin
.note ecw
set default calling convention to __watcall (default)
:optref refid='SWecw'.
.do end
.if &e'&$SWei eq 1 .do begin
.note ei
force enum base type to use at least an int
:optref refid='SWei'.
.do end
.if &e'&$SWem eq 1 .do begin
.note em
force enum base type to use minimum
:optref refid='SWem'.
.do end
.if &e'&$SWj eq 1 .do begin
.note j
change char default from unsigned to signed
:optref refid='SWj'.
.do end
.if &e'&$SWri eq 1 .do begin
.note ri
return chars and shorts as ints
:optref refid='SWri'.
.do end
.if &e'&$SWxr eq 1 .do begin
.note xr
(C++ only)
enable RTTI
:optref refid='SWxr'.
.do end
.if &e'&$SWzc eq 1 .do begin
.note zc
place literal strings in the code segment
:optref refid='SWzc'.
.do end
.if &e'&$SWzp eq 1 .do begin
.note zp{1,2,4,8,16}
pack structure members
:optref refid='SWzp'.
.do end
.if &e'&$SWzps eq 1 .do begin
.note zps
&AXPonly.
always align structs on qword boundaries
:optref refid='SWzps'.
.do end
.if &e'&$SWzpw eq 1 .do begin
.note zpw
output warning when padding is added in a struct/class
:optref refid='SWzpw'.
.do end
.if &e'&$SWzt eq 1 .do begin
.note zt<number>
set data threshold
:optref refid='SWzt'.
.do end
.if &e'&$SWzv eq 1 .do begin
.note zv
(C++ only)
enable virtual function removal optimization
:optref refid='SWzv'.
.do end
.endnote
.*
.section 80x86 Floating Point
.*
.begnote $compact $setptnt 10
.ix 'options' 'floating point'
.notehd1 Option:
.notehd2 Description:
.if &e'&$SWfpc eq 1 .do begin
.note fpc
calls to floating-point library
:optref refid='SWfpc'.
.do end
.if &e'&$SWfpi eq 1 .do begin
.note fpi
in-line 80x87 instructions with emulation
:optref refid='SWfpi'.
.do end
.if &e'&$SWfpi87 eq 1 .do begin
.note fpi87
in-line 80x87 instructions
:optref refid='SWfpi87'.
.do end
.if &e'&$SWfp2 eq 1 .do begin
.note fp2
generate floating-point for 80x87
:optref refid='SWfp2'.
.do end
.if &e'&$SWfp3 eq 1 .do begin
.note fp3
generate floating-point for 387
:optref refid='SWfp3'.
.do end
.if &e'&$SWfp5 eq 1 .do begin
.note fp5
optimize floating-point for Pentium
:optref refid='SWfp5'.
.do end
.if &e'&$SWfp6 eq 1 .do begin
.note fp6
optimize floating-point for Pentium Pro
:optref refid='SWfp6'.
.do end
.if &e'&$SWfpd eq 1 .do begin
.note fpd
enable generation of Pentium FDIV bug check code
:optref refid='SWfpd'.
.do end
.if &e'&$SW7 eq 1 .do begin
.note 7
in-line 80x87 instructions
:optref refid='SW7'.
.do end
.endnote
.*
.section Segments/Modules
.*
.begnote $compact $setptnt 10
.ix 'options' 'segments/modules'
.notehd1 Option:
.notehd2 Description:
.if &e'&$SWg eq 1 .do begin
.note g=<codegroup>
set code group name
:optref refid='SWg'.
.do end
.if &e'&$SWnc eq 1 .do begin
.note nc=<name>
set code class name
:optref refid='SWnc'.
.do end
.if &e'&$SWnd eq 1 .do begin
.note nd=<name>
set data segment name
:optref refid='SWnd'.
.do end
.if &e'&$SWnm eq 1 .do begin
.note nm=<name>
set module name
:optref refid='SWnm'.
.do end
.if &e'&$SWnt eq 1 .do begin
.note nt=<name>
set name of text segment
:optref refid='SWnt'.
.do end
.if &e'&$SWzm eq 1 .do begin
.note zm
place each function in separate segment (near functions not allowed)
:optref refid='SWzm'.
.do end
.if &e'&$SWzmf eq 1 .do begin
.note zmf
(C++ only)
place each function in separate segment (near functions allowed)
:optref refid='SWzmf'.
.do end
.endnote
.*
.section 80x86 Run-time Conventions
.*
.begnote $compact $setptnt 10
.ix 'options' 'run-time conventions'
.notehd1 Option:
.notehd2 Description:
.if &e'&$SW0 eq 1 .do begin
.note 0
&286only.
8088 and 8086 instructions
:optref refid='SW0'.
.do end
.if &e'&$SW1 eq 1 .do begin
.note 1
&286only.
188 and 186 instructions
:optref refid='SW1'.
.do end
.if &e'&$SW2 eq 1 .do begin
.note 2
&286only.
286 instructions
:optref refid='SW2'.
.do end
.if &e'&$SW3 eq 1 .do begin
.note 3
&286only.
386 instructions
:optref refid='SW3'.
.do end
.if &e'&$SW4 eq 1 .do begin
.note 4
&286only.
486 instructions
:optref refid='SW4'.
.do end
.if &e'&$SW5 eq 1 .do begin
.note 5
&286only.
Pentium instructions
:optref refid='SW5'.
.do end
.if &e'&$SW6 eq 1 .do begin
.note 6
&286only.
Pentium Pro instructions
:optref refid='SW6'.
.do end
.if &e'&$SW3RS eq 1 .do begin
.note 3r
&386only.
386 register calling conventions
:optref refid='SW3RS'.
.note 3s
&386only.
386 stack calling conventions
:optref refid='SW3RS'.
.do end
.if &e'&$SW4RS eq 1 .do begin
.note 4r
&386only.
486 register calling conventions
:optref refid='SW4RS'.
.note 4s
&386only.
486 stack calling conventions
:optref refid='SW4RS'.
.do end
.if &e'&$SW5RS eq 1 .do begin
.note 5r
&386only.
Pentium register calling conventions
:optref refid='SW5RS'.
.note 5s
&386only.
Pentium stack calling conventions
:optref refid='SW5RS'.
.do end
.if &e'&$SW6RS eq 1 .do begin
.note 6r
&386only.
Pentium Pro register calling conventions
:optref refid='SW6RS'.
.note 6s
&386only.
Pentium Pro stack calling conventions
:optref refid='SW6RS'.
.do end
.if &e'&$SWmf eq 1 .do begin
.note m{f,s,m,c,l,h}
memory model (Flat,Small,Medium,Compact,Large,Huge)
:optref refid='SWmf'.
.do end
.if &e'&$SWzdfp eq 1 .do begin
.note zdf
DS floats i.e. not fixed to DGROUP
:optref refid='SWzdfp'.
.do end
.if &e'&$SWzdfp eq 1 .do begin
.note zdp
DS is pegged to DGROUP
:optref refid='SWzdfp'.
.do end
.if &e'&$SWzdl eq 1 .do begin
.note zdl
Load DS directly from DGROUP
:optref refid='SWzdl'.
.do end
.if &e'&$SWzffp eq 1 .do begin
.note zff
FS floats i.e. not fixed to a segment
:optref refid='SWzffp'.
.note zfp
FS is pegged to a segment
:optref refid='SWzffp'.
.do end
.if &e'&$SWzfp eq 1 .do begin
.note zfp
Generate FWAIT instructions on 386 and later
:optref refid='SWzfp'.
.do end
.if &e'&$SWzgfp eq 1 .do begin
.note zgf
GS floats i.e. not fixed to a segment
:optref refid='SWzgfp'.
.note zgp
GS is pegged to a segment
:optref refid='SWzgfp'.
.do end
.if &e'&$SWzri eq 1 .do begin
.note zri
Inline floating point rounding code
:optref refid='SWzri'.
.do end
.if &e'&$SWzro eq 1 .do begin
.note zro
Omit floating point rounding code
:optref refid='SWzro'.
.do end
.if &e'&$SWzu eq 1 .do begin
.note zu
SS != DGROUP
:optref refid='SWzu'.
.do end
.endnote
.*
.section Optimizations
.*
.begnote $compact $setptnt 10
.ix 'options' 'optimizations'
.notehd1 Option:
.notehd2 Description:
.if &e'&$SWoa eq 1 .do begin
.note oa
relax aliasing constraints
:optref refid='SWoa'.
.do end
.if &e'&$SWob eq 1 .do begin
.note ob
enable branch prediction
:optref refid='SWob'.
.do end
.if &e'&$SWoc eq 1 .do begin
.note oc
disable <call followed by return> to <jump> optimization
:optref refid='SWoc'.
.do end
.if &e'&$SWod eq 1 .do begin
.note od
disable all optimizations
:optref refid='SWod'.
.do end
.if &e'&$SWoe eq 1 .do begin
.note oe[=<num>]
expand user functions in-line. <num> controls max size
:optref refid='SWoe'.
.do end
.if &e'&$SWoh eq 1 .do begin
.note oh
enable repeated optimizations (longer compiles)
:optref refid='SWoh'.
.do end
.if &e'&$SWoi eq 1 .do begin
.note oi
expand intrinsic functions in-line
:optref refid='SWoi'.
.do end
.if &e'&$SWoipls eq 1 .do begin
.note oi+
(C++ only)
expand intrinsic functions in-line and set inline_depth to maximum
:optref refid='SWoipls'.
.do end
.if &e'&$SWok eq 1 .do begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -