|
@@ -239,7 +239,7 @@ const
|
|
|
opt_allowmmxoperations = 'Allow MMX operations';
|
|
opt_allowmmxoperations = 'Allow MMX operations';
|
|
|
|
|
|
|
|
opt_mode_freepascal = 'Free Pascal dialect';
|
|
opt_mode_freepascal = 'Free Pascal dialect';
|
|
|
- opt_mode_objectpascal = 'Object Pascal extension on';
|
|
|
|
|
|
|
+ opt_mode_objectpascal = 'Object Pascal extension';
|
|
|
opt_mode_turbopascal = 'Turbo Pascal compatible';
|
|
opt_mode_turbopascal = 'Turbo Pascal compatible';
|
|
|
opt_mode_delphi = 'Delphi compatible';
|
|
opt_mode_delphi = 'Delphi compatible';
|
|
|
opt_mode_delphiunicode = 'Delphi Unicode';
|
|
opt_mode_delphiunicode = 'Delphi Unicode';
|
|
@@ -269,9 +269,11 @@ const
|
|
|
opt_generatesmallercode = 'G~e~nerate smaller code';
|
|
opt_generatesmallercode = 'G~e~nerate smaller code';
|
|
|
opt_useregistervariables = 'Use regis~t~er-variables';
|
|
opt_useregistervariables = 'Use regis~t~er-variables';
|
|
|
opt_uncertainoptimizations = '~U~ncertain optimizations';
|
|
opt_uncertainoptimizations = '~U~ncertain optimizations';
|
|
|
|
|
+ opt_disableoptimizations = '~D~isable optimizations';
|
|
|
opt_level1optimizations = 'Level ~1~ optimizations';
|
|
opt_level1optimizations = 'Level ~1~ optimizations';
|
|
|
opt_level2optimizations = 'Level ~2~ optimizations';
|
|
opt_level2optimizations = 'Level ~2~ optimizations';
|
|
|
opt_level3optimizations = 'Level ~3~ optimizations';
|
|
opt_level3optimizations = 'Level ~3~ optimizations';
|
|
|
|
|
+ opt_level4optimizations = 'Level ~4~ optimizations';
|
|
|
{ optimization processor target }
|
|
{ optimization processor target }
|
|
|
opt_i386486 = 'i~3~86/i486';
|
|
opt_i386486 = 'i~3~86/i486';
|
|
|
opt_pentium = 'P~e~ntium (tm)';
|
|
opt_pentium = 'P~e~ntium (tm)';
|
|
@@ -1010,11 +1012,15 @@ var
|
|
|
s : string;
|
|
s : string;
|
|
|
res : boolean;
|
|
res : boolean;
|
|
|
OldSwitchesMode,i : TSwitchMode;
|
|
OldSwitchesMode,i : TSwitchMode;
|
|
|
|
|
+ oFileMode : byte;
|
|
|
begin
|
|
begin
|
|
|
|
|
+ oFileMode:=FileMode; {save file open mode}
|
|
|
|
|
+ FileMode:=0; {Reset will open file in read only mode }
|
|
|
assign(CfgFile,fn);
|
|
assign(CfgFile,fn);
|
|
|
{$I-}
|
|
{$I-}
|
|
|
reset(CfgFile);
|
|
reset(CfgFile);
|
|
|
{$I+}
|
|
{$I+}
|
|
|
|
|
+ FileMode:=oFileMode; {restore file open mode}
|
|
|
if ioresult<>0 then
|
|
if ioresult<>0 then
|
|
|
begin
|
|
begin
|
|
|
SetDefaultSwitches;
|
|
SetDefaultSwitches;
|
|
@@ -1061,7 +1067,12 @@ begin
|
|
|
'T' : res:=TargetSwitches^.ReadItemsCfg(s);
|
|
'T' : res:=TargetSwitches^.ReadItemsCfg(s);
|
|
|
'v' : res:=VerboseSwitches^.ReadItemsCfg(s);
|
|
'v' : res:=VerboseSwitches^.ReadItemsCfg(s);
|
|
|
'X' : begin
|
|
'X' : begin
|
|
|
- res:=LibLinkerSwitches^.ReadItemsCfg(s);
|
|
|
|
|
|
|
+ { This is workaround. ReadItemsCfg do UpCase to S
|
|
|
|
|
+ and our -Xs got lost because there are -XS as well. M. }
|
|
|
|
|
+ if (s = 's') then { -Xs defined }
|
|
|
|
|
+ res:=OtherLinkerSwitches^.ReadItemsCfg(s);
|
|
|
|
|
+ if not res then
|
|
|
|
|
+ res:=LibLinkerSwitches^.ReadItemsCfg(s);
|
|
|
if not res then
|
|
if not res then
|
|
|
res:=OtherLinkerSwitches^.ReadItemsCfg(s);
|
|
res:=OtherLinkerSwitches^.ReadItemsCfg(s);
|
|
|
end;
|
|
end;
|
|
@@ -1264,12 +1275,16 @@ begin
|
|
|
with OptimizationSwitches^ do
|
|
with OptimizationSwitches^ do
|
|
|
begin
|
|
begin
|
|
|
AddBooleanItem(opt_generatesmallercode,'s',idNone);
|
|
AddBooleanItem(opt_generatesmallercode,'s',idNone);
|
|
|
|
|
+{$if defined(I386) or defined(x86_64) or defined(i8086)}
|
|
|
{$ifdef I386}
|
|
{$ifdef I386}
|
|
|
AddBooleanItem(opt_useregistervariables,'oregvar',idNone);
|
|
AddBooleanItem(opt_useregistervariables,'oregvar',idNone);
|
|
|
AddBooleanItem(opt_uncertainoptimizations,'ouncertain',idNone);
|
|
AddBooleanItem(opt_uncertainoptimizations,'ouncertain',idNone);
|
|
|
|
|
+{$endif}
|
|
|
|
|
+ AddBooleanItem(opt_disableoptimizations,'-',idNone);
|
|
|
AddBooleanItem(opt_level1optimizations,'1',idNone);
|
|
AddBooleanItem(opt_level1optimizations,'1',idNone);
|
|
|
AddBooleanItem(opt_level2optimizations,'2',idNone);
|
|
AddBooleanItem(opt_level2optimizations,'2',idNone);
|
|
|
AddBooleanItem(opt_level3optimizations,'3',idNone);
|
|
AddBooleanItem(opt_level3optimizations,'3',idNone);
|
|
|
|
|
+ AddBooleanItem(opt_level4optimizations,'4',idNone);
|
|
|
{$else not I386}
|
|
{$else not I386}
|
|
|
{$ifdef m68k}
|
|
{$ifdef m68k}
|
|
|
AddBooleanItem(opt_level1optimizations,'a',idNone);
|
|
AddBooleanItem(opt_level1optimizations,'a',idNone);
|