瀏覽代碼

* SPARC: properly justify parameters on stack with size less than 4, fixes failure on tests/cg/tcalext5.pp

git-svn-id: trunk@26294 -
sergei 11 年之前
父節點
當前提交
d70a880f33
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      compiler/sparc/cpupara.pas

+ 6 - 0
compiler/sparc/cpupara.pas

@@ -304,6 +304,12 @@ implementation
                     else
                       paraloc^.reference.index:=NR_FRAME_POINTER_REG;
                     paraloc^.reference.offset:=target_info.first_parm_offset+parasize;
+
+                    if (target_info.endian=endian_big) and
+                       (paralen<tcgsize2size[OS_INT]) and
+                       (paradef.typ<>recorddef) then
+                      inc(paraloc^.reference.offset,4-paralen);
+
                     { Parameters are aligned at 4 bytes }
                     inc(parasize,align(tcgsize2size[paraloc^.size],sizeof(pint)));
                   end;