mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-12 09:50:01 +01:00
* 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:
parent
b9a33b2b0a
commit
2caa05ccd1
@ -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
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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 }
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user