summaryrefslogtreecommitdiff
path: root/rtl/i386/strlen.inc
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/i386/strlen.inc')
-rw-r--r--rtl/i386/strlen.inc42
1 files changed, 42 insertions, 0 deletions
diff --git a/rtl/i386/strlen.inc b/rtl/i386/strlen.inc
new file mode 100644
index 0000000000..7c5aaade07
--- /dev/null
+++ b/rtl/i386/strlen.inc
@@ -0,0 +1,42 @@
+{
+ $Id: strlen.inc,v 1.6 2005/02/14 17:13:22 peter Exp $
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2000 by the Free Pascal development team
+
+ Processor specific implementation of strlen
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+var
+ saveedi : longint;
+asm
+ movl %edi,saveedi
+{$ifdef REGCALL}
+ movl %eax,%edi
+{$else}
+ movl p,%edi
+{$endif}
+ movl $0xffffffff,%ecx
+ xorl %eax,%eax
+ cld
+ repne
+ scasb
+ movl $0xfffffffe,%eax
+ subl %ecx,%eax
+ movl saveedi,%edi
+end;
+
+
+{
+ $Log: strlen.inc,v $
+ Revision 1.6 2005/02/14 17:13:22 peter
+ * truncate log
+
+}