]> git.saurik.com Git - apple/security.git/blobdiff - libsecurity_cryptkit/lib/giantPort_i486.s
Security-57031.1.35.tar.gz
[apple/security.git] / libsecurity_cryptkit / lib / giantPort_i486.s
diff --git a/libsecurity_cryptkit/lib/giantPort_i486.s b/libsecurity_cryptkit/lib/giantPort_i486.s
deleted file mode 100644 (file)
index 4704de1..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Copyright (c) 1998 Apple Computer, Inc.  All rights reserved.
- *
- * NOTICE: USE OF THE MATERIALS ACCOMPANYING THIS NOTICE IS SUBJECT
- * TO THE TERMS OF THE SIGNED "FAST ELLIPTIC ENCRYPTION (FEE) REFERENCE
- * SOURCE CODE EVALUATION AGREEMENT" BETWEEN APPLE COMPUTER, INC. AND THE
- * ORIGINAL LICENSEE THAT OBTAINED THESE MATERIALS FROM APPLE COMPUTER,
- * INC.  ANY USE OF THESE MATERIALS NOT PERMITTED BY SUCH AGREEMENT WILL
- * EXPOSE YOU TO LIABILITY.
- ***************************************************************************
- *
- * giantPorti486.s - i486-specific assembly routines.
- *
- * Revision History
- * ----------------
- * 17 Apr 1998 Doug Mitchell at Apple
- *     Created.
- */
-
-#if defined (i386) || defined(__i386__)
-.text
-
-/*
- * Multiply a vector a giantDigits, candVector, by a single giantDigit,
- * plierDigit, adding results in prodVector.
- *
- * void VectorMultiply(
- *     giantDigit plierDigit,
- *     giantDigit *candVector,
- *     unsigned candLength,
- *     giantDigit *prodVector)
- */
-
-.align 2,0x90
-.globl _vectorMult_x86
-
-/*
- * Stack locations, relative to adjusted bp.
- */
-#define LOCAL_SPACE            0x4
-
-#define ARG_START              (LOCAL_SPACE + 8)       /* rtn ptr plus bp */
-#define ARG_PLIER_DIGIT                (ARG_START + 0)
-#define ARG_CAND_VECTOR                (ARG_START + 4)         /* cached in ecx */
-#define ARG_CAND_LENGTH                (ARG_START + 8)
-#define ARG_PROD_VECTOR                (ARG_START + 12)        /* cached in esi */
-
-#define LOCAL_START            (0)
-#define LOC_CAND_DEX           (LOCAL_START + 0)  /* index into candVector */
-
-/*
- * ebx : lastCarry
- * esi : prodVector
- * ecx : candVector
- */
-_vectorMult_x86:
-
-       pushl   %ebp
-       subl    $LOCAL_SPACE,%esp
-       movl    %esp,%ebp
-       pushl   %edi
-       pushl   %esi
-       pushl   %ebx
-
-       /* esp not used again 'til we pop these off stack */
-
-       /* prodVector = %esi */
-       movl    ARG_PROD_VECTOR(%ebp),%esi
-
-       /* lastCarry = 0 */
-       /* 0 --> candDex in 0xf0(%ebp) */
-       xorl    %ebx,%ebx
-
-       /* candVector --> %ecx */
-       movl    ARG_CAND_VECTOR(%ebp),%ecx
-
-       /* for(candDex=0; candDex<candLength; ++candDex) */
-       movl    $0, LOC_CAND_DEX(%ebp)
-
-       /* make sure candLenth > 0 to start...*/
-       cmpl    %ebx,ARG_CAND_LENGTH(%ebp)
-       jbe     _loopEnd
-
-_loopTop:
-       /* branch back to top of for loop */
-
-       /* *candVector--> %eax */
-       movl    (%ecx),%eax
-
-       /* candVector++ */
-       addl    $0x04,%ecx
-
-       /* plierDigit --> %edx */
-       movl    ARG_PLIER_DIGIT(%ebp),%edx
-
-       /* eax = *candVector
-        * edx = plierDigit
-        * edx:eax := (plierDigit * *candVector) */
-       mull    %edx
-
-       /* from here to end of loop:
-          prodLo : eax
-          prodHi : edx */
-
-       /* prodLo += *prodVector */
-       addl    (%esi),%eax
-
-       /* add carry to hi digit */
-       adc     $0,%edx
-
-       /* prodLo += lastCarry */
-       addl    %ebx,%eax
-       /* add carry to hi digit */
-       adc     $0,%edx
-
-       /* *(prodVector++) = prodLo; */
-       movl    %eax,(%esi)
-       addl    $0x04,%esi
-
-       /* lastCarry = prodHi */
-       movl    %edx, %ebx
-
-       /* candDex++ */
-       incl    LOC_CAND_DEX(%ebp)
-
-       /* top of loop if candDex < candLength */
-       movl    ARG_CAND_LENGTH(%ebp),%eax
-       cmpl    %eax,LOC_CAND_DEX(%ebp)
-       jb      _loopTop
-
-_loopEnd:
-       /* out of for loop */
-       /* *prodVector += lastCarry; */
-#if    0
-       addl    %ebx,(%esi)
-
-       /* return carry from last addition */
-       xorl    %eax,%eax
-       adc     $0,%eax
-#else
-       /* return lastCarry */
-       movl    %ebx,%eax
-#endif
-       popl    %ebx
-       popl    %esi
-       popl    %edi
-       addl    $LOCAL_SPACE,%esp
-       popl    %ebp
-       ret
-#endif /* i386 */