* don't split indirect calls while inserting pc relative constants

This commit is contained in:
florian 2005-02-15 21:24:40 +00:00
parent f3b711d3bf
commit f3df72d1b1

View File

@ -487,7 +487,18 @@ implementation
inc(curpos);
end;
if (curpos-lastpos)>1020 then
if ((curpos-lastpos)>1016) and
(
{ don't splitt loads of pc to lr and the following move }
not(
(curtai.typ=ait_instruction) and
(taicpu(curtai).opcode=A_MOV) and
(taicpu(curtai).oper[0]^.typ=top_reg) and
(taicpu(curtai).oper[0]^.reg=NR_R14) and
(taicpu(curtai).oper[0]^.typ=top_reg) and
(taicpu(curtai).oper[1]^.reg=NR_PC)
)
) then
begin
lastpos:=curpos;
hp:=tai(curtai.next);
@ -507,7 +518,10 @@ implementation
end.
{
$Log$
Revision 1.39 2005-02-15 19:53:41 florian
Revision 1.40 2005-02-15 21:24:40 florian
* don't split indirect calls while inserting pc relative constants
Revision 1.39 2005/02/15 19:53:41 florian
* don't generate overflow results if they aren't necessary
* fixed op_reg_reg_reg_reg on arm