* do not use push/pop based exception reason handling on i386 if dwarf based exceptions are used

git-svn-id: branches/debug_eh@41282 -
This commit is contained in:
florian 2019-02-10 17:49:40 +00:00
parent a0831b058a
commit dfe37de0a1

View File

@ -228,7 +228,7 @@ implementation
procedure thlcgcpu.g_exception_reason_save(list: TAsmList; fromsize, tosize: tdef; reg: tregister; const href: treference);
begin
if not paramanager.use_fixed_stack then
if not(paramanager.use_fixed_stack) and not(tf_use_psabieh in target_info.flags) then
list.concat(Taicpu.op_reg(A_PUSH,tcgsize2opsize[def_cgsize(tosize)],reg))
else
inherited
@ -237,7 +237,7 @@ implementation
procedure thlcgcpu.g_exception_reason_save_const(list: TAsmList; size: tdef; a: tcgint; const href: treference);
begin
if not paramanager.use_fixed_stack then
if not(paramanager.use_fixed_stack) and not(tf_use_psabieh in target_info.flags) then
list.concat(Taicpu.op_const(A_PUSH,tcgsize2opsize[def_cgsize(size)],a))
else
inherited;
@ -246,7 +246,7 @@ implementation
procedure thlcgcpu.g_exception_reason_load(list: TAsmList; fromsize, tosize: tdef; const href: treference; reg: tregister);
begin
if not paramanager.use_fixed_stack then
if not(paramanager.use_fixed_stack) and not(tf_use_psabieh in target_info.flags) then
list.concat(Taicpu.op_reg(A_POP,tcgsize2opsize[def_cgsize(tosize)],reg))
else
inherited;
@ -255,7 +255,7 @@ implementation
procedure thlcgcpu.g_exception_reason_discard(list: TAsmList; size: tdef; href: treference);
begin
if not paramanager.use_fixed_stack then
if not(paramanager.use_fixed_stack) and not(tf_use_psabieh in target_info.flags) then
begin
getcpuregister(list,NR_FUNCTION_RESULT_REG);
list.concat(Taicpu.op_reg(A_POP,tcgsize2opsize[def_cgsize(size)],NR_FUNCTION_RESULT_REG));