diff options
| -rw-r--r-- | arch/x86/kernel/pvclock.c | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c index bab3b9e6f66d..008b91eefa18 100644 --- a/arch/x86/kernel/pvclock.c +++ b/arch/x86/kernel/pvclock.c | |||
| @@ -41,44 +41,6 @@ void pvclock_set_flags(u8 flags) | |||
| 41 | valid_flags = flags; | 41 | valid_flags = flags; |
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | /* | ||
| 45 | * Scale a 64-bit delta by scaling and multiplying by a 32-bit fraction, | ||
| 46 | * yielding a 64-bit result. | ||
| 47 | */ | ||
| 48 | static inline u64 scale_delta(u64 delta, u32 mul_frac, int shift) | ||
| 49 | { | ||
| 50 | u64 product; | ||
| 51 | #ifdef __i386__ | ||
| 52 | u32 tmp1, tmp2; | ||
| 53 | #endif | ||
| 54 | |||
| 55 | if (shift < 0) | ||
| 56 | delta >>= -shift; | ||
| 57 | else | ||
| 58 | delta <<= shift; | ||
| 59 | |||
| 60 | #ifdef __i386__ | ||
| 61 | __asm__ ( | ||
| 62 | "mul %5 ; " | ||
| 63 | "mov %4,%%eax ; " | ||
| 64 | "mov %%edx,%4 ; " | ||
| 65 | "mul %5 ; " | ||
| 66 | "xor %5,%5 ; " | ||
| 67 | "add %4,%%eax ; " | ||
| 68 | "adc %5,%%edx ; " | ||
| 69 | : "=A" (product), "=r" (tmp1), "=r" (tmp2) | ||
| 70 | : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (mul_frac) ); | ||
| 71 | #elif defined(__x86_64__) | ||
| 72 | __asm__ ( | ||
| 73 | "mul %%rdx ; shrd $32,%%rdx,%%rax" | ||
| 74 | : "=a" (product) : "0" (delta), "d" ((u64)mul_frac) ); | ||
| 75 | #else | ||
| 76 | #error implement me! | ||
| 77 | #endif | ||
| 78 | |||
| 79 | return product; | ||
| 80 | } | ||
| 81 | |||
| 82 | static u64 pvclock_get_nsec_offset(struct pvclock_shadow_time *shadow) | 44 | static u64 pvclock_get_nsec_offset(struct pvclock_shadow_time *shadow) |
| 83 | { | 45 | { |
| 84 | u64 delta = native_read_tsc() - shadow->tsc_timestamp; | 46 | u64 delta = native_read_tsc() - shadow->tsc_timestamp; |
