-v60: Fixed AND and OR instructions to also not change the carry flag. [Ryan Holtz]

This commit is contained in:
MooglyGuy 2019-12-26 22:39:18 +01:00
parent 4bced0fd06
commit 0e14d3f7a8

View File

@ -152,13 +152,13 @@ std::unique_ptr<util::disasm_interface> v60_device::create_disassembler()
#define SetSZPF_Word(x) {_Z = ((uint16_t)(x) == 0); _S = ((x)&0x8000) ? 1 : 0; }
#define SetSZPF_Long(x) {_Z = ((uint32_t)(x) == 0); _S = ((x)&0x80000000) ? 1 : 0; }
#define ORB(dst, src) { (dst) |= (src); _CY = _OV = 0; SetSZPF_Byte(dst); }
#define ORW(dst, src) { (dst) |= (src); _CY = _OV = 0; SetSZPF_Word(dst); }
#define ORL(dst, src) { (dst) |= (src); _CY = _OV = 0; SetSZPF_Long(dst); }
#define ORB(dst, src) { (dst) |= (src); _OV = 0; SetSZPF_Byte(dst); }
#define ORW(dst, src) { (dst) |= (src); _OV = 0; SetSZPF_Word(dst); }
#define ORL(dst, src) { (dst) |= (src); _OV = 0; SetSZPF_Long(dst); }
#define ANDB(dst, src) { (dst) &= (src); _CY = _OV = 0; SetSZPF_Byte(dst); }
#define ANDW(dst, src) { (dst) &= (src); _CY = _OV = 0; SetSZPF_Word(dst); }
#define ANDL(dst, src) { (dst) &= (src); _CY = _OV = 0; SetSZPF_Long(dst); }
#define ANDB(dst, src) { (dst) &= (src); _OV = 0; SetSZPF_Byte(dst); }
#define ANDW(dst, src) { (dst) &= (src); _OV = 0; SetSZPF_Word(dst); }
#define ANDL(dst, src) { (dst) &= (src); _OV = 0; SetSZPF_Long(dst); }
#define XORB(dst, src) { (dst) ^= (src); _OV = 0; SetSZPF_Byte(dst); }
#define XORW(dst, src) { (dst) ^= (src); _OV = 0; SetSZPF_Word(dst); }