* improved CFI

git-svn-id: branches/debug_eh@41356 -
This commit is contained in:
florian 2019-02-17 20:26:32 +00:00
parent 5587c878e6
commit 3567d01ee4
2 changed files with 5 additions and 1 deletions

View File

@ -323,6 +323,7 @@ unit cgcpu;
internal_restore_regs(list,true);
if (current_procinfo.procdef.proctypeoption=potype_exceptfilter) then
list.concat(Taicpu.op_reg(A_POP,tcgsize2opsize[OS_ADDR],NR_FRAME_POINTER_REG));
current_asmdata.asmcfi.cfa_def_cfa_offset(list,sizeof(pint));
end
else
begin

View File

@ -3405,7 +3405,10 @@ unit cgx86;
inc(regsize,sizeof(aint));
hreg:=newreg(R_INTREGISTER,regs_to_save_int[r],R_SUBWHOLE);
list.concat(Taicpu.Op_reg(A_PUSH,tcgsize2opsize[OS_ADDR],hreg));
current_asmdata.asmcfi.cfa_offset(list,hreg,-(regsize+localsize));
if current_procinfo.framepointer<>NR_STACK_POINTER_REG then
current_asmdata.asmcfi.cfa_offset(list,hreg,-(regsize+sizeof(pint)*2+localsize))
else
current_asmdata.asmcfi.cfa_offset(list,hreg,-(regsize+sizeof(pint)+localsize));
end;
end;