32x: drc: self-reentrant blocks
[picodrive.git] / cpu / Cyclone / OpLogic.cpp
index 912d94b..d6b8933 100644 (file)
@@ -119,6 +119,11 @@ int OpBtstImm(int op)
     if (type==3) ot("  orr r1,r0,r11 ;@ Set bit\n");\r
     ot("\n");\r
     EaWrite(8,   1,tea,size,0x003f,0,0);\r
+#if CYCLONE_FOR_GENESIS && !MEMHANDLERS_CHANGE_CYCLES\r
+    // this is a bit hacky (device handlers might modify cycles)\r
+    if (tea==0x38||tea==0x39)\r
+      ot("  ldr r5,[r7,#0x5c] ;@ Load Cycles\n");\r
+#endif\r
   }\r
 \r
   OpEnd(sea,tea);\r
@@ -301,7 +306,7 @@ int OpSet(int op)
 {\r
   int cc=0,ea=0;\r
   int size=0,use=0,changed_cycles=0;\r
-  char *cond[16]=\r
+  static const char * const cond[16]=\r
   {\r
     "al","", "hi","ls","cc","cs","ne","eq",\r
     "vc","vs","pl","mi","ge","lt","gt","le"\r