~ubuntu-branches/ubuntu/maverick/mysql-5.1/maverick-proposed

« back to all changes in this revision

Viewing changes to strings/bcmp.c

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 14:16:05 UTC
  • mto: This revision was merged to the branch mainline in revision 20.
  • Revision ID: package-import@ubuntu.com-20120222141605-nxlu9yzc6attylc2
Tags: upstream-5.1.61
ImportĀ upstreamĀ versionĀ 5.1.61

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 2000 MySQL AB
2
 
 
3
 
   This program is free software; you can redistribute it and/or modify
4
 
   it under the terms of the GNU General Public License as published by
5
 
   the Free Software Foundation; version 2 of the License.
6
 
 
7
 
   This program is distributed in the hope that it will be useful,
8
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
9
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
 
   GNU General Public License for more details.
11
 
 
12
 
   You should have received a copy of the GNU General Public License
13
 
   along with this program; if not, write to the Free Software
14
 
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
 
 
16
 
/*
17
 
  bcmp(s1, s2, len) returns 0 if the "len" bytes starting at "s1" are
18
 
  identical to the "len" bytes starting at "s2", non-zero if they are
19
 
  different.
20
 
  Now only used with purify because purify gives wrong warnings when
21
 
  comparing a shorter string with bcmp.
22
 
*/
23
 
 
24
 
#include <my_global.h>
25
 
#include "m_string.h"
26
 
 
27
 
#ifdef HAVE_purify
28
 
#undef bcmp
29
 
#undef HAVE_BCMP
30
 
#endif
31
 
 
32
 
#if !defined(bcmp) && !defined(HAVE_BCMP)
33
 
 
34
 
#if defined(MC68000) && defined(DS90)
35
 
 
36
 
int bcmp(s1,s2, len)
37
 
const char *s1;
38
 
const char *s2;
39
 
uint len;                                       /* 0 <= len <= 65535 */
40
 
{
41
 
  asm("         movl    12(a7),d0       ");
42
 
  asm("         subqw   #1,d0           ");
43
 
  asm("         blt     .L5             ");
44
 
  asm("         movl    4(a7),a1        ");
45
 
  asm("         movl    8(a7),a0        ");
46
 
  asm(".L4:     cmpmb   (a0)+,(a1)+     ");
47
 
  asm("         dbne    d0,.L4          ");
48
 
  asm(".L5:     addqw   #1,d0           ");
49
 
}
50
 
 
51
 
#else
52
 
 
53
 
#ifndef HAVE_purify
54
 
size_t bcmp(register const uchar *s1,register const uchar *s2,
55
 
            register size_t len)
56
 
#else
57
 
size_t my_bcmp(register const uchar *s1,register const uchar *s2,
58
 
               register size_t len)
59
 
#endif
60
 
{
61
 
  while (len-- != 0 && *s1++ == *s2++) ;
62
 
  return len+1;
63
 
}
64
 
 
65
 
#endif
66
 
#endif /* BSD_FUNCS */