Quellcode durchsuchen

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

git-svn-id: trunk@26294 -
sergei vor 11 Jahren
Ursprung
Commit
d70a880f33
1 geänderte Dateien mit 6 neuen und 0 gelöschten Zeilen
  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;