2
; Copyright 1992, 1994, 1996, 1999, 2000, 2001, 2002 Free Software
5
; This file is part of the GNU MP Library.
7
; The GNU MP Library is free software; you can redistribute it and/or
8
; modify it under the terms of the GNU Lesser General Public License as
9
; published by the Free Software Foundation; either version 2.1 of the
10
; License, or (at your option) any later version.
12
; The GNU MP Library is distributed in the hope that it will be useful,
13
; but WITHOUT ANY WARRANTY; without even the implied warranty of
14
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
; Lesser General Public License for more details.
17
; You should have received a copy of the GNU Lesser General Public
18
; License along with the GNU MP Library; see the file COPYING.LIB. If
19
; not, write to the Free Software Foundation, Inc., 59 Temple Place -
20
; Suite 330, Boston, MA 02111-1307, USA.
22
; Translation of AT&T syntax code by Brian Gladman
26
%define PARAM_SHIFT esp+frame+16
27
%define PARAM_SIZE esp+frame+12
28
%define PARAM_SRC esp+frame+8
29
%define PARAM_DST esp+frame+4
43
%assign frame frame+12
48
sub esi,4 ; adjust src
49
mov ebx,[esi+edx*4] ; read most significant limb
54
push eax ; push carry limb onto stack
56
jnz L1 ; enter Lop in the middle
61
mov ebx,[esi+edx*4] ; load next lower limb
63
mov [edi+edx*4],eax ; store it
71
shl eax,cl ; compute least significant limb
72
mov [edi],eax ; store it
73
pop eax ; pop carry limb
79
shl ebx,cl ; compute least significant limb
80
mov [edi],ebx ; store it