… | … | ||
---|---|---|---|
31 | 31 | ||
32 | static inline cstamp | 32 | static inline cstamp |
33 | stamp (void) | 33 | stamp (void) |
34 | { | 34 | { |
35 | cstamp tsc; | 35 | cstamp tsc; |
36 | asm volatile ("rdtsc":"=a" (tsc)::"edx"); | 36 | asm volatile ("rdtsc" : "=a" (tsc) : : "edx"); |
37 | |||
38 | return tsc; | 37 | return tsc; |
39 | } | 38 | } |
40 | 39 | ||
41 | static inline cstamp | 40 | static inline cstamp |
42 | measure (cstamp t) | 41 | measure (cstamp t) |
43 | { | 42 | { |
44 | cstamp tsc; | 43 | return stamp () - t; |
45 | asm volatile ("rdtsc":"=a" (tsc)::"edx"); | ||
46 | |||
47 | if (tsc > t) | ||
48 | return tsc - t; | ||
49 | else | ||
50 | return t - tsc; | ||
51 | } | 44 | } |
52 | 45 | ||
53 | // cstamp s = stamp (); | 46 | // cstamp s = stamp (); |
54 | // s = measure (s); | 47 | // s = measure (s); |
55 | 48 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |