+static void
+timer_advance(timer_t timer, uint64_t delta)
+{
+#if defined(__LP64__)
+ timer->all_bits += delta;
+#else /* defined(__LP64__) */
+ extern void timer_advance_internal_32(timer_t timer, uint32_t high,
+ uint32_t low);
+ uint64_t low = delta + timer->low_bits;
+ if (low >> 32) {
+ timer_advance_internal_32(timer,
+ (uint32_t)(timer->high_bits + (low >> 32)), (uint32_t)low);
+ } else {
+ timer->low_bits = (uint32_t)low;
+ }
+#endif /* defined(__LP64__) */