Commit 9c841535 authored by Davi Arnaut's avatar Davi Arnaut

WL#5486: Remove code for unsupported platforms

Remove 32-bit SPARC specific code.
parent 62b0262d
......@@ -681,9 +681,8 @@ AC_ARG_ENABLE(assembler,
AC_MSG_CHECKING(if we should use assembler functions)
# For now we only support assembler on i386 and sparc systems
AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $AS strings/strings-x86.s -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
AM_CONDITIONAL(ASSEMBLER_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "")
if test "$ASSEMBLER_TRUE" = ""
then
......
......@@ -32,19 +32,12 @@ if ASSEMBLER_x86
ASRCS = strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
CSRCS = bfill.c bmove.c bchange.c strxnmov.c int2str.c str2int.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c str_alloc.c longlong2str_asm.c my_strchr.c dtoa.c strmov.c
else
if ASSEMBLER_sparc32
# These file MUST all be on the same line!! Otherwise automake
# generats a very broken makefile
ASRCS = bmove_upp-sparc.s strappend-sparc.s strend-sparc.s strmake-sparc.s strmov-sparc.s strnmov-sparc.s strstr-sparc.s
CSRCS = strcont.c strfill.c strcend.c is_prefix.c longlong2str.c bfill.c bmove.c bchange.c strxnmov.c int2str.c str2int.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c strxmov.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c my_strtoll10.c str_alloc.c my_strchr.c dtoa.c strmov.c
else
#no assembler
ASRCS =
# These file MUST all be on the same line!! Otherwise automake
# generats a very broken makefile
CSRCS = strxmov.c bmove_upp.c strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c strstr.c strmake.c strnmov.c strmov.c longlong2str.c bfill.c bmove.c bchange.c strxnmov.c int2str.c str2int.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c my_strtoll10.c str_alloc.c my_strchr.c dtoa.c
endif
endif
libmystrings_a_SOURCES = $(ASRCS) $(CSRCS)
noinst_PROGRAMS = conf_to_src
......@@ -59,9 +52,6 @@ EXTRA_DIST = ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc
strxmov.c bmove_upp.c strappend.c strcont.c strend.c \
strfill.c strcend.c is_prefix.c strstr.c \
strmake.c strnmov.c strmov.c strnlen.c \
bmove_upp-sparc.s strappend-sparc.s strend-sparc.s \
strmake-sparc.s strmov-sparc.s \
strnmov-sparc.s strstr-sparc.s strxmov-sparc.s \
t_ctype.h my_strchr.c CMakeLists.txt \
CHARSET_INFO.txt
......
! Copyright (C) 2000, 2002 MySQL AB
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Library General Public
! License as published by the Free Software Foundation; version 2
! of the License.
!
! This library 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. See the GNU
! Library General Public License for more details.
!
! You should have received a copy of the GNU Library General Public
! License along with this library; if not, write to the Free
! Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
! MA 02111-1307, USA
.file "bmove_upp-sparc.s"
.section ".text"
.align 4
.global bmove_upp
.type bmove_upp,#function
.proc 020
bmove_upp:
subcc %o2, 1, %o2 ! o2= len
bcs .end
nop
.loop:
sub %o1, 1, %o1
ldub [%o1], %o3
sub %o0, 1, %o0
subcc %o2, 1, %o2
bcc .loop
stb %o3, [%o0]
.end:
retl
nop
.bmove_upp_end:
.size bmove_upp,.bmove_upp_end-bmove_upp
.ident "Matt Wagner & Monty"
! Copyright (C) 2000, 2002 MySQL AB
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Library General Public
! License as published by the Free Software Foundation; version 2
! of the License.
!
! This library 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. See the GNU
! Library General Public License for more details.
!
! You should have received a copy of the GNU Library General Public
! License along with this library; if not, write to the Free
! Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
! MA 02111-1307, USA
.file "strappend-sparc.s"
.section ".text"
.align 4
.global strappend
.type strappend,#function
.proc 020
strappend:
add %o0, %o1, %o3 ! o3 = endpos
ldsb [%o0], %o4
.loop1:
add %o0, 1, %o0 ! find end of str
cmp %o4, 0
bne,a .loop1
ldsb [%o0], %o4
sub %o0, 1, %o0
cmp %o0, %o3
bgeu .end
nop
stb %o2, [%o0]
.loop2:
add %o0, 1, %o0
cmp %o0, %o3
blu,a .loop2
stb %o2, [%o0]
.end:
retl
stb %g0, [%o3]
.strappend_end:
.size strappend,.strappend_end-strappend
.ident "Matt Wagner & Monty"
! Copyright (C) 2000, 2002 MySQL AB
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Library General Public
! License as published by the Free Software Foundation; version 2
! of the License.
!
! This library 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. See the GNU
! Library General Public License for more details.
!
! You should have received a copy of the GNU Library General Public
! License along with this library; if not, write to the Free
! Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
! MA 02111-1307, USA
.file "strend-sparc.s"
.section ".text"
.align 4
.global strend
.type strend,#function
.proc 0102
strend:
ldsb [%o0], %o3 ! Handle first char differently to make
.loop: ! a faster loop
add %o0, 1, %o0
cmp %o3, 0
bne,a .loop
ldsb [%o0], %o3
retl
sub %o0,1,%o0
.strend_end:
.size strend,.strend_end-strend
.ident "Matt Wagner & Monty"
! Copyright (C) 2000, 2002 MySQL AB
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Library General Public
! License as published by the Free Software Foundation; version 2
! of the License.
!
! This library 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. See the GNU
! Library General Public License for more details.
!
! You should have received a copy of the GNU Library General Public
! License along with this library; if not, write to the Free
! Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
! MA 02111-1307, USA
.file "strmake-sparc.s"
.section ".text"
.align 4
.global strmake
.type strmake,#function
.proc 0102
strmake:
orcc %g0,%o2,%g0
be,a .end
nop
ldsb [%o1],%o3
.loop:
stb %o3,[%o0]
cmp %o3,0
be .end ! Jump to end on end of string
add %o1,1,%o1
add %o0,1,%o0
subcc %o2,1,%o2
bne,a .loop
ldsb [%o1],%o3
.end:
retl
stb %g0,[%o0]
.strmake_end:
.size strmake,.strmake_end-strmake
.ident "Matt Wagner & Monty"
! Copyright (C) 2000, 2002 MySQL AB
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Library General Public
! License as published by the Free Software Foundation; version 2
! of the License.
!
! This library 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. See the GNU
! Library General Public License for more details.
!
! You should have received a copy of the GNU Library General Public
! License along with this library; if not, write to the Free
! Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
! MA 02111-1307, USA
.file "strmov-sparc.s"
.section ".text"
.align 4
.global strmov
.type strmov,#function
.proc 0102
strmov:
.loop:
ldub [%o1], %o3
stb %o3, [%o0]
add %o1, 1, %o1
cmp %o3, 0
bne,a .loop
add %o0, 1, %o0
retl
nop
.strmov_end:
.size strmov,.strmov_end-strmov
.ident "Matt Wagner"
! Copyright (C) 2000, 2002 MySQL AB
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Library General Public
! License as published by the Free Software Foundation; version 2
! of the License.
!
! This library 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. See the GNU
! Library General Public License for more details.
!
! You should have received a copy of the GNU Library General Public
! License along with this library; if not, write to the Free
! Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
! MA 02111-1307, USA
.file "strnmov-sparc.s"
.section ".text"
.align 4
.global strnmov
.type strnmov,#function
.proc 0102
strnmov:
orcc %g0,%o2,%g0
be,a .end
nop
ldsb [%o1],%o3
.loop:
stb %o3,[%o0]
cmp %o3,0
be .end ! Jump to end on end of string
add %o1,1,%o1
add %o0,1,%o0
subcc %o2,1,%o2
bne,a .loop
ldsb [%o1],%o3
.end:
retl
nop
.strnmov_end:
.size strnmov,.strnmov_end-strnmov
.ident "Matt Wagner"
! Copyright (C) 2000, 2002 MySQL AB
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Library General Public
! License as published by the Free Software Foundation; version 2
! of the License.
!
! This library 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. See the GNU
! Library General Public License for more details.
!
! You should have received a copy of the GNU Library General Public
! License along with this library; if not, write to the Free
! Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
! MA 02111-1307, USA
.file "strstr-sparc.s"
.section ".text"
.align 4
.global strstr
.type strstr,#function
.proc 0102
strstr:
!char *strstr(register const char *str,const char *search)
!{
! register char *i,*j;
!skipp:
! while (*str != '\0') {
! if (*str++ == *search) {
! i=(char*) str; j=(char*) search+1;
ldsb [%o1],%o2 ! o2= First char of search
.top:
ldsb [%o0],%o4 ! o4= First char of rest of str
cmp %o4,0
be .abort ! Found end null ;
cmp %o4,%o2
bne .top
add %o0,1,%o0
.outloop1:
! while (*j)
! if (*i++ != *j++) goto skipp;
or %g0,%o0,%o3
add %o1,1,%o4 ! o4= search+1
ldsb [%o0],%o5 ! o5= [current_str+1]
.loop2:
ldsb [%o4],%g4
add %o4,1,%o4
cmp %g4,0
be .end
cmp %o5,%g4
bne .top
add %o3,1,%o3
ba .loop2
ldsb [%o3],%o5
.end:
retl
sub %o0,1,%o0
.abort:
retl
or %g0,0,%o0
.strstr_end:
.size strstr,.strstr_end-strstr
.ident "Matt Wagner & Monty"
! Copyright (C) 2000, 2002 MySQL AB
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Library General Public
! License as published by the Free Software Foundation; version 2
! of the License.
!
! This library 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. See the GNU
! Library General Public License for more details.
!
! You should have received a copy of the GNU Library General Public
! License along with this library; if not, write to the Free
! Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
! MA 02111-1307, USA
!
! Note that this function only works on 32 bit sparc systems
! on 64 bits the offsets to %sp are different !
.file "strxmov-sparc.s"
.section ".text"
.align 4
.global strxmov
.type strxmov,#function
.proc 0102
strxmov:
st %o2, [%sp+76] ! store 3rd param before other params
st %o3, [%sp+80] ! store 4th param " "
cmp %o1, 0 ! check if no from args
st %o4, [%sp+84] ! store 5th param
be .end
st %o5, [%sp+88] ! store last
add %sp, 76, %o4 ! put pointer to 3rd arg
.loop:
ldub [%o1], %o5 ! set values of src (o1)
add %o1, 1, %o1 ! inc src
stb %o5, [%o0] ! and dst (o2) equal
cmp %o5, 0 ! second while cmp
bne,a .loop
add %o0, 1, %o0 ! inc dst
ld [%o4], %o1 ! get next param
cmp %o1, 0 ! check if last param
bne .loop
add %o4, 4, %o4 ! advance to next param
.end:
retl
stb %g0, [%o0]
.strxmov_end:
.size strxmov,.strxmov_end-strxmov
.ident "Matt Wagner & Monty"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment