* fixed Index* for 64 Bit CPUs

* use forward move as much as possible

git-svn-id: trunk@8778 -
This commit is contained in:
florian 2007-10-13 19:06:41 +00:00
parent 342ba323cf
commit 96eaeeaf98

View File

@ -29,7 +29,7 @@ var
begin begin
if (@dest=@source) or (count<=0) then if (@dest=@source) or (count<=0) then
exit; exit;
if @dest<@source then if (@dest<@source) or (@source+count<@dest) then
begin begin
{ Forward Move } { Forward Move }
psrc:=@source; psrc:=@source;
@ -269,7 +269,8 @@ begin
{ simulate assembler implementations behaviour, which is expected } { simulate assembler implementations behaviour, which is expected }
{ fpc_pchar_to_ansistr in astrings.inc } { fpc_pchar_to_ansistr in astrings.inc }
if (len < 0) or if (len < 0) or
(len > high(PtrUInt) div 2) or { is this ever true? }
(len > high(PtrInt)) or
(psrc+len < psrc) then (psrc+len < psrc) then
pend:=pword(high(PtrUInt)-sizeof(word)) pend:=pword(high(PtrUInt)-sizeof(word))
else else
@ -297,7 +298,7 @@ begin
{ simulate assembler implementations behaviour, which is expected } { simulate assembler implementations behaviour, which is expected }
{ fpc_pchar_to_ansistr in astrings.inc } { fpc_pchar_to_ansistr in astrings.inc }
if (len < 0) or if (len < 0) or
(len > high(PtrUInt) div 4) or (len > high(PtrInt) div 2) or
(psrc+len < psrc) then (psrc+len < psrc) then
pend:=pdword(high(PtrUInt)-sizeof(dword)) pend:=pdword(high(PtrUInt)-sizeof(dword))
else else