* Make Win64 SEH support enabled by default. If necessary to disable, compiler should be cycled with OPT=-dDISABLE_WIN64_SEH. Mantis #24012.

git-svn-id: trunk@23732 -
This commit is contained in:
sergei 2013-03-08 16:58:05 +00:00
parent b9a33b2b0a
commit 2caa05ccd1
5 changed files with 12 additions and 12 deletions

View File

@ -105,9 +105,9 @@ implementation
SysUtils, SysUtils,
cutils,cfileutl,systems, cutils,cfileutl,systems,
fmodule,verbose, fmodule,verbose,
{$ifdef TEST_WIN64_SEH} {$ifndef DISABLE_WIN64_SEH}
itcpugas, itcpugas,
{$endif TEST_WIN64_SEH} {$endif DISABLE_WIN64_SEH}
{$ifdef m68k} {$ifdef m68k}
cpuinfo,aasmcpu, cpuinfo,aasmcpu,
{$endif m68k} {$endif m68k}
@ -1438,7 +1438,7 @@ implementation
ait_seh_directive : ait_seh_directive :
begin begin
{$ifdef TEST_WIN64_SEH} {$ifndef DISABLE_WIN64_SEH}
AsmWrite(sehdirectivestr[tai_seh_directive(hp).kind]); AsmWrite(sehdirectivestr[tai_seh_directive(hp).kind]);
case tai_seh_directive(hp).datatype of case tai_seh_directive(hp).datatype of
sd_none:; sd_none:;
@ -1459,7 +1459,7 @@ implementation
tostr(tai_seh_directive(hp).data.offset)); tostr(tai_seh_directive(hp).data.offset));
end; end;
AsmLn; AsmLn;
{$endif TEST_WIN64_SEH} {$endif DISABLE_WIN64_SEH}
end; end;
ait_varloc: ait_varloc:
begin begin

View File

@ -1519,10 +1519,10 @@ Implementation
ait_cutobject : ait_cutobject :
if SmartAsm then if SmartAsm then
break; break;
{$ifdef TEST_WIN64_SEH} {$ifndef DISABLE_WIN64_SEH}
ait_seh_directive : ait_seh_directive :
tai_seh_directive(hp).generate_code(objdata); tai_seh_directive(hp).generate_code(objdata);
{$endif TEST_WIN64_SEH} {$endif DISABLE_WIN64_SEH}
end; end;
hp:=Tai(hp.next); hp:=Tai(hp.next);
end; end;

View File

@ -3325,10 +3325,10 @@ if (target_info.abi = abi_eabihf) then
def_system_macro('FPC_USE_TLS_DIRECTORY'); def_system_macro('FPC_USE_TLS_DIRECTORY');
{$endif not DISABLE_TLS_DIRECTORY} {$endif not DISABLE_TLS_DIRECTORY}
{$ifdef TEST_WIN64_SEH} {$ifndef DISABLE_WIN64_SEH}
if target_info.system=system_x86_64_win64 then if target_info.system=system_x86_64_win64 then
def_system_macro('FPC_USE_WIN64_SEH'); def_system_macro('FPC_USE_WIN64_SEH');
{$endif TEST_WIN64_SEH} {$endif DISABLE_WIN64_SEH}
{$ifdef ARM} {$ifdef ARM}
{ define FPC_DOUBLE_HILO_SWAPPED if needed to properly handle doubles in RTL } { define FPC_DOUBLE_HILO_SWAPPED if needed to properly handle doubles in RTL }

View File

@ -972,9 +972,9 @@ implementation
((flags*([pi_has_assembler_block,pi_is_assembler, ((flags*([pi_has_assembler_block,pi_is_assembler,
pi_has_stackparameter,pi_needs_stackframe]+ pi_has_stackparameter,pi_needs_stackframe]+
exception_flags[(target_info.cpu=cpu_i386) exception_flags[(target_info.cpu=cpu_i386)
{$ifdef TEST_WIN64_SEH} {$ifndef DISABLE_WIN64_SEH}
or (target_info.system=system_x86_64_win64) or (target_info.system=system_x86_64_win64)
{$endif TEST_WIN64_SEH} {$endif DISABLE_WIN64_SEH}
]))=[]) ]))=[])
) )
then then

View File

@ -54,9 +54,9 @@ unit cpunode;
nx64cal, nx64cal,
nx64cnv, nx64cnv,
nx64mat, nx64mat,
{$ifdef TEST_WIN64_SEH} {$ifndef DISABLE_WIN64_SEH}
nx64flw, nx64flw,
{$endif TEST_WIN64_SEH} {$endif DISABLE_WIN64_SEH}
nx64inl nx64inl
; ;