mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-10 11:32:46 +02:00
* for ARM CPU records must be aligned in stack depending of record size to prevent misaligned error when the record is passed as parameter in registers. It fixes tcalext* tests for ARM.
git-svn-id: trunk@7749 -
This commit is contained in:
parent
be65e77702
commit
206d027e9e
@ -117,7 +117,8 @@ implementation
|
||||
uses
|
||||
cutils,
|
||||
systems,verbose,
|
||||
procinfo
|
||||
procinfo,
|
||||
symconst
|
||||
;
|
||||
|
||||
|
||||
@ -642,7 +643,17 @@ implementation
|
||||
|
||||
procedure ttgobj.getlocal(list: TAsmList; size : longint; alignment : shortint; def:tdef;var ref : treference);
|
||||
begin
|
||||
{$ifdef arm}
|
||||
{ for ARM CPU records must be aligned in stack depending of record size }
|
||||
{ to prevent misaligned error when the record is passed as parameter in registers }
|
||||
if def.typ=recorddef then
|
||||
if size>2 then
|
||||
alignment:=current_settings.alignment.localalignmax
|
||||
else
|
||||
alignment:=size;
|
||||
{$else}
|
||||
alignment:=used_align(alignment,current_settings.alignment.localalignmin,current_settings.alignment.localalignmax);
|
||||
{$endif arm}
|
||||
{ can't use reference_reset_base, because that will let tgobj depend
|
||||
on cgobj (PFV) }
|
||||
fillchar(ref,sizeof(ref),0);
|
||||
|
Loading…
Reference in New Issue
Block a user