浏览代码

* correctly handle parameters on the stack with OS_NO

git-svn-id: trunk@30756 -
florian 10 年之前
父节点
当前提交
d1e48b0f71
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      compiler/avr/cpupara.pas

+ 2 - 1
compiler/avr/cpupara.pas

@@ -343,6 +343,7 @@ unit cpupara;
                         else
                           { parameters are always passed completely in registers or in memory on avr }
                           internalerror(2015041002);
+                        dec(paralen,tcgsize2size[paraloc^.size]);
                       end;
                     LOC_REFERENCE:
                       begin
@@ -360,6 +361,7 @@ unit cpupara;
                              paraloc^.reference.offset:=stack_offset;
                              inc(stack_offset,hp.vardef.size);
                           end;
+                        dec(paralen,hp.vardef.size);
                       end;
                     else
                       internalerror(2002071002);
@@ -372,7 +374,6 @@ unit cpupara;
                          inc(paraloc^.reference.offset,2);
                        end;
                    end;
-                 dec(paralen,tcgsize2size[paraloc^.size]);
                  firstparaloc:=false;
                end;
           end;