mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-09 21:28:46 +02:00
* 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:
parent
a0831b058a
commit
dfe37de0a1
@ -228,7 +228,7 @@ implementation
|
|||||||
|
|
||||||
procedure thlcgcpu.g_exception_reason_save(list: TAsmList; fromsize, tosize: tdef; reg: tregister; const href: treference);
|
procedure thlcgcpu.g_exception_reason_save(list: TAsmList; fromsize, tosize: tdef; reg: tregister; const href: treference);
|
||||||
begin
|
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))
|
list.concat(Taicpu.op_reg(A_PUSH,tcgsize2opsize[def_cgsize(tosize)],reg))
|
||||||
else
|
else
|
||||||
inherited
|
inherited
|
||||||
@ -237,7 +237,7 @@ implementation
|
|||||||
|
|
||||||
procedure thlcgcpu.g_exception_reason_save_const(list: TAsmList; size: tdef; a: tcgint; const href: treference);
|
procedure thlcgcpu.g_exception_reason_save_const(list: TAsmList; size: tdef; a: tcgint; const href: treference);
|
||||||
begin
|
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))
|
list.concat(Taicpu.op_const(A_PUSH,tcgsize2opsize[def_cgsize(size)],a))
|
||||||
else
|
else
|
||||||
inherited;
|
inherited;
|
||||||
@ -246,7 +246,7 @@ implementation
|
|||||||
|
|
||||||
procedure thlcgcpu.g_exception_reason_load(list: TAsmList; fromsize, tosize: tdef; const href: treference; reg: tregister);
|
procedure thlcgcpu.g_exception_reason_load(list: TAsmList; fromsize, tosize: tdef; const href: treference; reg: tregister);
|
||||||
begin
|
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))
|
list.concat(Taicpu.op_reg(A_POP,tcgsize2opsize[def_cgsize(tosize)],reg))
|
||||||
else
|
else
|
||||||
inherited;
|
inherited;
|
||||||
@ -255,7 +255,7 @@ implementation
|
|||||||
|
|
||||||
procedure thlcgcpu.g_exception_reason_discard(list: TAsmList; size: tdef; href: treference);
|
procedure thlcgcpu.g_exception_reason_discard(list: TAsmList; size: tdef; href: treference);
|
||||||
begin
|
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
|
begin
|
||||||
getcpuregister(list,NR_FUNCTION_RESULT_REG);
|
getcpuregister(list,NR_FUNCTION_RESULT_REG);
|
||||||
list.concat(Taicpu.op_reg(A_POP,tcgsize2opsize[def_cgsize(size)],NR_FUNCTION_RESULT_REG));
|
list.concat(Taicpu.op_reg(A_POP,tcgsize2opsize[def_cgsize(size)],NR_FUNCTION_RESULT_REG));
|
||||||
|
Loading…
Reference in New Issue
Block a user