Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/string.h')
-rw-r--r--winsup/cygwin/string.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/winsup/cygwin/string.h b/winsup/cygwin/string.h
index 6e410249b..0ac9745ad 100644
--- a/winsup/cygwin/string.h
+++ b/winsup/cygwin/string.h
@@ -38,6 +38,27 @@ strchr (const char *s, int c)
return res;
}
+#undef strechr
+#define strechr cygwin_strechr
+static inline __stdcall char *
+strechr (const char *s, int c)
+{
+ register char * res;
+ __asm__ __volatile__ ("\
+ movb %%al,%%ah\n\
+1: movb (%1),%%al\n\
+ cmpb %%ah,%%al\n\
+ je 2f\n\
+ incl %1\n\
+ testb %%al,%%al\n\
+ jne 1b\n\
+ decl %1\n\
+2: movl %1,%0\n\
+ ":"=a" (res), "=r" (s)
+ :"0" (c), "1" (s));
+ return res;
+}
+
extern const char isalpha_array[];
#undef strcasematch