some more optimizations
[picodrive.git] / cpu / Cyclone / OpArith.cpp
index 9e956c0..74673b8 100644 (file)
@@ -113,15 +113,17 @@ int OpAddq(int op)
   {\r
     int lsr=9-shift;\r
 \r
-    if (lsr>=0) ot("  mov r2,r8,lsr #%d ;@ Get quick value\n", lsr);\r
-    else        ot("  mov r2,r8,lsl #%d ;@ Get quick value\n",-lsr);\r
+    ot("  and r2,r8,#0x0e00 ;@ Get quick value\n");\r
+\r
+    if (lsr>=0) sprintf(count,"r2,lsr #%d",  lsr);\r
+    else        sprintf(count,"r2,lsl #%d", -lsr);\r
 \r
-    ot("  and r2,r2,#0x%.4x\n",7<<shift);\r
     ot("\n");\r
-    strcpy(count,"r2");\r
   }\r
-\r
-  if (num==8) sprintf(count,"#0x%.4x",8<<shift);\r
+  else\r
+  {\r
+    sprintf(count,"#0x%.4x",8<<shift);\r
+  }\r
 \r
   if (type==0) ot("  adds r1,r0,%s\n",count);\r
   if (type==1) ot("  subs r1,r0,%s\n",count);\r