From 3f8549365a7c81dfff0d97c8d0579c119f4ab744 Mon Sep 17 00:00:00 2001 From: masta Date: Thu, 30 Jan 2014 21:53:03 +0000 Subject: [PATCH] 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 - --- compiler/arm/aoptcpu.pas | 1 + 1 file changed, 1 insertion(+) diff --git a/compiler/arm/aoptcpu.pas b/compiler/arm/aoptcpu.pas index 0dda9e3bdf..b0220f0b58 100644 --- a/compiler/arm/aoptcpu.pas +++ b/compiler/arm/aoptcpu.pas @@ -2380,6 +2380,7 @@ Implementation GetNextInstruction(p,hp1) and (hp1.typ=ait_instruction) 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 } ( (not(taicpu(p).opcode in opcode_could_mem_write) and not(RegModifiedByInstruction(NR_PC,p))