mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-04 08:02:17 +02:00
* x86_64-win64: SEH finalization procedures have frame pointer set to RBP but since r25389 they save registers relative to RSP. Fixed offsets for .seh_savereg/.seh_savexmm directives.
* In epilogue, deallocate current_procinfo.framepointer, not RBP. git-svn-id: trunk@25414 -
This commit is contained in:
parent
2c49af3191
commit
da2887a4ec
@ -269,7 +269,7 @@ unit cgcpu;
|
||||
|
||||
{ We need to record postive offsets from RSP; if registers are saved
|
||||
at negative offsets from RBP we need to account for it. }
|
||||
if current_procinfo.framepointer=NR_FRAME_POINTER_REG then
|
||||
if (not use_push) then
|
||||
frame_offset:=current_procinfo.final_localsize
|
||||
else
|
||||
frame_offset:=0;
|
||||
@ -377,7 +377,7 @@ unit cgcpu;
|
||||
end
|
||||
else
|
||||
list.concat(Taicpu.op_none(A_LEAVE,S_NO));
|
||||
list.concat(tai_regalloc.dealloc(NR_FRAME_POINTER_REG,nil));
|
||||
list.concat(tai_regalloc.dealloc(current_procinfo.framepointer,nil));
|
||||
end;
|
||||
|
||||
list.concat(Taicpu.Op_none(A_RET,S_NO));
|
||||
|
Loading…
Reference in New Issue
Block a user