Browse Source

* i386: with a fixed stack, exception handling does not need a frame pointer

git-svn-id: trunk@43218 -
florian 5 years ago
parent
commit
af8783e8d2
1 changed files with 2 additions and 2 deletions
  1. 2 2
      compiler/psub.pas

+ 2 - 2
compiler/psub.pas

@@ -1083,7 +1083,7 @@ implementation
                   ) and
                   ) and
                 ((flags*([pi_has_assembler_block,pi_is_assembler,
                 ((flags*([pi_has_assembler_block,pi_is_assembler,
                         pi_needs_stackframe]+
                         pi_needs_stackframe]+
-                        exception_flags[(target_info.cpu=cpu_i386)
+                        exception_flags[((target_info.cpu=cpu_i386) and (not paramanager.use_fixed_stack))
 {$ifndef DISABLE_WIN64_SEH}
 {$ifndef DISABLE_WIN64_SEH}
                         or (target_info.system=system_x86_64_win64)
                         or (target_info.system=system_x86_64_win64)
 {$endif DISABLE_WIN64_SEH}
 {$endif DISABLE_WIN64_SEH}
@@ -1100,7 +1100,7 @@ implementation
                 generate_parameter_info;
                 generate_parameter_info;
 
 
                 if not(procdef.stack_tainting_parameter(calleeside)) and
                 if not(procdef.stack_tainting_parameter(calleeside)) and
-                   not(has_assembler_child) and (para_stack_size=0) then
+                   not(has_assembler_child) {and (para_stack_size=0)} then
                   begin
                   begin
                     { Only need to set the framepointer }
                     { Only need to set the framepointer }
                     framepointer:=NR_STACK_POINTER_REG;
                     framepointer:=NR_STACK_POINTER_REG;