Improved code for or and xor
git-svn-id: svn://svn.cc65.org/cc65/trunk@3102 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -2784,15 +2784,20 @@ void g_or (unsigned flags, unsigned long val)
|
|||||||
if ((val & 0xFF) != 0) {
|
if ((val & 0xFF) != 0) {
|
||||||
AddCodeLine ("ora #$%02X", (unsigned char)val);
|
AddCodeLine ("ora #$%02X", (unsigned char)val);
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
} else if ((val & 0xFF00) == 0xFF00) {
|
} else if ((val & 0xFF00) == 0xFF00) {
|
||||||
if ((val & 0xFF) != 0) {
|
if ((val & 0xFF) != 0) {
|
||||||
AddCodeLine ("ora #$%02X", (unsigned char)val);
|
AddCodeLine ("ora #$%02X", (unsigned char)val);
|
||||||
}
|
}
|
||||||
ldxconst (0xFF);
|
ldxconst (0xFF);
|
||||||
return;
|
} else if (val != 0) {
|
||||||
|
AddCodeLine ("ora #$%02X", (unsigned char)val);
|
||||||
|
AddCodeLine ("pha");
|
||||||
|
AddCodeLine ("txa");
|
||||||
|
AddCodeLine ("ora #$%02X", (unsigned char)(val >> 8));
|
||||||
|
AddCodeLine ("tax");
|
||||||
|
AddCodeLine ("pla");
|
||||||
}
|
}
|
||||||
break;
|
return;
|
||||||
|
|
||||||
case CF_LONG:
|
case CF_LONG:
|
||||||
if (val <= 0xFF) {
|
if (val <= 0xFF) {
|
||||||
@@ -2853,16 +2858,17 @@ void g_xor (unsigned flags, unsigned long val)
|
|||||||
if (val != 0) {
|
if (val != 0) {
|
||||||
AddCodeLine ("eor #$%02X", (unsigned char)val);
|
AddCodeLine ("eor #$%02X", (unsigned char)val);
|
||||||
}
|
}
|
||||||
return;
|
} else if (val != 0) {
|
||||||
} else if ((val & 0xFF) == 0) {
|
if ((val & 0xFF) != 0) {
|
||||||
|
AddCodeLine ("eor #$%02X", (unsigned char)val);
|
||||||
|
}
|
||||||
AddCodeLine ("pha");
|
AddCodeLine ("pha");
|
||||||
AddCodeLine ("txa");
|
AddCodeLine ("txa");
|
||||||
AddCodeLine ("eor #$%02X", (unsigned char)(val >> 8));
|
AddCodeLine ("eor #$%02X", (unsigned char)(val >> 8));
|
||||||
AddCodeLine ("tax");
|
AddCodeLine ("tax");
|
||||||
AddCodeLine ("pla");
|
AddCodeLine ("pla");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
break;
|
return;
|
||||||
|
|
||||||
case CF_LONG:
|
case CF_LONG:
|
||||||
if (val <= 0xFF) {
|
if (val <= 0xFF) {
|
||||||
|
|||||||
Reference in New Issue
Block a user