From 53d11b9a066a30ed7aa9e47900abea79433df70c Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Wed, 21 May 2008 15:11:37 +0000 Subject: [PATCH] * fixed para locations at the calleeside for nostackframe assembler routines git-svn-id: trunk@11023 - --- compiler/i386/cpupara.pas | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/i386/cpupara.pas b/compiler/i386/cpupara.pas index fe06933c04..8d2b2bd2e3 100644 --- a/compiler/i386/cpupara.pas +++ b/compiler/i386/cpupara.pas @@ -471,14 +471,19 @@ unit cpupara; l:=paralen; paraloc^.size:=int_cgsize(l); end; - if side=callerside then + if (side=callerside) or + (po_nostackframe in p.procoptions) then paraloc^.reference.index:=NR_STACK_POINTER_REG - else + else paraloc^.reference.index:=NR_FRAME_POINTER_REG; varalign:=used_align(size_2_align(l),paraalign,paraalign); paraloc^.reference.offset:=parasize; if side=calleeside then - inc(paraloc^.reference.offset,target_info.first_parm_offset); + if not(po_nostackframe in p.procoptions) then + inc(paraloc^.reference.offset,target_info.first_parm_offset) + else + { return addres } + inc(paraloc^.reference.offset,4); parasize:=align(parasize+l,varalign); dec(paralen,l); end;