… | |
… | |
557 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mcr p15,0,%0,c7,c10,5" : : "r" (0) : "memory") |
557 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mcr p15,0,%0,c7,c10,5" : : "r" (0) : "memory") |
558 | #elif defined(__ARM_ARCH_7__ ) || defined(__ARM_ARCH_7A__ ) \ |
558 | #elif defined(__ARM_ARCH_7__ ) || defined(__ARM_ARCH_7A__ ) \ |
559 | || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7R__ ) |
559 | || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7R__ ) |
560 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("dmb" : : : "memory") |
560 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("dmb" : : : "memory") |
561 | #elif __sparc || __sparc__ |
561 | #elif __sparc || __sparc__ |
562 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("membar #LoadStore | #StoreLoad | #LoadLoad | #StoreStore" : : : "memory") |
562 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("membar #LoadStore | #LoadLoad | #StoreStore | #StoreLoad | " : : : "memory") |
563 | #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("membar #LoadLoad" : : : "memory") |
563 | #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("membar #LoadStore | #LoadLoad" : : : "memory") |
564 | #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("membar #StoreStore") |
564 | #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("membar #LoadStore | #StoreStore") |
565 | #endif |
565 | #endif |
566 | #endif |
566 | #endif |
567 | #endif |
567 | #endif |
568 | |
568 | |
569 | #ifndef ECB_MEMORY_FENCE |
569 | #ifndef ECB_MEMORY_FENCE |
… | |
… | |
3299 | void noinline |
3299 | void noinline |
3300 | ev_timer_again (EV_P_ ev_timer *w) |
3300 | ev_timer_again (EV_P_ ev_timer *w) |
3301 | { |
3301 | { |
3302 | EV_FREQUENT_CHECK; |
3302 | EV_FREQUENT_CHECK; |
3303 | |
3303 | |
|
|
3304 | clear_pending (EV_A_ w); |
|
|
3305 | |
3304 | if (ev_is_active (w)) |
3306 | if (ev_is_active (w)) |
3305 | { |
3307 | { |
3306 | if (w->repeat) |
3308 | if (w->repeat) |
3307 | { |
3309 | { |
3308 | ev_at (w) = mn_now + w->repeat; |
3310 | ev_at (w) = mn_now + w->repeat; |