* src/mcs51/ralloc.c (packRegsForAssign),
[fw/sdcc] / src / hc08 / ralloc.c
index 116804335972d319f21ff542f0d2217db85349ef..3cba4a6048233d406e66b91aebb920f4a9b34af6 100644 (file)
@@ -1988,6 +1988,12 @@ packRegsForAssign (iCode * ic, eBBlock * ebp)
          break;
        }
 #endif
+      /* Don't move an assignment out of a critical block */
+      if (dic->op == CRITICAL)
+       {
+         dic = NULL;
+         break;
+       }
 
       if (SKIP_IC2 (dic))
        continue;