1/*
2	File:		ellipticMeasure.h
3
4	Contains:	xxx put contents here xxx
5
6
7	Copyright:	Copyright (c) 1998,2011,2014 Apple Inc.
8                All rights reserved.
9
10	Change History (most recent first):
11
12	<7>	10/06/98	ap		Changed to compile with C++.
13
14	To Do:
15*/
16
17/* Copyright (c) 1998,2011,2014 Apple Inc.  All Rights Reserved.
18 *
19 * NOTICE: USE OF THE MATERIALS ACCOMPANYING THIS NOTICE IS SUBJECT
20 * TO THE TERMS OF THE SIGNED "FAST ELLIPTIC ENCRYPTION (FEE) REFERENCE
21 * SOURCE CODE EVALUATION AGREEMENT" BETWEEN APPLE, INC. AND THE
22 * ORIGINAL LICENSEE THAT OBTAINED THESE MATERIALS FROM APPLE,
23 * INC.  ANY USE OF THESE MATERIALS NOT PERMITTED BY SUCH AGREEMENT WILL
24 * EXPOSE YOU TO LIABILITY.
25 ***************************************************************************
26 *
27 * Measurement of feemods and mulgs withing an elliptic_simple() call.
28 */
29
30#include "feeDebug.h"
31
32#ifdef	FEE_DEBUG
33#define ELLIPTIC_MEASURE	0
34#else	// FEE_DEBUG
35#define ELLIPTIC_MEASURE	0	/* always off */
36#endif	// FEE_DEBUG
37
38#if	ELLIPTIC_MEASURE
39
40extern int doEllMeasure;	// gather stats on/off */
41extern int bitsInN;
42extern int numFeeMods;
43extern int numMulgs;
44
45#define START_ELL_MEASURE(n)		\
46	doEllMeasure = 1;		\
47	bitsInN = bitlen(n);		\
48	numFeeMods = 0;			\
49	numMulgs = 0;
50
51#define END_ELL_MEASURE		doEllMeasure = 0;
52
53#define INCR_FEEMODS			\
54	if(doEllMeasure) {		\
55		numFeeMods++;		\
56	}
57
58#define INCR_MULGS			\
59	if(doEllMeasure) {		\
60		numMulgs++;		\
61	}
62
63/*
64 * These two are used around mulg() calls in feemod() itself; they
65 * inhibit the counting of those mulg() calls.
66 */
67#define PAUSE_ELL_MEASURE				\
68	{						\
69		int tempEllMeasure = doEllMeasure;	\
70		doEllMeasure = 0;
71
72#define RESUME_ELL_MEASURE				\
73		doEllMeasure = tempEllMeasure;		\
74	}
75
76#else	// ELLIPTIC_MEASURE
77
78#define START_ELL_MEASURE(n)
79#define END_ELL_MEASURE
80#define INCR_FEEMODS
81#define INCR_MULGS
82#define PAUSE_ELL_MEASURE
83#define RESUME_ELL_MEASURE
84
85#endif	// ELLIPTIC_MEASURE
86