static inline void SSYNC(void)
 {
        int _tmp;
-       if (ANOMALY_05000312)
+       if (ANOMALY_05000312 || ANOMALY_05000244)
                __asm__ __volatile__(
                        "cli %0;"
                        "nop;"
                        "nop;"
+                       "nop;"
                        "ssync;"
                        "sti %0;"
                        : "=d" (_tmp)
                );
-       else if (ANOMALY_05000244)
-               __asm__ __volatile__(
-                       "nop;"
-                       "nop;"
-                       "nop;"
-                       "ssync;"
-               );
        else
                __asm__ __volatile__("ssync;");
 }
 static inline void CSYNC(void)
 {
        int _tmp;
-       if (ANOMALY_05000312)
+       if (ANOMALY_05000312 || ANOMALY_05000244)
                __asm__ __volatile__(
                        "cli %0;"
                        "nop;"
                        "nop;"
+                       "nop;"
                        "csync;"
                        "sti %0;"
                        : "=d" (_tmp)
                );
-       else if (ANOMALY_05000244)
-               __asm__ __volatile__(
-                       "nop;"
-                       "nop;"
-                       "nop;"
-                       "csync;"
-               );
        else
                __asm__ __volatile__("csync;");
 }
 #define ssync(x) SSYNC(x)
 #define csync(x) CSYNC(x)
 
-#if ANOMALY_05000312
-#define SSYNC(scratch) cli scratch; nop; nop; SSYNC; sti scratch;
-#define CSYNC(scratch) cli scratch; nop; nop; CSYNC; sti scratch;
-
-#elif ANOMALY_05000244
-#define SSYNC(scratch) nop; nop; nop; SSYNC;
-#define CSYNC(scratch) nop; nop; nop; CSYNC;
+#if ANOMALY_05000312 || ANOMALY_05000244
+#define SSYNC(scratch) \
+do {                   \
+       cli scratch;    \
+       nop; nop; nop;  \
+       SSYNC;          \
+       sti scratch;    \
+} while (0)
+
+#define CSYNC(scratch) \
+do {                   \
+       cli scratch;    \
+       nop; nop; nop;  \
+       CSYNC;          \
+       sti scratch;    \
+} while (0)
 
 #else
 #define SSYNC(scratch) SSYNC;
 #define CSYNC(scratch) CSYNC;
-
 #endif /* ANOMALY_05000312 & ANOMALY_05000244 handling */
 
 #endif /* __ASSEMBLY__ */