| 6009 | void OPCALL idiv8_mem16(struct CPU* cpu, struct Op* op); |
| 6010 | void OPCALL idiv8_mem32(struct CPU* cpu, struct Op* op); |
| 6011 | void gen0f6(struct GenData* data, struct Op* op) { |
| 6012 | char d[16]; |
| 6013 | |
| 6014 | itoa(op->data1, d, 16); |
| 6015 | |
| 6016 | if (op->func == test8_reg) { |
| 6017 | if (inlineTestJump(data, op, sFLAGS_TEST8, "1")) |
| 6018 | return; |
| 6019 | out(data, "cpu->dst.u8 = "); |
| 6020 | out(data, r8(op->r1)); |
| 6021 | out(data, "; cpu->src.u8 = 0x"); |
| 6022 | out(data, d); |
| 6023 | out(data, "; cpu->result.u8 = cpu->dst.u8 & cpu->src.u8; cpu->lazyFlags = FLAGS_TEST8; CYCLES(1);"); |
| 6024 | data->lazyFlags = sFLAGS_TEST8; |
| 6025 | } else if (op->func == test8_mem16) { |
| 6026 | if (inlineTestJump(data, op, sFLAGS_TEST8, "2")) |
| 6027 | return; |
| 6028 | out(data, "cpu->dst.u8 = readb(cpu->thread, "); |
| 6029 | out(data, getEaa16(op)); |
| 6030 | out(data, "); cpu->src.u8 = 0x"); |
| 6031 | out(data, d); |
| 6032 | out(data, "; cpu->result.u8 = cpu->dst.u8 & cpu->src.u8; cpu->lazyFlags = FLAGS_TEST8; CYCLES(2);"); |
| 6033 | data->lazyFlags = sFLAGS_TEST8; |
| 6034 | } else if (op->func == test8_mem32) { |
| 6035 | if (inlineTestJump(data, op, sFLAGS_TEST8, "2")) |
| 6036 | return; |
| 6037 | out(data, "cpu->dst.u8 = readb(cpu->thread, "); |
| 6038 | out(data, getEaa32(op)); |
| 6039 | out(data, "); cpu->src.u8 = 0x"); |
| 6040 | out(data, d); |
| 6041 | out(data, "; cpu->result.u8 = cpu->dst.u8 & cpu->src.u8; cpu->lazyFlags = FLAGS_TEST8; CYCLES(2);"); |
| 6042 | data->lazyFlags = sFLAGS_TEST8; |
| 6043 | } else if (op->func == not8_reg) { |
| 6044 | out(data, r8(op->r1)); |
| 6045 | out(data, " = ~ "); |
| 6046 | out(data, r8(op->r1)); |
| 6047 | out(data, "; CYCLES(1);"); |
| 6048 | } else if (op->func == not8_mem16) { |
| 6049 | out(data, "eaa = "); |
| 6050 | out(data, getEaa16(op)); |
| 6051 | out(data, "; writeb(cpu->thread, eaa, ~readb(cpu->thread, eaa)); CYCLES(3);"); |
| 6052 | } else if (op->func == not8_mem32) { |
| 6053 | out(data, "eaa = "); |
| 6054 | out(data, getEaa32(op)); |
| 6055 | out(data, "; writeb(cpu->thread, eaa, ~readb(cpu->thread, eaa)); CYCLES(3);"); |
| 6056 | } else if (op->func == neg8_reg) { |
| 6057 | out(data, "cpu->dst.u8 = "); |
| 6058 | out(data, r8(op->r1)); |
| 6059 | out(data, "; cpu->result.u8 = 0-cpu->dst.u8; "); |
| 6060 | out(data, r8(op->r1)); |
| 6061 | out(data, " = cpu->result.u8; cpu->lazyFlags = FLAGS_NEG8; CYCLES(1);"); |
| 6062 | data->lazyFlags = sFLAGS_NEG8; |
| 6063 | } else if (op->func == neg8_mem16) { |
| 6064 | out(data, "eaa = "); |
| 6065 | out(data, getEaa16(op)); |
| 6066 | out(data, "; cpu->dst.u8 = readb(cpu->thread, eaa); cpu->result.u8 = 0-cpu->dst.u8; writeb(cpu->thread, eaa, cpu->result.u8); cpu->lazyFlags = FLAGS_NEG8; CYCLES(3);"); |
| 6067 | data->lazyFlags = sFLAGS_NEG8; |
| 6068 | } else if (op->func == neg8_mem32) { |