source: svn/trunk/newcon3bcm2_21bu/dta/src/bootloader/rsa/mp2_addmul.c

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 1.0 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2002-2009, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * Filename: mp2_addmul.c
11 *
12 ***************************************************************************/
13#include "mp2.h"
14
15/*
16 * w = (w + c + x * y) / RADIX;
17 * c = (w + c + x * y) % RADIX;
18 */
19void addmul(u32 *w, u32 *c, u32 x, u32 y)
20{ 
21        register u32 lx = x; 
22        register u32 ly = y; 
23        register u32 x1 = x & RADIXROOTM; 
24        register u32 y1 = y & RADIXROOTM; 
25        register u32 cc = (*c) + x1 * y1;
26
27        x1 = x1 * (ly >>= NBITSH) + y1 * (lx >>= NBITSH) + (cc >> NBITSH); 
28        cc = (cc & RADIXROOTM) + ((x1 & RADIXROOTM) << NBITSH) + *w; 
29        *w = ly * lx + (x1 >> NBITSH) + (cc >> NBITS); 
30        *c = (cc & RADIXM); 
31       
32        return;
33}
Note: See TracBrowser for help on using the repository browser.