-------------------------------------------------------------------------*/
/* Use the D macro for basic (unobtrusive) debugging messages */
-//#define D(x)
-#define D(x) x
+#define D(x) do if (!options.noGenComments) {x;} while(0)
/* Use the DD macro for detailed debugging messages */
#define DD(x)
//#define DD(x) x
if (sym1 == sym2)
return TRUE;
+ /* if they have the same rname */
if (sym1->rname[0] && sym2->rname[0]
&& strcmp (sym1->rname, sym2->rname) == 0)
return TRUE;
return EQ_OP; /* shouldn't happen, but need to return something */
}
-/* compile only if the debugging macro D is enabled */
-#if (D(1) -0)
+/*------------------------------------------------------------------*/
+/* nameCmp : helper function for human readable debug output */
+/*------------------------------------------------------------------*/
static char *
nameCmp (int opcode)
{
return "invalid";
}
}
-#endif
/*------------------------------------------------------------------*/
/* branchInstCmp : returns the conditional branch instruction that */
hc08_freeReg (hc08_reg_a);
break;
case 2: /* swap bytes in a word */
- if (operandsEqu (left, result))
+ if (operandsEqu (left, result) || sameRegs (AOP (left), AOP (result)))
{
loadRegFromAop (hc08_reg_a, AOP (left), 0);
hc08_useReg (hc08_reg_a);