From d70a880f3360f7e587568120654bf9ada8e0498b Mon Sep 17 00:00:00 2001
From: sergei <gorelkin@nanoreflex.ru>
Date: Sat, 28 Dec 2013 09:23:10 +0000
Subject: [PATCH] * SPARC: properly justify parameters on stack with size less
 than 4, fixes failure on tests/cg/tcalext5.pp

git-svn-id: trunk@26294 -
---
 compiler/sparc/cpupara.pas | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/compiler/sparc/cpupara.pas b/compiler/sparc/cpupara.pas
index 26c9bc28af..4837866b25 100644
--- a/compiler/sparc/cpupara.pas
+++ b/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;