* cs_generate_stackframes (w+/-) should only apply to normal routines,

not to pure assembler routines

git-svn-id: trunk@6159 -
This commit is contained in:
Jonas Maebe 2007-01-24 10:08:17 +00:00
parent 11528c9da6
commit 1218322f8c
2 changed files with 4 additions and 6 deletions

View File

@ -776,7 +776,6 @@ implementation
or
- Delphi mode
- assembler directive
- no cs_generate_stackframes in localswitches
- no pushes are used/esp modifications, could be:
* outgoing parameters on the stack
* incoming parameters on the stack
@ -784,10 +783,10 @@ implementation
- no local variables
}
if ((po_assembler in procdef.procoptions) and
not(cs_generate_stackframes in current_settings.localswitches) and
(m_delphi in current_settings.modeswitches) and
(tabstractlocalsymtable(procdef.localst).count_locals = 0)) or
((cs_opt_stackframe in current_settings.optimizerswitches) and
not(cs_generate_stackframes in current_settings.localswitches) and
not(po_assembler in procdef.procoptions) and
((flags*[pi_has_assembler_block,pi_uses_exceptions,pi_is_assembler,
pi_needs_implicit_finally,pi_has_implicit_finally,pi_has_stackparameter,

View File

@ -1,17 +1,16 @@
{ %cpu=i386 }
{ %target=win32,linux,freebsd }
{$w+}
{$ifdef fpc}
{$mode delphi}
{$endif}
{ should generate a stack frame because of w+ above }
{$w+}
{ should not generate a stack frame in spite of w+ above }
function testje(l1,l2,l3: longint): longint;
asm
mov eax, 30000
leave
ret
end;