mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 13:30:42 +02:00
Don't schedule LDRD on ARM
The load scheduler does not handle LDRD correctly right now, but it does not prevent A_LDR with PF_D set from beeing scheduled. git-svn-id: trunk@26637 -
This commit is contained in:
parent
28a8dc42c6
commit
3f8549365a
@ -2380,6 +2380,7 @@ Implementation
|
|||||||
GetNextInstruction(p,hp1) and
|
GetNextInstruction(p,hp1) and
|
||||||
(hp1.typ=ait_instruction) and
|
(hp1.typ=ait_instruction) and
|
||||||
(taicpu(hp1).opcode in [A_LDR,A_LDRB,A_LDRH,A_LDRSB,A_LDRSH]) and
|
(taicpu(hp1).opcode in [A_LDR,A_LDRB,A_LDRH,A_LDRSB,A_LDRSH]) and
|
||||||
|
(taicpu(hp1).oppostfix in [PF_NONE, PF_B, PF_H, PF_SB, PF_SH]) and
|
||||||
{ for now we don't reschedule if the previous instruction changes potentially a memory location }
|
{ for now we don't reschedule if the previous instruction changes potentially a memory location }
|
||||||
( (not(taicpu(p).opcode in opcode_could_mem_write) and
|
( (not(taicpu(p).opcode in opcode_could_mem_write) and
|
||||||
not(RegModifiedByInstruction(NR_PC,p))
|
not(RegModifiedByInstruction(NR_PC,p))
|
||||||
|
Loading…
Reference in New Issue
Block a user