~ubuntu-branches/ubuntu/saucy/clamav/saucy

« back to all changes in this revision

Viewing changes to win32/3rdparty/zlib/contrib/masmx86/gvmat32c.c

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-04-11 19:58:58 UTC
  • Revision ID: james.westby@ubuntu.com-20100411195858-exax6ky1jyzpa1h7
Tags: 0.96+dfsg-1ubuntu1
* Merge from Debian Unstable.  Remaining Ubuntu changes:
  - Drop initial signature definitions from clamav-base
  - Drop build-dep on electric-fence (in Universe)
  - Add apparmor profiles for clamd and freshclam along with maintainer
    script changes
* Adjust debconf processing for new option to the default priority procuces
  valid configuration files

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* gvmat32.c -- C portion of the optimized longest_match for 32 bits x86
2
 
 * Copyright (C) 1995-1996 Jean-loup Gailly and Gilles Vollant.
3
 
 * File written by Gilles Vollant, by modifiying the longest_match
4
 
 *  from Jean-loup Gailly in deflate.c
5
 
 *  it prepare all parameters and call the assembly longest_match_gvasm
6
 
 *  longest_match execute standard C code is wmask != 0x7fff
7
 
 *     (assembly code is faster with a fixed wmask)
8
 
 *
9
 
 * Read comment at beginning of gvmat32.asm for more information
10
 
 */
11
 
 
12
 
#if defined(ASMV) && (!defined(NOOLDPENTIUMCODE))
13
 
#include "deflate.h"
14
 
 
15
 
/* if your C compiler don't add underline before function name,
16
 
        define ADD_UNDERLINE_ASMFUNC */
17
 
#ifdef ADD_UNDERLINE_ASMFUNC
18
 
#define longest_match_7fff _longest_match_7fff
19
 
#define longest_match_686  _longest_match_686
20
 
#define cpudetect32        _cpudetect32
21
 
#endif
22
 
 
23
 
 
24
 
unsigned long cpudetect32();
25
 
 
26
 
uInt longest_match_c(
27
 
    deflate_state *s,
28
 
    IPos cur_match);                             /* current match */
29
 
 
30
 
 
31
 
uInt longest_match_7fff(
32
 
    deflate_state *s,
33
 
    IPos cur_match);                             /* current match */
34
 
 
35
 
uInt longest_match_686(
36
 
    deflate_state *s,
37
 
    IPos cur_match);                             /* current match */
38
 
 
39
 
 
40
 
static uInt iIsPPro=2;
41
 
 
42
 
void match_init ()
43
 
{
44
 
    iIsPPro = (((cpudetect32()/0x100)&0xf)>=6) ? 1 : 0;
45
 
}
46
 
 
47
 
uInt longest_match(
48
 
    deflate_state *s,
49
 
    IPos cur_match)                             /* current match */
50
 
{
51
 
    if (iIsPPro!=0)
52
 
        return longest_match_686(s,cur_match);
53
 
 
54
 
    if (s->w_mask != 0x7fff)
55
 
        return longest_match_686(s,cur_match);
56
 
 
57
 
    /* now ((s->w_mask == 0x7fff) && (iIsPPro==0)) */
58
 
        return longest_match_7fff(s,cur_match);
59
 
}
60
 
 
61
 
 
62
 
#endif /* defined(ASMV) && (!defined(NOOLDPENTIUMCODE)) */