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;