mariadb/strings/strstr-sparc.s
unknown c88b910208 Portability fixes for Fortre C++ 5.0 (on Sun) in 32 and 64 bit modes.
client/mysqlbinlog.cc:
  Portability fix
configure.in:
  Added use of ASFLAGS (For Solaris with Forte 5.0)
include/my_global.h:
  Portability fix
include/myisam.h:
  Portability fix
include/queues.h:
  Portability fix
innobase/include/ut0ut.h:
  Portability fix
innobase/log/log0log.c:
  Portability fix
innobase/rem/rem0cmp.c:
  Portability fix
innobase/trx/trx0sys.c:
  Portability fix
isam/pack_isam.c:
  Portability fix
myisam/ft_boolean_search.c:
  Portability fix
myisam/mi_dynrec.c:
  Code change to go around bug in Forte 5.0
myisam/sort.c:
  Portability fix
mysys/my_aes.c:
  Portability fix
scripts/Makefile.am:
  Support for ASFLAGS
scripts/mysqlbug.sh:
  Support for ASFLAGS
sql/field.cc:
  Portability fix
sql/filesort.cc:
  Portability fix
sql/gen_lex_hash.cc:
  Portability fix
sql/ha_innodb.cc:
  Portability fix
  Changed SHOW INNODB STATUS to return error instead of writing message to log file.
sql/ha_isammrg.cc:
  Portability fix
sql/ha_myisam.cc:
  Portability fix
sql/ha_myisammrg.cc:
  Portability fix
sql/hash_filo.h:
  Portability fix
sql/hostname.cc:
  Portability fix
sql/item_cmpfunc.h:
  Indentation change
sql/item_func.cc:
  Portability fix
sql/item_func.h:
  Portability fix
sql/log.cc:
  Portability fix
sql/log_event.cc:
  Portability fix
sql/mysql_priv.h:
  Portability fix
sql/mysqld.cc:
  Portability fix
  Fixed bug with rpl_recovery_rank command line option on 64 bit systems
sql/opt_range.cc:
  Portability fix
sql/repl_failsafe.cc:
  Portability fix
sql/slave.cc:
  Portability fix
sql/slave.h:
  Portability fix
sql/sql_acl.cc:
  Portability fix
sql/sql_base.cc:
  Portability fix
sql/sql_cache.cc:
  Portability fix
sql/sql_cache.h:
  Portability fix
sql/sql_class.cc:
  Portability fix
sql/sql_delete.cc:
  Portability fix
sql/sql_insert.cc:
  Portability fix
sql/sql_manager.cc:
  Portability fix
sql/sql_parse.cc:
  Portability fix
BUILD/compile-solaris-sparc-forte:
  C
sql/sql_udf.cc:
  Portability fix
sql/sql_update.cc:
  Portability fix
strings/Makefile.am:
  Portability fix
strings/bmove_upp-sparc.s:
  Fix so that this works on 32 and 64 bit sparcs
strings/str_test.c:
  Cleanup
strings/strappend-sparc.s:
  Fix so that this works on 32 and 64 bit sparcs
strings/strend-sparc.s:
  Fix so that this works on 32 and 64 bit sparcs
strings/strmake-sparc.s:
  Fix so that this works on 32 and 64 bit sparcs
strings/strmov-sparc.s:
  Fix so that this works on 32 and 64 bit sparcs
strings/strnmov-sparc.s:
  Fix so that this works on 32 and 64 bit sparcs
strings/strstr-sparc.s:
  Fix so that this works on 32 and 64 bit sparcs
strings/strxmov-sparc.s:
  Fixes to make this more portable, but it's still not usable on 64 bit systems :(
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2002-11-07 03:54:00 +02:00

72 lines
1.7 KiB
ArmAsm

! Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult 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; either
! version 2 of the License, or (at your option) any later version.
!
! 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"