mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-19 20:12:11 +02:00
* 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:
parent
11528c9da6
commit
1218322f8c
@ -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,
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user