Browse Source

* patch by Simon Ley to improve move on arm: unneeded plds are removed, resolves #19050

git-svn-id: trunk@17251 -
florian 14 years ago
parent
commit
0e74cea8ed
1 changed files with 0 additions and 3 deletions
  1. 0 3
      rtl/arm/arm.inc

+ 0 - 3
rtl/arm/arm.inc

@@ -202,7 +202,6 @@ end;
 procedure Move_pld(const source;var dest;count:longint);assembler;nostackframe;
 procedure Move_pld(const source;var dest;count:longint);assembler;nostackframe;
 asm
 asm
   pld [r0]
   pld [r0]
-  pld [r1]
   // count <=0 ?
   // count <=0 ?
   cmp r2,#0
   cmp r2,#0
 {$if defined(cpuarmv3) or defined(cpuarmv4) or defined(cpuarmv5)}
 {$if defined(cpuarmv3) or defined(cpuarmv4) or defined(cpuarmv5)}
@@ -258,13 +257,11 @@ asm
   bne .Ldwordloop
   bne .Ldwordloop
 *)
 *)
   pld [r0,#32]
   pld [r0,#32]
-  pld [r1,#32]
 .Ldwordloop:
 .Ldwordloop:
   sub r2,r2,#4
   sub r2,r2,#4
   ldr r3,[r0],#4
   ldr r3,[r0],#4
   // preload
   // preload
   pld [r0,#64]
   pld [r0,#64]
-  pld [r1,#64]
   cmp r2,#4
   cmp r2,#4
   str r3,[r1],#4
   str r3,[r1],#4
   bcs .Ldwordloop
   bcs .Ldwordloop