mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 20:09:25 +02:00
* cover more cases in AlignedToQWord
git-svn-id: trunk@22060 -
This commit is contained in:
parent
db7e029574
commit
371ef7bada
@ -189,12 +189,20 @@ Implementation
|
||||
function AlignedToQWord(const ref : treference) : boolean;
|
||||
begin
|
||||
{ (safe) heuristics to ensure alignment }
|
||||
result:=(ref.offset>=0) and
|
||||
((ref.offset mod 8)=0) and
|
||||
({(taicpu(p).oper[1]^.ref^.base=current_procinfo.framepointer) or
|
||||
(taicpu(p).oper[1]^.ref^.index=current_procinfo.framepointer) or }
|
||||
(ref.base=NR_R13) or
|
||||
(ref.index=NR_R13))
|
||||
result:=(target_info.abi in [abi_eabi,abi_armeb,abi_eabihf]) and
|
||||
(((ref.offset>=0) and
|
||||
((ref.offset mod 8)=0) and
|
||||
((ref.base=NR_R13) or
|
||||
(ref.index=NR_R13))
|
||||
) or
|
||||
((ref.offset<=0) and
|
||||
{ when using NR_R11, it has always a value of <qword align>+4 }
|
||||
((abs(ref.offset+4) mod 8)=0) and
|
||||
(current_procinfo.framepointer=NR_R11) and
|
||||
((ref.base=NR_R11) or
|
||||
(ref.index=NR_R11))
|
||||
)
|
||||
);
|
||||
end;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user