|
@@ -213,7 +213,11 @@ end;
|
|
|
|
|
|
{$ifndef FPC_SYSTEM_HAS_MOVE}
|
|
{$ifndef FPC_SYSTEM_HAS_MOVE}
|
|
{$define FPC_SYSTEM_HAS_MOVE}
|
|
{$define FPC_SYSTEM_HAS_MOVE}
|
|
|
|
+{$ifdef CPUARM_HAS_EDSP}
|
|
|
|
+procedure Move(const source;var dest;count:longint);[public, alias: 'FPC_MOVE'];assembler;nostackframe;
|
|
|
|
+{$else CPUARM_HAS_EDSP}
|
|
procedure Move_pld(const source;var dest;count:longint);assembler;nostackframe;
|
|
procedure Move_pld(const source;var dest;count:longint);assembler;nostackframe;
|
|
|
|
+{$endif CPUARM_HAS_EDSP}
|
|
asm
|
|
asm
|
|
pld [r0]
|
|
pld [r0]
|
|
// count <=0 ?
|
|
// count <=0 ?
|
|
@@ -267,6 +271,7 @@ asm
|
|
bne .Loverlapped
|
|
bne .Loverlapped
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+{$ifndef CPUARM_HAS_EDSP}
|
|
procedure Move_blended(const source;var dest;count:longint);assembler;nostackframe;
|
|
procedure Move_blended(const source;var dest;count:longint);assembler;nostackframe;
|
|
asm
|
|
asm
|
|
// count <=0 ?
|
|
// count <=0 ?
|
|
@@ -327,6 +332,7 @@ asm
|
|
.Lmoveproc:
|
|
.Lmoveproc:
|
|
.long moveproc
|
|
.long moveproc
|
|
end;
|
|
end;
|
|
|
|
+{$endif CPUARM_HAS_EDSP}
|
|
|
|
|
|
{$endif FPC_SYSTEM_HAS_MOVE}
|
|
{$endif FPC_SYSTEM_HAS_MOVE}
|
|
|
|
|
|
@@ -893,6 +899,7 @@ end;
|
|
procedure fpc_cpucodeinit;
|
|
procedure fpc_cpucodeinit;
|
|
begin
|
|
begin
|
|
{$ifdef FPC_SYSTEM_FPC_MOVE}
|
|
{$ifdef FPC_SYSTEM_FPC_MOVE}
|
|
|
|
+{$ifndef CPUARM_HAS_EDSP}
|
|
cpu_has_edsp:=true;
|
|
cpu_has_edsp:=true;
|
|
in_edsp_test:=true;
|
|
in_edsp_test:=true;
|
|
asm
|
|
asm
|
|
@@ -904,6 +911,9 @@ begin
|
|
moveproc:=@move_pld
|
|
moveproc:=@move_pld
|
|
else
|
|
else
|
|
moveproc:=@move_blended;
|
|
moveproc:=@move_blended;
|
|
|
|
+{$else CPUARM_HAS_EDSP}
|
|
|
|
+ cpu_has_edsp:=true;
|
|
|
|
+{$endif CPUARM_HAS_EDSP}
|
|
{$endif FPC_SYSTEM_FPC_MOVE}
|
|
{$endif FPC_SYSTEM_FPC_MOVE}
|
|
end;
|
|
end;
|
|
|
|
|