diff --git a/include/arm11/spinlock.h b/include/arm11/spinlock.h index 6810d28..3c52109 100644 --- a/include/arm11/spinlock.h +++ b/include/arm11/spinlock.h @@ -31,10 +31,8 @@ " strexeq %0, %2, [%1]\n" " teqeq %0, #0\n" " bne 1b\n" - " mcr p15, 0, %0, c7, c10, 5" - : "=&r" (tmp) - : "r" (lock), "r" (1) - : "cc", "memory"); + " mcr p15, 0, %0, c7, c10, 5" // DMB + : "=&r" (tmp) : "r" (lock), "r" (1) : "cc", "memory"); } static inline void spinlockUnlock(u32 *lock) @@ -43,7 +41,5 @@ "str %0, [%1]\n" "mcr p15, 0, %0, c7, c10, 4\n" // DSB "sev" - : - : "r" (0), "r" (lock) - : "memory"); + : : "r" (0), "r" (lock) : "memory"); } diff --git a/source/arm9/hardware/timer.c b/source/arm9/hardware/timer.c index 3f1fe77..918b0a7 100644 --- a/source/arm9/hardware/timer.c +++ b/source/arm9/hardware/timer.c @@ -40,7 +40,7 @@ // For TIMER_sleep() -static u32 overflows; +static vu32 overflows; @@ -76,8 +76,6 @@ { REG_TIMER3_VAL = TIMER_FREQ_1024(1000.0); overflows = ms; - // Make sure overflows is set before REG_TIMER3_CNT. - __asm__ __volatile__("" : : : "memory"); REG_TIMER3_CNT = TIMER_ENABLE | TIMER_IRQ_ENABLE | TIMER_PRESCALER_1024;