4
// gives access to the Pentium's (secret) cycle counter
6
// This software was written by Leonard Janke (janke@unixg.ubc.ca)
7
// in 1996-7 and is entered, by him, into the public domain.
9
#if defined(__WATCOMC__)
10
void GetTSC(unsigned long&);
11
#pragma aux GetTSC = 0x0f 0x31 "mov [edi], eax" parm [edi] modify [edx eax];
12
#elif defined(__GNUC__)
14
void GetTSC(unsigned long& tsc)
16
asm volatile(".byte 15, 49\n\t"
21
#elif defined(_MSC_VER)
23
void GetTSC(unsigned long& tsc)
35
#include <openssl/blowfish.h>
37
void main(int argc,char *argv[])
40
unsigned long s1,s2,e1,e2;
41
unsigned long data[2];
46
for (i=0; i<1000; i++) /**/
48
BF_encrypt(&data[0],&key);
50
BF_encrypt(&data[0],&key);
51
BF_encrypt(&data[0],&key);
52
BF_encrypt(&data[0],&key);
55
BF_encrypt(&data[0],&key);
56
BF_encrypt(&data[0],&key);
57
BF_encrypt(&data[0],&key);
58
BF_encrypt(&data[0],&key);
60
BF_encrypt(&data[0],&key);
63
printf("blowfish %d %d (%d)\n",
64
e1-s1,e2-s2,((e2-s2)-(e1-s1)));