~ubuntu-branches/ubuntu/intrepid/ecl/intrepid

« back to all changes in this revision

Viewing changes to src/gmp/mpn/x86/p6/dive_1.asm

  • Committer: Bazaar Package Importer
  • Author(s): Peter Van Eynde
  • Date: 2007-04-09 11:51:51 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20070409115151-ql8cr0kalzx1jmla
Tags: 0.9i-20070324-2
Upload to unstable. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
dnl  Intel P6 mpn_modexact_1_odd -- exact division style remainder.
2
2
 
3
3
dnl  Copyright 2001, 2002 Free Software Foundation, Inc.
4
 
dnl 
 
4
dnl
5
5
dnl  This file is part of the GNU MP Library.
6
 
dnl 
 
6
dnl
7
7
dnl  The GNU MP Library is free software; you can redistribute it and/or
8
8
dnl  modify it under the terms of the GNU Lesser General Public License as
9
9
dnl  published by the Free Software Foundation; either version 2.1 of the
10
10
dnl  License, or (at your option) any later version.
11
 
dnl 
 
11
dnl
12
12
dnl  The GNU MP Library is distributed in the hope that it will be useful,
13
13
dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
14
14
dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
15
dnl  Lesser General Public License for more details.
16
 
dnl 
 
16
dnl
17
17
dnl  You should have received a copy of the GNU Lesser General Public
18
18
dnl  License along with the GNU MP Library; see the file COPYING.LIB.  If
19
 
dnl  not, write to the Free Software Foundation, Inc., 59 Temple Place -
20
 
dnl  Suite 330, Boston, MA 02111-1307, USA.
 
19
dnl  not, write to the Free Software Foundation, Inc., 51 Franklin Street,
 
20
dnl  Fifth Floor, Boston, MA 02110-1301, USA.
21
21
 
22
22
include(`../config.m4')
23
23
 
72
72
 
73
73
        movl    %eax, %edx
74
74
        shrl    %eax                    C d/2 without twos
75
 
        
 
75
 
76
76
        movl    %edx, PARAM_DIVISOR
77
77
        andl    $127, %eax
78
78
 
132
132
C       subl    %edx, %eax       1
133
133
C       imull   %ebp, %eax       4
134
134
C       mull    PARAM_DIVISOR    5
135
 
C                              ----
 
135
C                              ----
136
136
C       total                   10
137
137
C
138
138
C and this is the measured speed.  No special scheduling is necessary, out
199
199
        shrdl(  %cl, %edi, %eax)
200
200
 
201
201
        jmp     L(even_entry)
202
 
        
 
202
 
203
203
 
204
204
L(even_top):
205
205
        C eax   scratch
262
262
ifdef(`PIC',`
263
263
L(movl_eip_ebp):
264
264
        movl    (%esp), %ebp
265
 
        ret
 
265
        ret_internal
266
266
')
267
267
 
268
268
EPILOGUE()