diff options
Diffstat (limited to 'libc/sysdeps/i386/strpbrk.S')
-rw-r--r-- | libc/sysdeps/i386/strpbrk.S | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/libc/sysdeps/i386/strpbrk.S b/libc/sysdeps/i386/strpbrk.S index 617a11991..bbc0cbeb6 100644 --- a/libc/sysdeps/i386/strpbrk.S +++ b/libc/sysdeps/i386/strpbrk.S @@ -22,21 +22,17 @@ #include <sysdep.h> #include "asm-syntax.h" -#include "bp-sym.h" -#include "bp-asm.h" -#define PARMS LINKAGE /* no space for saved regs */ +#define PARMS 4 /* no space for saved regs */ #define RTN PARMS -#define STR RTN+RTN_SIZE -#define STOP STR+PTR_SIZE +#define STR RTN +#define STOP STR+4 .text -ENTRY (BP_SYM (strpbrk)) - ENTER +ENTRY (strpbrk) movl STR(%esp), %edx movl STOP(%esp), %eax - CHECK_BOUNDS_LOW (%edx, STR(%esp)) /* First we create a table with flags for all possible characters. For the ASCII (7bit/8bit) or ISO-8859-X character sets which are @@ -238,18 +234,10 @@ L(5): incl %eax L(4): addl $256, %esp /* remove stopset */ cfi_adjust_cfa_offset (-256) - CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb) orb %cl, %cl /* was last character NUL? */ jnz L(7) /* no => return pointer */ xorl %eax, %eax - RETURN_NULL_BOUNDED_POINTER - LEAVE - RET_PTR - -L(7): RETURN_BOUNDED_POINTER (STR(%esp)) - - LEAVE - RET_PTR -END (BP_SYM (strpbrk)) +L(7): ret +END (strpbrk) libc_hidden_builtin_def (strpbrk) |